@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/f4b234103afdc32a-s.11x_mcju407z-.woff2)format("woff2");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;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/0b60d5f95c5f3f76-s.456c9vb2_utt8.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/8056169c9d560660-s.p.2fl0vhx7oyatw.woff2)format("woff2");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:Bricolage Grotesque;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/f4b234103afdc32a-s.11x_mcju407z-.woff2)format("woff2");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;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/0b60d5f95c5f3f76-s.456c9vb2_utt8.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/8056169c9d560660-s.p.2fl0vhx7oyatw.woff2)format("woff2");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:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}._6qbtdq_className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}._6qbtdq_variable{--font-display:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/62f37606a5bd6f6f-s.3wn_q526zaolu.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/4cf231d25563e07b-s.p.3uuun_-7zsf1g.woff2)format("woff2");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:Instrument Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/62f37606a5bd6f6f-s.3wn_q526zaolu.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/4cf231d25563e07b-s.p.3uuun_-7zsf1g.woff2)format("woff2");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:Instrument Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/62f37606a5bd6f6f-s.3wn_q526zaolu.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/4cf231d25563e07b-s.p.3uuun_-7zsf1g.woff2)format("woff2");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:Instrument Sans Fallback;src:local(Arial);ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.0%;size-adjust:102.74%}._7FdnQa_className{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}._7FdnQa_variable{--font-body:"Instrument Sans", "Instrument Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c64053b510252f55-s.1zakzi6q17d4o.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/733da6bd8dac84c8-s.2htf8h-pf57mm.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/784318cea1dfcfa4-s.3skwie1wjplzh.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e114457660b62ed-s.3zhbgtelpa5ua.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3vf5yzuqk3fsd.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1wmoa0e_blxrz.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/c64053b510252f55-s.1zakzi6q17d4o.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/733da6bd8dac84c8-s.2htf8h-pf57mm.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/784318cea1dfcfa4-s.3skwie1wjplzh.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e114457660b62ed-s.3zhbgtelpa5ua.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3vf5yzuqk3fsd.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1wmoa0e_blxrz.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}._7Ns5vW_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}._7Ns5vW_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#0a1020;--surface:#111a31;--surface-2:#17233f;--code:#0c1328;--line:#243157;--text:#e8edf7;--muted:#9ba9c6;--dim:#6f7fa3;--accent:#8aa6ff;--btn:#3f5fe6;--pass:#4ade9a;--skip:#f2c14e;--wrap:1040px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-padding-top:72px}body{background:var(--bg);color:var(--text);font-family:var(--font-body), system-ui, sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.6}a{color:var(--accent);text-underline-offset:3px}a:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}.skip{background:var(--text);color:var(--bg);z-index:20;border-radius:6px;padding:8px 14px;position:absolute;top:-48px;left:16px}.skip:focus{top:16px}main,footer,.topbar-inner{max-width:var(--wrap);margin:0 auto;padding-left:24px;padding-right:24px}.topbar{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-inner{align-items:center;gap:24px;height:54px;display:flex}.brand{font-family:var(--font-display), system-ui, sans-serif;color:var(--text);white-space:nowrap;font-size:1.05rem;font-weight:800;text-decoration:none}.topbar ul{margin:0;padding:0;list-style:none;display:flex}.topbar .sections{scrollbar-width:none;flex:1;justify-content:flex-end;gap:20px;overflow-x:auto}.topbar .sections a{color:var(--muted);white-space:nowrap;font-size:.9rem;text-decoration:none}.topbar .sections a:hover{color:var(--text)}.lang{border-left:1px solid var(--line);gap:2px;padding-left:16px}.lang a{color:var(--muted);letter-spacing:.02em;border-radius:6px;padding:3px 9px;font-size:.8rem;font-weight:600;text-decoration:none;display:block}.lang a:hover{color:var(--text)}.lang a[aria-current=true]{background:var(--surface-2);color:var(--text)}h1,h2,h3{font-family:var(--font-display), system-ui, sans-serif;letter-spacing:-.02em;margin:0;line-height:1.1}h1{letter-spacing:-.035em;font-size:clamp(2.4rem,5.6vw,4.2rem);font-weight:800}h1 .role{letter-spacing:-.01em;color:var(--accent);margin-top:10px;font-size:.38em;font-weight:600;display:block}h2{margin-bottom:18px;font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:800}h3{letter-spacing:-.01em;font-size:1.08rem;font-weight:600}p{max-width:68ch;margin:0 0 1em}.section-note,.meta,.context{color:var(--muted)}section{padding-top:72px}section.hero{padding-top:48px}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:24px 48px;display:grid}.lead{color:#cfd8ea;max-width:44ch;margin:20px 0 0;font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:10px;margin:26px 0 0;display:flex}.btn{background:var(--btn);color:#fff;border:2px solid var(--btn);border-radius:9px;padding:10px 20px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{background:#4d6cf0;border-color:#4d6cf0}.btn.ghost{color:var(--text);border-color:var(--line);background:0 0}.btn.ghost:hover{background:var(--surface);border-color:var(--muted)}.strip{flex-wrap:wrap;grid-column:1/-1;gap:10px;margin:24px 0 0;padding:0;list-style:none;display:flex}.strip li{background:var(--surface);border:1px solid var(--line);width:44px;height:44px;animation:.5s ease-out both rise;animation-delay:calc(.25s + var(--i) * 70ms);border-radius:12px;place-items:center;display:grid}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes appear{to{opacity:1}}@keyframes lit{to{color:var(--text)}}.gherkin{background:var(--code);border:1px solid var(--line);font-family:var(--font-mono), ui-monospace, Consolas, monospace;border-radius:14px;overflow:hidden}.gherkin-file{color:var(--dim);border-bottom:1px solid var(--line);max-width:none;margin:0;padding:9px 16px;font-size:.74rem}.gherkin-code{padding:14px 16px 16px;font-size:.82rem;line-height:1.8}.ln{overflow-wrap:anywhere;max-width:none;margin:0}.ln.comment{color:var(--dim)}.kw{color:var(--accent);font-weight:500}.ln.scenario{margin-top:6px;padding-left:1.4em}.ln.step{color:var(--dim);animation:linear forwards lit;animation-delay:var(--delay);padding-left:3.4em;position:relative}.check{color:var(--pass);opacity:0;animation:linear forwards appear;animation-delay:var(--delay);position:absolute;left:1.6em}.step-kw{color:var(--skip)}.ln.summary{border-top:1px solid var(--line);color:var(--pass);opacity:0;animation:linear forwards appear;animation-delay:var(--delay);flex-wrap:wrap;gap:4px 18px;margin-top:10px;padding-top:10px;display:flex}.about{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:40px;display:grid}.portrait{border:1px solid var(--line);background:#05080f;border-radius:18px;margin:0;overflow:hidden}.portrait img{width:100%;height:auto;display:block}.facts{border-top:1px solid var(--line);margin:22px 0 0}.facts>div{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:16px;padding:10px 0;font-size:.95rem;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.tools{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.tool{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:2px 10px 2px 8px;font-size:.84rem;line-height:1.6;text-decoration:none;display:inline-flex}a.tool:hover{border-color:var(--accent)}.tool-icon{flex:none}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0 0;padding:0;list-style:none;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:2px;padding:20px;display:flex}.card h3{margin-bottom:6px}.card>p{margin-bottom:12px;font-size:.95rem}.card .tools{margin-top:auto}.card-link{margin:12px 0 0}.status{color:var(--muted);align-items:center;gap:7px;margin:0 0 12px;font-size:.8rem;font-weight:600;display:inline-flex}.status:before{content:"";background:var(--muted);border-radius:50%;width:7px;height:7px}.card[data-status=pass] .status{color:var(--pass)}.card[data-status=pass] .status:before{background:var(--pass)}.card[data-status=skip] .status{color:var(--skip)}.card[data-status=skip] .status:before{background:var(--skip)}.card[data-status=fail] .status{color:#ff8a80}.card[data-status=fail] .status:before{background:#ff8a80}.timeline{border-left:2px solid var(--line);margin:26px 0 0;padding:0 0 0 26px;list-style:none}.timeline>li{padding:0 0 40px;position:relative}.timeline>li:last-child{padding-bottom:0}.timeline>li:before{content:"";background:var(--bg);border:2px solid var(--accent);border-radius:50%;width:11px;height:11px;position:absolute;top:5px;left:-34px}.when{color:var(--accent);margin:0 0 4px;font-size:.85rem;font-weight:600}.company{color:var(--text);margin:3px 0 4px;font-weight:500}.context{margin-bottom:10px;font-size:.92rem}.timeline ul{margin:10px 0 0;padding-left:1.15em;font-size:.95rem}.timeline ul li{max-width:76ch;margin-bottom:8px}.timeline ul li::marker{color:var(--dim)}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;display:grid}.skill-group{border-top:1px solid var(--line);padding:16px 0 18px}.skill-group h3{color:var(--muted);letter-spacing:0;margin-bottom:10px;font-size:.95rem;font-weight:600}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;display:grid}h3.subhead{color:var(--muted);margin-bottom:14px;font-size:.95rem}.entries{margin:0;padding:0;list-style:none}.entries>li{margin-bottom:18px}.crest{border:1px solid var(--line);border-radius:12px;justify-content:center;align-items:center;width:fit-content;min-width:48px;height:48px;margin-bottom:12px;display:flex}.crest-logo{padding:6px 12px}.crest-logo img{object-fit:contain;width:auto;max-width:128px;height:100%;display:block}.plate-dark{background:var(--surface-2)}.plate-light{background:#fff}.crest-mono{background:var(--surface-2);color:var(--muted);font-family:var(--font-display), system-ui, sans-serif;letter-spacing:.02em;padding:0 10px;font-size:.74rem;font-weight:800}.entries p{margin-bottom:3px;font-size:.95rem}.entry-title{font-weight:600}.email{font-family:var(--font-display), system-ui, sans-serif;color:var(--text);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);overflow-wrap:anywhere;font-size:clamp(1.15rem,2.6vw,1.6rem);font-weight:600}.links{margin-top:16px}footer{border-top:1px solid var(--line);color:var(--muted);margin-top:80px;padding-top:20px;padding-bottom:40px;font-size:.88rem}footer p{margin:0}@media (max-width:860px){.hero{grid-template-columns:1fr}.about{grid-template-columns:1fr;gap:24px}.portrait{max-width:240px}.cards,.skills,.two-col{grid-template-columns:1fr}.two-col{gap:4px}section{padding-top:60px}section.hero{padding-top:36px}}@media (max-width:560px){main,footer,.topbar-inner{padding-left:18px;padding-right:18px}.brand{display:none}.facts>div{grid-template-columns:1fr;gap:2px}.gherkin-code{font-size:.76rem}.timeline{padding-left:20px}.timeline>li:before{left:-28px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.strip li{animation:none}.check,.ln.summary{opacity:1;animation:none}.ln.step{color:var(--text);animation:none}}
