@font-face{font-family:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(../media/saira-semi-condensed-vietnamese-600-normal.2y7hdeb_is1cz.woff2)format("woff2"),url(../media/saira-semi-condensed-vietnamese-600-normal.10ofeiz8x2h4r.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(../media/saira-semi-condensed-latin-ext-600-normal.1x_w5r469rcyh.woff2)format("woff2"),url(../media/saira-semi-condensed-latin-ext-600-normal.1fgjny055ixe9.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(../media/saira-semi-condensed-latin-600-normal.442nud6v6o494.woff2)format("woff2"),url(../media/saira-semi-condensed-latin-600-normal.216ii_vxynexp.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(../media/saira-semi-condensed-vietnamese-700-normal.0fk--m4ernof_.woff2)format("woff2"),url(../media/saira-semi-condensed-vietnamese-700-normal.07e9n-vxcazqx.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(../media/saira-semi-condensed-latin-ext-700-normal.1c_8v0cwvr21a.woff2)format("woff2"),url(../media/saira-semi-condensed-latin-ext-700-normal.1z06kb-52txhz.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(../media/saira-semi-condensed-latin-700-normal.3qzinrzvy3oeh.woff2)format("woff2"),url(../media/saira-semi-condensed-latin-700-normal.0md-kf-hnh9b5.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(../media/saira-semi-condensed-vietnamese-800-normal.1k2ml539gh5h9.woff2)format("woff2"),url(../media/saira-semi-condensed-vietnamese-800-normal.1onse6rvem2td.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(../media/saira-semi-condensed-latin-ext-800-normal.0tchhepe_qrn4.woff2)format("woff2"),url(../media/saira-semi-condensed-latin-ext-800-normal.2czcq67z9_usw.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:Saira Semi Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(../media/saira-semi-condensed-latin-800-normal.3qya6adtksg2r.woff2)format("woff2"),url(../media/saira-semi-condensed-latin-800-normal.0kzz2zhw76h3f.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 Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-cyrillic-ext-wght-normal.2v1o51uc2kchm.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-cyrillic-wght-normal.40fhna1udykyx.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-greek-wght-normal.27bif0w39buap.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-vietnamese-wght-normal.2j8_frj6hvgv_.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-latin-ext-wght-normal.1l408xhqv1p1x.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-latin-wght-normal.1-vxdsykms0gx.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:500;src:url(../media/ibm-plex-mono-cyrillic-ext-500-normal.2tfs-ajhr_27q.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-500-normal.29wincfdhpbow.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(../media/ibm-plex-mono-cyrillic-500-normal.30hm7mcic8nak.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-500-normal.1g2cl4geicio1.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(../media/ibm-plex-mono-vietnamese-500-normal.400h8-n7y356b.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-500-normal.2w9-mj8vy__-b.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(../media/ibm-plex-mono-latin-ext-500-normal.2yypdhrkbqnza.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-500-normal.3-fgi0nn_mag-.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(../media/ibm-plex-mono-latin-500-normal.25_05y-blbp24.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-500-normal.20ixcot5hpnm-.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:600;src:url(../media/ibm-plex-mono-cyrillic-ext-600-normal.359v33n-iztly.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-600-normal.398wshiu4r_iu.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:600;src:url(../media/ibm-plex-mono-cyrillic-600-normal.2ftnyia3t1pbj.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-600-normal.2yoett-16jbxc.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:600;src:url(../media/ibm-plex-mono-vietnamese-600-normal.3ufj-gslhu4nz.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-600-normal.1nomdqs_fzu-5.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:600;src:url(../media/ibm-plex-mono-latin-ext-600-normal.3r1dv7zl76cle.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-600-normal.0s7g4yy6qy35e.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:600;src:url(../media/ibm-plex-mono-latin-600-normal.04jv21_rdbjv3.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-600-normal.0tzh5malamm2z.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:700;src:url(../media/ibm-plex-mono-cyrillic-ext-700-normal.2610umsoigjc-.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-700-normal.34kn5y1nk6r0l.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:700;src:url(../media/ibm-plex-mono-cyrillic-700-normal.2lp6cj3zh0bc8.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-700-normal.2-24b732813rm.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:700;src:url(../media/ibm-plex-mono-vietnamese-700-normal.34rcwpde-qph9.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-700-normal.3o5yl8ublkl7o.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:700;src:url(../media/ibm-plex-mono-latin-ext-700-normal.3eomlqv5yg9yi.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-700-normal.2plhm9298qid6.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:700;src:url(../media/ibm-plex-mono-latin-700-normal.4297h2yzxl-t8.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-700-normal.39hlac8pcrcj4.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}
:root{--paper:#f7f8fc;--ink:#173a5e;--blue:#1e5eff;--coral:#ff806a;--teal:#0d7a74;--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--radius-pill:999px;--display:"Saira Semi Condensed", "Arial Narrow", sans-serif;--body:"IBM Plex Sans Variable", "Segoe UI", sans-serif;--mono:"IBM Plex Mono", Consolas, monospace}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-synthesis:none;margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}::selection{background:var(--coral);color:var(--ink)}.skip-link{z-index:100;background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius-sm);font:700 12px var(--mono);padding:12px 16px;position:fixed;top:10px;left:10px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.topbar{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f7f8fcf0;border-bottom:1px solid #173a5e40;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;min-height:78px;padding:0 4vw;display:grid;position:sticky;top:0}.brand{width:fit-content;font:800 24px/1 var(--display);letter-spacing:-.045em}.topbar nav{align-items:center;gap:6px;display:flex}.topbar nav a,.github-link{min-height:44px;font:600 10px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;align-items:center;padding:0 13px;display:inline-flex}.topbar nav a{border-bottom:2px solid #0000}.topbar nav a:hover{color:var(--blue);border-color:var(--blue)}.top-actions{justify-self:end;align-items:center;gap:8px;display:flex}.language-switch{border:1px solid var(--ink);min-width:44px;min-height:44px;font:700 9px var(--mono);letter-spacing:.05em;border-radius:50%;place-items:center;display:inline-grid}.language-switch:hover{background:var(--blue);color:var(--paper);border-color:var(--blue)}.github-link{border:1px solid var(--ink);border-radius:var(--radius-pill);gap:12px}.github-link:hover{background:var(--ink);color:var(--paper)}section{scroll-margin-top:78px}.eyebrow{font:600 10px/1.55 var(--mono);letter-spacing:.07em;text-transform:uppercase;margin:0}.hero{background-image:linear-gradient(#173a5e0e 1px,#0000 1px),linear-gradient(90deg,#173a5e0e 1px,#0000 1px);background-size:32px 32px;grid-template-columns:minmax(0,1fr);align-items:center;min-height:calc(82svh - 78px);padding:clamp(72px,10vh,120px) 4vw;display:grid;overflow:hidden}.hero-copy{z-index:1;width:min(100%,1220px);min-width:0;position:relative}.hero-copy .eyebrow{max-width:660px;color:var(--teal);margin-bottom:clamp(28px,4vh,46px)}.hero h1{max-width:1180px;font:700 clamp(4.15rem, 7.7vw, 8.2rem)/.86 var(--display);letter-spacing:-.052em;text-wrap:balance;overflow-wrap:normal;margin:0}.hero h1 mark{color:var(--blue);background:0 0}.hero h1 span{color:var(--teal);font:600 .36em/1.1 var(--mono);letter-spacing:-.055em}.hero-summary{max-width:650px;margin:clamp(30px,5vh,58px) 0 0;font-size:clamp(16px,1.35vw,20px);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.button{border:1px solid var(--ink);border-radius:var(--radius-pill);min-height:50px;font:650 10px var(--mono);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:30px;padding:0 20px;display:inline-flex}.button.primary{background:var(--ink);color:var(--paper)}.button.primary:hover{background:var(--blue);border-color:var(--blue)}.button.secondary:hover{color:var(--blue);border-color:var(--blue)}.trace-section{padding:clamp(88px,9vw,140px) 4vw clamp(96px,10vw,155px);position:relative}.section-heading{padding-bottom:clamp(65px,8vw,110px)}.section-heading .eyebrow{opacity:.76;margin-bottom:30px}.section-heading h2{max-width:1050px;font:700 clamp(3.4rem, 6vw, 6.8rem)/.92 var(--display);letter-spacing:-.042em;text-wrap:balance;margin:0}.section-heading.split{grid-template-columns:1.35fr .65fr;align-items:end;gap:8vw;display:grid}.section-heading.split>*,.case-copy,.system-map,.technical-grid>*{min-width:0}.section-heading.split>p{max-width:430px;margin:0 0 8px;font-size:18px;line-height:1.6}.experience{background:var(--ink);color:var(--paper)}.role-row{border-top:1px solid #f7f8fc47;grid-template-columns:.72fr 1.28fr;gap:8vw;padding:42px 0 75px;display:grid}.role-meta time{font:600 10px var(--mono);letter-spacing:.05em;text-transform:uppercase}.role-company{color:var(--paper);font:700 clamp(24px, 3vw, 40px)/1 var(--display);letter-spacing:-.025em;align-items:center;gap:12px;display:inline-flex}.role-company:hover{color:var(--coral)}.company-summary{color:#f7f8fcb3;max-width:360px;margin:18px 0 0;font-size:13px;line-height:1.5}.role-meta h3{max-width:370px;font:700 clamp(26px, 3vw, 43px)/1 var(--display);letter-spacing:-.035em;margin:32px 0 40px}.role-meta time{color:#f7f8fcab}.role-body .lead{max-width:760px;margin:0 0 45px;font-size:clamp(20px,2.2vw,31px);line-height:1.38}.responsibility-list{border-top:1px solid #f7f8fc40;margin:0;padding:0;list-style:none}.responsibility-list li{border-bottom:1px solid #f7f8fc40;grid-template-columns:150px 1fr;gap:25px;padding:17px 0;display:grid}.responsibility-list b{color:var(--paper);font:600 9px var(--mono);letter-spacing:.06em;text-transform:uppercase}.responsibility-list span{color:#f7f8fcc7;font-size:14px;line-height:1.45}.metric-strip{border-radius:var(--radius-lg);border:1px solid #f7f8fc4d;grid-template-columns:repeat(2,1fr);display:grid;overflow:hidden}.metric-strip article{min-height:220px;padding:30px}.metric-strip article+article{border-left:1px solid #f7f8fc4d}.metric-strip strong{font:700 clamp(66px, 8vw, 126px)/.94 var(--display);letter-spacing:-.045em}.metric-strip article:nth-child(2) strong{color:var(--coral)}.metric-strip p{color:#f7f8fcb3;max-width:245px;margin:18px 0 0;font-size:13px;line-height:1.45}.projects{background:var(--paper)}.section-heading.split h2 span{color:var(--blue)}.case-file{border-top:1px solid #173a5e47;grid-template-columns:minmax(320px,.78fr) minmax(450px,1.22fr);gap:clamp(36px,5vw,76px);padding:74px 0 104px;display:grid}.case-file+.case-file{margin-top:35px}.status-line{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:25px;display:flex}.status-line span,.status-line b{border:1px solid var(--ink);border-radius:var(--radius-pill);font:600 8px var(--mono);letter-spacing:.05em;text-transform:uppercase;padding:7px 11px}.status-line b{border-color:var(--teal);background:var(--teal);color:var(--paper)}.case-copy h3{font:700 clamp(4.75rem, 7vw, 7.2rem)/.92 var(--display);letter-spacing:-.045em;white-space:nowrap;overflow-wrap:normal;word-break:normal;margin:0 0 30px}.case-copy>p{max-width:590px;margin:0 0 38px;font-size:17px;line-height:1.58}.case-details{margin:0 0 38px}.case-details div{border-top:1px solid #173a5e38;grid-template-columns:118px 1fr;gap:22px;padding:15px 0;display:grid}.case-details div:last-child{border-bottom:1px solid #173a5e38}.case-details dt{color:var(--blue);font:650 9px var(--mono);letter-spacing:.05em;text-transform:uppercase}.case-details dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:13px;line-height:1.5}.text-link{border:1px solid var(--ink);border-radius:var(--radius-pill);min-height:46px;font:650 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:55px;padding:0 18px;display:inline-flex}.text-link:hover{background:var(--ink);color:var(--paper)}.system-map{border:1px solid var(--ink);border-radius:var(--radius-lg);min-height:650px;box-shadow:15px 15px 0 var(--ink);padding:28px;position:relative;overflow:hidden}.fit-map{background:var(--coral);flex-direction:column;gap:28px;min-height:560px;display:flex}.map-title{font:650 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;margin:0}.fit-track{flex:1;grid-template-columns:minmax(0,1fr) minmax(90px,.42fr) minmax(0,1fr);align-items:center;gap:18px;display:grid}.fit-track.expanded{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center}.fit-track.expanded .map-stage{min-height:145px;transform:none}.map-stage{background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius-md);flex-direction:column;justify-content:space-between;min-width:0;min-height:180px;padding:20px;display:flex}.map-stage span,.map-stage small,.map-connector span{font:600 8px/1.45 var(--mono);letter-spacing:.06em;text-transform:uppercase;overflow-wrap:anywhere}.map-stage strong{font:700 clamp(24px, 2.5vw, 38px)/1 var(--display);letter-spacing:-.025em}.map-stage small{color:var(--blue)}.map-stage.current{transform:rotate(-1deg)}.map-stage.validated{background:var(--ink);color:var(--paper);transform:rotate(1deg)}.map-stage.validated small{color:var(--paper)}.map-connector{text-align:center;flex-direction:column;align-items:center;gap:14px;min-width:0;display:flex}.map-connector i{border-top:2px solid var(--ink);width:100%}.fit-evidence{border:1px solid var(--ink);border-radius:var(--radius-md);background:#f7f8fc4d;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:18px 20px;display:grid}.fit-evidence span,.fit-evidence small{font:600 8px/1.4 var(--mono);letter-spacing:.05em;text-transform:uppercase}.fit-evidence strong{font:700 22px/1 var(--display)}.fit-evidence small{text-align:right;max-width:28ch}.flow-map{background:var(--blue);color:var(--paper);box-shadow-color:var(--coral);flex-direction:column;gap:36px;display:flex}.flow-nodes{grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:9px;margin-top:38px;display:grid}.flow-nodes>i{color:var(--coral);font-style:normal}.node{border-radius:var(--radius-md);border:1px solid #f7f8fcb3;flex-direction:column;justify-content:space-between;min-width:0;min-height:135px;padding:13px;display:flex}.node span,.node small,.hardware-node span,.hardware-node small{font:600 8px/1.4 var(--mono);letter-spacing:.05em;text-transform:uppercase}.node strong{font:700 clamp(16px, 1.4vw, 22px)/1 var(--display);letter-spacing:-.015em}.node small{color:var(--paper)}.flow-output{grid-template-columns:minmax(0,1fr) 210px;align-items:stretch;gap:30px;margin-top:auto;display:grid}.scope-note{border-radius:var(--radius-md);border:1px solid #f7f8fcb3;flex-direction:column;justify-content:space-between;min-width:0;min-height:160px;padding:20px;display:flex}.scope-note span,.scope-note small{font:600 8px/1.4 var(--mono);letter-spacing:.05em;text-transform:uppercase}.scope-note strong{font:700 clamp(24px, 2.5vw, 38px)/1 var(--display);letter-spacing:-.025em}.hardware-node{background:var(--paper);width:210px;min-width:0;height:160px;color:var(--ink);border:8px double var(--ink);border-radius:var(--radius-md);flex-direction:column;justify-content:space-between;padding:18px;display:flex;box-shadow:10px 10px #173a5e40}.hardware-node strong{font:700 46px/.95 var(--display);letter-spacing:-.035em}.hardware-node small{color:var(--blue)}.technical{background:var(--paper);padding-bottom:120px}.technical-grid{grid-template-columns:1.25fr .75fr;align-items:start;gap:6vw;display:grid}.technology-list{border-top:1px solid #173a5e4d}.technology-list>div{border-bottom:1px solid #173a5e4d;grid-template-columns:170px 1fr;align-items:start;gap:22px;padding:20px 0;display:grid}.technology-list span{font:650 10px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--blue)}.technology-list p{overflow-wrap:anywhere;min-width:0;margin:-3px 0 0;line-height:1.5}.education-card{background:var(--ink);min-height:410px;color:var(--paper);border-radius:var(--radius-lg);box-shadow:13px 13px 0 var(--teal);grid-template-columns:auto auto auto;align-content:space-between;gap:16px;padding:28px;display:grid}.education-card p{font:600 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;grid-column:1/-1;margin:0}.education-card>strong{font:700 clamp(95px, 10vw, 150px)/.84 var(--display);letter-spacing:-.045em;color:var(--coral);grid-column:1/-1}.education-card h3{font:700 28px/1.08 var(--display);grid-column:1/-1;margin:0}.education-card h3 span{color:#f7f8fc9e;font:500 10px var(--mono);text-transform:uppercase}.education-card time,.education-card>i{font:500 9px var(--mono);text-transform:uppercase;align-self:center;font-style:normal}.education-card>i{color:var(--coral)}.profile-asides{gap:28px;display:grid}.language-card{background:var(--paper);border:1px solid var(--ink);border-radius:var(--radius-lg);box-shadow:10px 10px 0 var(--coral);gap:0;padding:24px 28px;display:grid}.language-card>p{color:var(--blue);font:650 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px}.language-card>div{border-top:1px solid #173a5e40;grid-template-columns:1fr auto;gap:5px 20px;padding:14px 0;display:grid}.language-card span,.language-card small{font:600 9px/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase}.language-card strong{font:700 20px/1 var(--display)}.language-card small{color:var(--teal);grid-column:1/-1}.certificates-section{background:var(--ink);color:var(--paper)}.certificates-section .section-heading h2 span{color:var(--coral)}.credential-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.5vw,34px);margin:0 0 72px;display:grid}.credential-feature{background:var(--paper);min-width:0;color:var(--ink);border-radius:var(--radius-lg);box-shadow:10px 10px 0 var(--coral);grid-template-columns:minmax(105px,140px) minmax(0,1fr);align-items:center;gap:clamp(20px,2.5vw,34px);padding:clamp(20px,2.4vw,30px);display:grid}.credential-feature:nth-child(2){box-shadow:10px 10px 0 var(--teal)}.credential-feature:hover{box-shadow:6px 6px 0 var(--coral);transform:translate(2px,2px)}.credential-feature:nth-child(2):hover{box-shadow:6px 6px 0 var(--teal)}.credential-feature>img{border-radius:var(--radius-md);border:1px solid #173a5e33;width:100%;height:auto;display:block}.credential-copy{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.credential-copy small{color:var(--blue);font:650 9px var(--mono);letter-spacing:.06em;text-transform:uppercase}.credential-copy strong{max-width:430px;font:700 clamp(28px, 3vw, 43px)/.96 var(--display);letter-spacing:-.03em;overflow-wrap:anywhere;margin-top:13px}.credential-copy>span{max-width:430px;margin-top:16px;font-size:14px;line-height:1.5}.credential-copy b{border-bottom:1px solid var(--ink);font:650 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:14px;margin-top:20px;padding-bottom:4px;display:inline-flex}.certificate-carousel{min-width:0}.certificate-marquee-note{color:#f7f8fcb3;font:600 9px/1.5 var(--mono);letter-spacing:.05em;text-transform:uppercase;border-top:1px solid #f7f8fc47;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:22px;padding-top:18px;display:grid}.certificate-marquee-note span:first-child{color:var(--paper);align-items:center;gap:9px;display:inline-flex}.certificate-marquee-instruction{text-align:center;justify-self:center}.certificate-marquee-note i{background:var(--coral);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #ff806a24}.certificate-pause{appearance:none;border-radius:var(--radius-pill);min-width:112px;min-height:44px;box-shadow:none;color:var(--paper);cursor:pointer;font:700 10px var(--mono);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:1px solid #f7f8fcb3;justify-content:center;align-items:center;gap:9px;padding:0 17px;display:inline-flex}.certificate-pause:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}.certificate-pause[aria-pressed=true]{background:var(--coral);color:var(--ink);border-color:var(--coral)}.certificate-streams{gap:18px;padding:5px 0 12px;display:grid;position:relative;overflow:hidden}.certificate-streams:before,.certificate-streams:after{content:"";z-index:3;pointer-events:none;width:clamp(20px,4vw,70px);position:absolute;top:0;bottom:0}.certificate-streams:before{background:linear-gradient(90deg, var(--ink), transparent);left:0}.certificate-streams:after{background:linear-gradient(-90deg, var(--ink), transparent);right:0}.certificate-marquee-row{min-width:0;position:relative;overflow:hidden}.certificate-row-label{z-index:4;background:var(--coral);width:30px;height:30px;color:var(--ink);font:750 8px var(--mono);pointer-events:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:13px;left:13px;box-shadow:0 4px 16px #173a5e52}.certificate-marquee-track{--certificate-gap:16px;will-change:transform;width:max-content;animation:54s linear infinite certificate-flow;display:flex}.certificate-marquee-row-2 .certificate-marquee-track{animation-duration:62s;animation-delay:-17s}.certificate-marquee-group{gap:var(--certificate-gap);padding-right:var(--certificate-gap);display:flex}.certificate-card{border-radius:var(--radius-lg);background:#f7f8fc0f;border:1px solid #f7f8fc57;flex:none;width:clamp(220px,19vw,330px);transition:border-color .2s,background .2s,transform .2s;overflow:hidden}.certificate-card:hover{z-index:2;border-color:var(--coral);background:#f7f8fc1c;transform:translateY(-3px)}.certificate-card-image{background:var(--paper);border-radius:calc(var(--radius-lg) - 7px);margin:7px;display:block;overflow:hidden}.certificate-card-image img{aspect-ratio:1.414;object-fit:contain;width:100%;height:auto;display:block}.certificate-card-meta{flex-direction:column;gap:8px;min-height:82px;padding:10px 15px 15px;display:flex}.certificate-card-meta>span{color:#ffb8ac;font:650 10px/1.35 var(--mono);letter-spacing:.045em;text-transform:uppercase}.certificate-card-meta strong{font:700 15px/1.2 var(--display);letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.certificate-streams:hover .certificate-marquee-track,.certificate-carousel[data-paused=true] .certificate-marquee-track{animation-play-state:paused}@keyframes certificate-flow{to{transform:translate(-50%)}}.contact{background:var(--ink);min-height:77svh;color:var(--paper);flex-direction:column;justify-content:center;padding:100px 4vw;display:flex}.contact .eyebrow{margin-bottom:45px}.contact h2{max-width:1250px;font:700 clamp(4.2rem, 9vw, 9.5rem)/.88 var(--display);letter-spacing:-.045em;overflow-wrap:normal;text-wrap:balance;margin:0}.contact h2 span{color:var(--coral)}.contact-summary{color:#f7f8fcc7;width:min(100%,820px);margin:36px 0 0;font-size:clamp(17px,1.7vw,23px);line-height:1.5}.contact-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(100%,1100px);margin-top:48px;display:grid}.contact-link{border-radius:var(--radius-pill);min-width:0;min-height:74px;font:650 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid #f7f8fca6;justify-content:space-between;align-items:center;gap:20px;padding:0 26px;display:flex}.contact-link>span{text-underline-offset:6px;text-decoration:underline}.contact-link>span+span{font-size:28px}.contact-link:hover{background:var(--ink)}.footer{background:var(--ink);min-height:88px;color:var(--paper);grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;padding:0 4vw;display:grid}.footer p,.footer a{font:500 10px/1.45 var(--mono);letter-spacing:.045em;text-transform:uppercase;margin:0}.footer p:nth-child(2){color:#f7f8fc8c}.footer a{justify-self:end;align-items:center;min-height:44px;display:flex}.footer a:hover{color:var(--coral)}@media (max-width:1050px){.section-heading.split{grid-template-columns:1fr;gap:38px}.case-file{grid-template-columns:1fr}.system-map{grid-column:1;min-height:600px}}@media (max-width:1200px){.flow-map{min-height:680px}.flow-nodes{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.flow-nodes>i{display:none}.node{min-height:112px}}@media (max-width:760px){.topbar{grid-template-columns:1fr auto;gap:8px 20px;min-height:auto;padding:14px 20px;position:relative}.topbar nav{scrollbar-width:none;border-top:1px solid #173a5e33;grid-area:2/1/auto/-1;justify-content:flex-start;gap:clamp(10px,4vw,18px);overflow-x:auto}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{white-space:nowrap;flex:none;padding:0 4px;font-size:8px}.github-link{padding:0 11px}.top-actions{gap:6px}section{scroll-margin-top:0}.hero{min-height:auto;padding:58px 20px 68px}.hero-copy .eyebrow{margin-bottom:26px}.hero h1{font-size:clamp(3rem,14.2vw,4rem);line-height:.9}.hero-summary{font-size:16px}.trace-section{padding:76px 20px 88px}.section-heading{padding-bottom:56px}.section-heading h2{font-size:clamp(2.65rem,11.8vw,3.35rem)}.section-heading.split{grid-template-columns:1fr;gap:36px}.section-heading.split>p{font-size:16px}.role-row{grid-template-columns:1fr;gap:42px;padding:34px 0 58px}.responsibility-list li{grid-template-columns:1fr;gap:9px}.metric-strip{grid-template-columns:1fr}.metric-strip article{min-height:165px;padding:25px 0}.metric-strip article+article{border-top:1px solid #f7f8fc4d;border-left:0}.case-file{grid-template-columns:1fr;gap:24px;padding:54px 0 76px}.case-copy h3{font-size:clamp(3rem,14vw,4.35rem)}.case-details div{grid-template-columns:1fr;gap:8px}.system-map{min-height:0;box-shadow:7px 7px 0 var(--ink);grid-column:1;padding:20px}.fit-map{min-height:0}.fit-track,.fit-track.expanded{grid-template-columns:1fr;gap:16px}.map-stage{min-height:118px;transform:none}.map-connector{text-align:left;flex-direction:row;min-height:46px}.map-connector i{flex:1;width:auto}.fit-evidence{grid-template-columns:1fr;gap:8px}.fit-evidence small{text-align:left}.flow-map{box-shadow-color:var(--coral);min-height:0}.flow-nodes{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.flow-nodes>i{display:none}.node{min-height:115px;padding:10px}.flow-output{grid-template-columns:1fr;gap:16px;margin-top:0}.scope-note{min-height:132px}.hardware-node{justify-self:end;width:min(100%,230px)}.technical-grid{grid-template-columns:1fr;gap:55px}.technology-list>div{grid-template-columns:1fr;gap:8px;padding:17px 0}.technology-list p{grid-column:1;margin:0;font-size:14px}.education-card{min-height:360px;box-shadow:9px 9px 0 var(--teal)}.education-card>strong{font-size:78px}.credential-grid{grid-template-columns:1fr;gap:24px;margin-bottom:54px}.credential-feature{box-shadow:8px 8px 0 var(--coral);grid-template-columns:minmax(90px,130px) minmax(0,1fr);gap:18px;padding:18px}.credential-feature:nth-child(2){box-shadow:8px 8px 0 var(--teal)}.credential-copy strong{font-size:clamp(23px,7vw,34px)}.status-line span,.status-line b,.case-details dt,.technology-list span{font-size:10px}.map-stage span,.map-stage small,.node span,.node small,.scope-note span,.scope-note small,.hardware-node span,.hardware-node small{font-size:9px}.certificate-marquee-note{grid-template-columns:1fr auto;gap:8px 16px}.certificate-marquee-instruction{display:none}.certificate-streams{gap:12px;margin-right:-20px}.certificate-marquee-track{--certificate-gap:11px;animation-duration:42s}.certificate-marquee-row-2 .certificate-marquee-track{animation-duration:48s}.certificate-card{border-radius:var(--radius-md);width:62vw}.certificate-card-image{border-radius:calc(var(--radius-md) - 5px);margin:5px}.certificate-card-meta{min-height:86px;padding:8px 12px 12px}.certificate-card-meta strong{-webkit-line-clamp:3;font-size:14px}.contact{min-height:62svh;padding:78px 20px}.contact h2{font-size:clamp(2.9rem,13vw,3.85rem)}.contact-actions{grid-template-columns:1fr}.footer{grid-template-columns:1fr;gap:12px;padding:28px 20px}.footer a{justify-self:start}}@media (max-width:300px){.flow-map{min-height:850px}.flow-nodes{grid-template-columns:1fr}.node{min-height:88px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.certificate-marquee-track{animation:none}.certificate-marquee-row{scrollbar-width:thin;padding-bottom:8px;overflow-x:auto}.certificate-card{transition:none}}
