@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+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(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-ext-wght-normal.EocZY2iu.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.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(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.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:Big Shoulders Display Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/big-shoulders-display-vietnamese-wght-normal.B-JM5mJH.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:Big Shoulders Display Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/big-shoulders-display-latin-ext-wght-normal.EP2r9iG4.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:Big Shoulders Display Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/big-shoulders-display-latin-wght-normal.Bn_gnr7w.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:#0b0d0c;--bg-elev:#111513;--fg:#d7e0da;--fg-muted:#8f9b93;--accent:#7cffb2;--accent-ink:#04130a;--accent-2:#ffb454;--line:#243029;--danger:#ff6b6b;--font-body:"Inter Variable", system-ui, sans-serif;--font-display:var(--font-body);--font-mono:"JetBrains Mono Variable", ui-monospace, "Cascadia Code", Consolas, monospace;--radius:4px;--maxw:72rem;--gutter:clamp(1rem, 4vw, 2.5rem);--section-gap:clamp(4.5rem, 10vw, 8rem);--header-h:3.75rem;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem)}body{background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:1rem;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%;height:auto;display:block}ul,ol{padding:0;list-style:none}a{color:inherit;text-underline-offset:.2em}h1,h2,h3,h4{text-wrap:balance;font-weight:700;line-height:1.1}p{text-wrap:pretty}code{font-family:var(--font-mono);font-size:.9em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent);color:var(--accent-ink)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);padding:.5rem 1rem;font-weight:600;text-decoration:none;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}html:not([data-theme=terminal]) .only-terminal,html:not([data-theme=blueprint]) .only-blueprint,html:not([data-theme=neo]) .only-neo{display:none!important}.container{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{min-height:var(--header-h);align-items:center;gap:1.5rem;display:flex}.brand{font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:.6rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);width:.75rem;height:.75rem}.brand-tld{color:var(--fg-muted)}.site-nav{margin-left:auto}.site-nav ul{gap:1.25rem;display:flex}.site-nav a{color:var(--fg-muted);font-size:.875rem;text-decoration:none;transition:color .15s}.site-nav a:hover{color:var(--fg)}.nav-index{font-family:var(--font-mono);color:var(--accent);margin-right:.35rem;font-size:.7rem}.lang-switch{font-family:var(--font-mono);letter-spacing:.06em;gap:2px;font-size:.7rem;display:flex}.lang-switch a{border-radius:var(--radius);color:var(--fg-muted);padding:.3rem .45rem;text-decoration:none}.lang-switch a:hover{color:var(--fg)}.lang-switch a[aria-current=page]{color:var(--accent);text-underline-offset:.35em;text-decoration:underline}.theme-switch{border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);letter-spacing:.06em;padding:2px;font-size:.7rem;display:flex}.theme-switch label{cursor:pointer;position:relative}.theme-switch input{opacity:0;cursor:pointer;position:absolute;inset:0}.theme-switch span:not(.sr-only){border-radius:calc(var(--radius) - 1px);color:var(--fg-muted);padding:.3rem .55rem;display:block}.theme-switch input:checked+span{background:var(--accent);color:var(--accent-ink)}.theme-switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}@media (width<=760px){.site-nav{display:none}.header-inner{gap:.5rem}.lang-switch{margin-left:auto}}.btn{border:1px solid var(--accent);border-radius:var(--radius);min-height:2.75rem;font-family:var(--font-mono);justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,transform .15s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{color:var(--accent);background:0 0}.btn-ghost{color:var(--accent)}.btn-ghost:hover{background:var(--accent);color:var(--accent-ink)}.hero{padding-block:clamp(4rem,12vw,9rem) clamp(3rem,8vw,6rem);position:relative}.hero-inner{position:relative}.hero-kicker{font-family:var(--font-mono);color:var(--accent);margin-bottom:1.25rem;font-size:.85rem}.kicker-sep{color:var(--fg-muted);margin-inline:.35rem}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:1.75rem;font-size:clamp(3rem,11vw,7.5rem);line-height:.95}.hero-title span{display:block}.hero-pitch{max-width:40rem;color:var(--fg-muted);margin-bottom:2rem;font-size:clamp(1.05rem,1.8vw,1.25rem)}.hero-meta{flex-wrap:wrap;gap:1rem 2.5rem;margin-bottom:2.25rem;font-size:.875rem;display:flex}.hero-meta dt{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted);font-size:.7rem}.status-open:before{content:"";background:var(--accent);width:.5rem;height:.5rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);vertical-align:.05em;border-radius:50%;margin-right:.45rem;display:inline-block}.hero-cta{flex-wrap:wrap;gap:.75rem;display:flex}.section{padding-block:var(--section-gap) 0}.section-head{margin-bottom:clamp(2rem,5vw,3.5rem)}.section-cmd{font-family:var(--font-mono);color:var(--fg-muted);margin-bottom:.5rem;font-size:.85rem}.prompt-sep{color:var(--accent)}.section-title{font-family:var(--font-display);letter-spacing:-.02em;align-items:baseline;gap:.9rem;font-size:clamp(2rem,5vw,3.25rem);display:flex}.section-index{font-family:var(--font-mono);color:var(--accent);font-size:.35em;font-weight:500}.section-lede{color:var(--fg-muted);max-width:38rem;margin-top:.75rem}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tags li{font-family:var(--font-mono);border:1px solid var(--line);border-radius:var(--radius);color:var(--fg-muted);padding:.15rem .5rem;font-size:.75rem}.project-list{gap:clamp(1.5rem,4vw,2.5rem);display:grid}.project{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);grid-template-areas:"head""media""body""aside";gap:1.5rem;padding:clamp(1.25rem,3vw,2rem);display:grid;position:relative}.project-head{font-family:var(--font-mono);letter-spacing:.05em;color:var(--fg-muted);flex-wrap:wrap;grid-area:head;align-items:center;gap:.5rem 1rem;font-size:.75rem;display:flex}.project-id{color:var(--fg);font-weight:600}.project-year{margin-left:auto}.project-status{border-radius:var(--radius);text-transform:uppercase;border:1px solid;padding:.1rem .5rem}.project-status[data-status=live],.project-status[data-status=in-production]{color:var(--accent)}.project-status[data-status=in-development]{color:var(--accent-2)}.project-status[data-status=demo]{color:var(--fg-muted)}.project-media{aspect-ratio:16/10;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);grid-area:media;overflow:hidden}.project-media img{object-fit:cover;object-position:top;width:100%;height:100%}.media-placeholder{height:100%;font-family:var(--font-mono);color:var(--fg-muted);background:repeating-linear-gradient(135deg, transparent 0 12px, color-mix(in srgb, var(--line) 60%, transparent) 12px 13px);place-items:center;font-size:.85rem;display:grid}.project>*,.job>*,.posture-list li>*{min-width:0}.project-body{grid-area:body;align-content:start;gap:1rem;display:grid}.project-aside{grid-area:aside;align-content:start;gap:1rem;display:grid}.project-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(1.5rem,3vw,2.1rem)}.project-tagline{color:var(--accent);font-weight:500}.project-desc{color:var(--fg-muted)}.project-highlights li,.project-security li,.job-highlights li{margin-bottom:.35rem;padding-left:1.2rem;position:relative}.project-highlights li:before,.job-highlights li:before{content:"▸";color:var(--accent);position:absolute;left:0}.project-security{border-left:2px solid var(--accent-2);background:color-mix(in srgb, var(--accent-2) 6%, transparent);padding:1rem 1.1rem}.project-security h4{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin-bottom:.6rem;font-size:.72rem}.project-security li{font-size:.925rem}.project-security li:before{content:"✓";color:var(--accent-2);position:absolute;left:0}.arch figcaption{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:.5rem;font-size:.7rem}.arch-flow{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.75rem;display:flex}.arch-flow li{align-items:center;gap:.4rem;display:flex}.arch-flow li:not(:last-child):after{content:"→";color:var(--accent)}.project-meta{gap:.75rem;font-size:.9rem;display:grid}.project-meta dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:.25rem;font-size:.7rem}.project-links{font-family:var(--font-mono);flex-wrap:wrap;gap:1.25rem;font-size:.85rem;display:flex}.project-links a{color:var(--accent)}.project-links a:after{content:" ↗"}@media (width>=900px){.project{grid-template:"head head""media body""aside body"1fr/minmax(0,5fr) minmax(0,7fr);align-content:start;column-gap:2.5rem}.project-media,.project-aside{align-self:start}}.timeline{border-left:1px solid var(--line);gap:0;display:grid}.job{gap:.5rem 2rem;padding:0 0 2.5rem 1.75rem;display:grid;position:relative}.job:before{content:"";background:var(--bg);border:2px solid var(--accent);width:9px;height:9px;position:absolute;top:.45rem;left:-5px}.job-when{font-family:var(--font-mono);color:var(--fg-muted);font-size:.8rem}.job-now{color:var(--accent)}.job-title{font-size:1.3rem;font-family:var(--font-display)}.job-at{color:var(--accent);font-weight:400}.job-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.3rem;font-size:.7rem;display:block}.job-where{color:var(--fg-muted);margin-bottom:.6rem;font-size:.9rem}.job-summary{margin-bottom:.6rem}.job-highlights{margin-bottom:.9rem}@media (width>=760px){.job{grid-template-columns:11rem 1fr}}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem;display:grid}.skill-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);padding:1.25rem}.skill-group h3{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:.9rem;font-size:.85rem}.skill-group[data-group=security]{border-color:color-mix(in srgb, var(--accent-2) 55%, var(--line))}.skill-group[data-group=security] h3{color:var(--accent-2)}.skill-group li{padding-block:.2rem}.contact-email{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;margin-bottom:2rem;font-size:clamp(1.6rem,6vw,3.75rem);font-weight:700;line-height:1.1}.contact-email a{text-decoration-color:var(--accent);text-decoration-thickness:3px}.contact-email a:hover{color:var(--accent)}.contact-links{font-family:var(--font-mono);gap:.5rem;font-size:.9rem;display:grid}.contact-links li{flex-wrap:wrap;gap:1rem;display:flex}.contact-key{width:6rem;color:var(--fg-muted)}.contact-links a{color:var(--accent)}.site-footer{margin-top:var(--section-gap);border-top:1px solid var(--line);padding-block:3rem 2rem}.posture{margin-bottom:2.5rem}.posture-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem;font-size:.85rem}.posture-lede{color:var(--fg-muted);margin-bottom:1.25rem;font-size:.9rem}.posture-list{gap:.5rem;font-size:.8rem;display:grid}.posture-list li{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.25rem .7rem;padding:.55rem .75rem;display:grid}.posture-dot{background:var(--fg-muted);border-radius:50%;width:.5rem;height:.5rem}[data-state=ok] .posture-dot{background:var(--accent)}[data-state=missing] .posture-dot{background:var(--danger)}.posture-name{color:var(--fg);font-weight:600}.posture-state{font-family:var(--font-mono);color:var(--fg-muted);font-size:.7rem}[data-state=ok] .posture-state{color:var(--accent)}.posture-value{color:var(--fg-muted);overflow-wrap:anywhere;grid-column:2/-1;font-size:.72rem}.footer-line{font-family:var(--font-mono);color:var(--fg-muted);flex-wrap:wrap;gap:.5rem 1.5rem;font-size:.75rem;display:flex}.footer-line a{margin-left:auto}.notfound{padding-block:8rem}.notfound h1{font-family:var(--font-display);margin-block:.5rem 1rem;font-size:clamp(5rem,20vw,12rem)}.notfound p{color:var(--fg-muted);margin-bottom:1.5rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}[data-theme=terminal]{--bg:#0b0d0c;--bg-elev:#0f1311;--fg:#d7e0da;--fg-muted:#8f9b93;--accent:#7cffb2;--accent-ink:#04130a;--accent-2:#ffb454;--line:#233029;--font-display:"JetBrains Mono Variable", ui-monospace, monospace;--radius:2px}[data-theme=terminal] body{background-color:var(--bg);background-image:linear-gradient(90deg,#7cffb209 1px,#0000 1px),linear-gradient(#7cffb209 1px,#0000 1px);background-size:32px 32px}[data-theme=terminal] .hero-prompt{font-family:var(--font-mono);color:var(--fg-muted);align-items:center;margin-bottom:1.5rem;font-size:.9rem;display:flex}[data-theme=terminal] .prompt-user{color:var(--accent)}[data-theme=terminal] .prompt-path{color:#7cc4ff}[data-theme=terminal] .typed{box-sizing:content-box;white-space:nowrap;width:6ch;color:var(--fg);border-right:.6ch solid var(--accent);margin-left:.6ch;animation:.9s steps(6,end) .3s both typing,1s step-end infinite caret;display:inline-block;overflow:hidden}@keyframes typing{0%{width:0}to{width:6ch}}@keyframes caret{50%{border-color:#0000}}[data-theme=terminal] .hero-kicker:before{content:"> ";color:var(--fg-muted)}[data-theme=terminal] .hero-title{letter-spacing:-.05em;font-weight:800}[data-theme=terminal] .hero-last{color:var(--accent)}[data-theme=terminal] .project{border-left:3px solid var(--accent)}[data-theme=terminal] .project[data-status=in-development]{border-left-color:var(--accent-2)}[data-theme=terminal] .project[data-status=demo]{border-left-color:var(--fg-muted)}[data-theme=terminal] .project-head{border-bottom:1px dashed var(--line);padding-bottom:.9rem}[data-theme=terminal] .project-id:before{content:"■ ";color:var(--accent)}[data-theme=terminal] .project-status:before{content:"["}[data-theme=terminal] .project-status:after{content:"]"}[data-theme=terminal] .project-status{border:0;padding:0}[data-theme=terminal] .project-title{letter-spacing:-.03em;font-weight:700}[data-theme=terminal] .project-tagline:before{content:"// ";color:var(--fg-muted)}[data-theme=terminal] .placeholder-note{opacity:.6}@media (width>=1100px){[data-theme=terminal] .project-list{grid-template-columns:1fr 1fr}[data-theme=terminal] .project--featured{grid-column:1/-1}[data-theme=terminal] .project:not(.project--featured){grid-template-columns:1fr;grid-template-areas:"head""media""body""aside"}}[data-theme=terminal] .skill-group{background:0 0}[data-theme=terminal] .skill-dir{color:var(--fg-muted)}[data-theme=terminal] .skill-group h3{text-transform:none;letter-spacing:0}[data-theme=terminal] .skill-group li{font-family:var(--font-mono);text-indent:-4ch;padding-left:4ch;font-size:.875rem}[data-theme=terminal] .skill-group li:before{content:"├── ";color:var(--fg-muted)}[data-theme=terminal] .skill-group li:last-child:before{content:"└── "}[data-theme=terminal] .contact-email{letter-spacing:-.04em;font-weight:700}[data-theme=blueprint]{--bg:#0a1628;--bg-elev:#0d1c33;--fg:#dde8fb;--fg-muted:#93a6c8;--accent:#5cc8ff;--accent-ink:#04111f;--accent-2:#ffd166;--line:#1f3a5f;--font-body:"Space Grotesk Variable", system-ui, sans-serif;--font-display:"Space Grotesk Variable", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius:0}[data-theme=blueprint] body{background-color:var(--bg);background-image:linear-gradient(90deg,#5cc8ff17 1px,#0000 1px),linear-gradient(#5cc8ff17 1px,#0000 1px),linear-gradient(90deg,#5cc8ff09 1px,#0000 1px),linear-gradient(#5cc8ff09 1px,#0000 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px}[data-theme=blueprint] .brand-mark{border:1.5px solid var(--accent);background:0 0;transform:rotate(45deg)}[data-theme=blueprint] .hero-sheet{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.08em;color:var(--fg-muted);flex-wrap:wrap;margin-bottom:2rem;font-size:.7rem;display:inline-flex}[data-theme=blueprint] .hero-sheet span{padding:.35rem .75rem}[data-theme=blueprint] .hero-sheet span+span{border-left:1px solid var(--line)}[data-theme=blueprint] .hero-title{letter-spacing:-.045em;font-weight:600}[data-theme=blueprint] .hero-last{color:#0000;-webkit-text-stroke:1.5px var(--accent)}[data-theme=blueprint] .hero-deco{pointer-events:none;position:absolute;inset:0}[data-theme=blueprint] .bp-dim-h{right:var(--gutter);border-right:1px dashed color-mix(in srgb, var(--accent) 50%, transparent);position:absolute;top:0;bottom:0}[data-theme=blueprint] .bp-note{right:calc(var(--gutter) - .7rem);background:var(--bg);font-family:var(--font-mono);letter-spacing:.2em;color:var(--accent-2);white-space:nowrap;padding-inline:.5rem;font-size:.65rem;position:absolute;top:50%;transform:translate(50%,-50%)rotate(90deg)}@media (width<=760px){[data-theme=blueprint] .hero-deco{display:none!important}}[data-theme=blueprint] .section-head{border-top:1px solid var(--line);padding-top:1.25rem}[data-theme=blueprint] .section-title{flex-direction:column;gap:.4rem;font-weight:600}[data-theme=blueprint] .section-index{letter-spacing:.15em;font-size:.8rem}[data-theme=blueprint] .section-index:before{content:"§ "}[data-theme=blueprint] .section-index:after{content:" ——————";color:var(--line)}[data-theme=blueprint] .project{background:color-mix(in srgb, var(--bg-elev) 80%, transparent);border-style:solid}[data-theme=blueprint] .project:before,[data-theme=blueprint] .project:after{content:"";border:0 solid var(--accent);width:14px;height:14px;position:absolute}[data-theme=blueprint] .project:before{border-top-width:2px;border-left-width:2px;top:-1px;left:-1px}[data-theme=blueprint] .project:after{border-bottom-width:2px;border-right-width:2px;bottom:-1px;right:-1px}[data-theme=blueprint] .project-id:before{content:"SHEET ";color:var(--fg-muted);font-weight:400}[data-theme=blueprint] .project-title{font-weight:600}[data-theme=blueprint] .project-tagline{color:var(--fg)}[data-theme=blueprint] .project-security{border:1px dashed color-mix(in srgb, var(--accent-2) 60%, transparent);background:0 0}[data-theme=blueprint] .media-placeholder{background:linear-gradient(90deg,#5cc8ff1f 1px,#0000 1px) 0 0/20px 20px,linear-gradient(#5cc8ff1f 1px,#0000 1px) 0 0/20px 20px}[data-theme=blueprint] .arch{border:1px solid var(--line);background:var(--bg);padding:1rem}[data-theme=blueprint] .arch-flow{gap:.6rem 0}[data-theme=blueprint] .arch-flow li{border:1px solid var(--accent);color:var(--fg);background:var(--bg-elev);gap:0;margin-right:1.9rem;padding:.35rem .6rem;position:relative}[data-theme=blueprint] .arch-flow li:not(:last-child):after{content:"";border-top:1px dashed var(--accent);width:1.9rem;position:absolute;top:50%;right:-1.9rem}[data-theme=blueprint] .arch-flow li:last-child{border-color:var(--accent-2);margin-right:0}@media (width>=1100px){[data-theme=blueprint] .project-list{grid-template-columns:repeat(2,1fr)}[data-theme=blueprint] .project--featured{grid-column:1/-1}[data-theme=blueprint] .project:not(.project--featured){grid-template-columns:1fr;grid-template-areas:"head""media""body""aside"}}[data-theme=blueprint] .timeline{border-left:0;border-top:1px solid var(--line)}[data-theme=blueprint] .job{border-bottom:1px solid var(--line);padding:1.5rem 0}[data-theme=blueprint] .job:before{display:none}[data-theme=blueprint] .job-when{color:var(--accent)}[data-theme=blueprint] .skill-grid{border:1px solid var(--line);gap:0}[data-theme=blueprint] .skill-group{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:0 0}[data-theme=blueprint] .skill-group li{border-bottom:1px dotted var(--line);padding-block:.35rem}[data-theme=blueprint] .skill-group li:last-child{border-bottom:0}[data-theme=blueprint] .contact-email{letter-spacing:-.03em;font-weight:600}[data-theme=neo]{--bg:#0d0a10;--bg-elev:#15101a;--fg:#f3eef6;--fg-muted:#a99fb3;--accent:#ff3d8b;--accent-ink:#120510;--accent-2:#00e0f0;--line:#2c2233;--font-display:"Big Shoulders Display Variable", "Arial Narrow", sans-serif;--radius:0}[data-theme=neo] .brand-mark{background:var(--accent);clip-path:polygon(0 0,100% 0,100% 60%,60% 100%,0 100%)}[data-theme=neo] .hero{overflow:hidden}[data-theme=neo] .hero-kicker{background:var(--accent);color:var(--accent-ink);text-transform:uppercase;letter-spacing:.08em;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}[data-theme=neo] .kicker-sep{color:inherit;opacity:.6}[data-theme=neo] .hero-title{text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(4.5rem,19vw,13rem);font-weight:900;line-height:.9}[data-theme=neo] .hero-last{color:#0000;-webkit-text-stroke:2px var(--accent-2);margin-top:.1em;padding-left:clamp(1.5rem,9vw,7rem)}[data-theme=neo] .hero-pitch{border-left:2px solid var(--accent);color:var(--fg);padding-left:1rem}[data-theme=neo] .hero-deco{top:0;right:var(--gutter);pointer-events:none;flex-direction:column;align-items:flex-end;gap:1rem;display:flex;position:absolute}[data-theme=neo] .neo-vertical{writing-mode:vertical-rl;letter-spacing:.25em;color:var(--accent);font-size:clamp(1rem,2.4vw,1.6rem);font-weight:700}[data-theme=neo] .neo-barcode{background:repeating-linear-gradient(90deg, var(--fg) 0 2px, transparent 2px 4px, var(--fg) 4px 5px, transparent 5px 8px, var(--fg) 8px 11px, transparent 11px 12px);opacity:.8;width:4.5rem;height:2.2rem}[data-theme=neo] .neo-tag{font-family:var(--font-mono);letter-spacing:.15em;color:var(--fg-muted);font-size:.65rem}@media (width<=760px){[data-theme=neo] .hero-deco{display:none!important}}[data-theme=neo] .btn{text-transform:uppercase;letter-spacing:.08em}[data-theme=neo] .btn-ghost{border-color:var(--accent-2);color:var(--accent-2)}[data-theme=neo] .btn-ghost:hover{background:var(--accent-2);color:var(--accent-ink)}[data-theme=neo] .section-title{text-transform:uppercase;letter-spacing:0;font-size:clamp(3rem,9vw,6rem);font-weight:900;line-height:.9}[data-theme=neo] .section-index{font-family:var(--font-display);color:#0000;-webkit-text-stroke:1.5px var(--accent);font-size:1em;font-weight:900}[data-theme=neo] .project-list{gap:clamp(3rem,8vw,6rem)}[data-theme=neo] .project{border:0;border-top:1px solid var(--line);isolation:isolate;background:0 0;padding:2rem 0 0}[data-theme=neo] .project-num{font-family:var(--font-display);color:#0000;-webkit-text-stroke:1px var(--line);z-index:-1;font-size:clamp(5rem,14vw,10rem);font-weight:900;line-height:.8;position:absolute;top:.5rem;right:0}[data-theme=neo] .project-year{margin-left:0}[data-theme=neo] .project-status{background:var(--bg)}[data-theme=neo] .project-media{border:0;position:relative}[data-theme=neo] .project-media:after{content:"";background:var(--accent);width:38%;height:4px;position:absolute;inset:auto 0 0 auto}[data-theme=neo] .project-title{text-transform:uppercase;font-size:clamp(2.5rem,6vw,4.25rem);font-weight:900;line-height:.9}[data-theme=neo] .project:hover .project-title{animation:.35s steps(2,end) glitch}@keyframes glitch{0%{text-shadow:3px 0 var(--accent), -3px 0 var(--accent-2);transform:translate(1px)}50%{text-shadow:-3px 0 var(--accent), 3px 0 var(--accent-2);transform:translate(-1px)}to{text-shadow:none;transform:none}}[data-theme=neo] .project-security{border-left-color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 5%, transparent)}[data-theme=neo] .project-security h4,[data-theme=neo] .project-security li:before{color:var(--accent-2)}[data-theme=neo] .arch-flow li:not(:last-child):after{content:"//";color:var(--accent)}[data-theme=neo] .media-placeholder{font-family:var(--font-display);text-transform:uppercase;color:var(--line);background:repeating-linear-gradient(0deg, transparent 0 3px, #ff3d8b0d 3px 4px), var(--bg-elev);font-size:clamp(2rem,6vw,4rem);font-weight:900}@media (width>=900px){[data-theme=neo] .project{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"head head""media body""aside body"}[data-theme=neo] .project:nth-child(2n){grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"head head""body media""body aside"}[data-theme=neo] .project[data-slug=zero-trust-city] .project-title{color:var(--accent)}}[data-theme=neo] .timeline{border-left:0}[data-theme=neo] .job{border-top:1px solid var(--line);padding-top:1.5rem;padding-left:0}[data-theme=neo] .job:before{display:none}[data-theme=neo] .job-title{text-transform:uppercase;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800}[data-theme=neo] .job-when{color:var(--accent-2)}[data-theme=neo] .skill-group{border:0;border-top:2px solid var(--accent);background:0 0;padding:1rem 0 0}[data-theme=neo] .skill-group[data-group=security]{border-top-color:var(--accent-2)}[data-theme=neo] .skill-group ul{flex-wrap:wrap;gap:.4rem;display:flex}[data-theme=neo] .skill-group li{border:1px solid var(--line);padding:.25rem .6rem;font-size:.9rem}[data-theme=neo] .contact-email{letter-spacing:0;font-size:clamp(2.2rem,8vw,6rem);font-weight:900}[data-theme=neo] .contact-email a{text-decoration-color:var(--accent-2)}
