@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:100 800;font-display:swap;src:url("/fonts/jetbrains-mono-latin-ext-wght-normal.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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";font-style:normal;font-weight:100 800;font-display:swap;src:url("/fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#080808;--panel:#141416;--panel-raised:#1B1B1D;--panel-hover:#202022;--text:#D0D0D0;--muted:#A3A3A3;--dim:#858585;--accent:#FF4040;--accent-hover:#FF5C5C;--accent-glow:rgba(255,64,64,.14);--accent-soft:#241010;--line:#333333;--line-strong:#555555;--radius:0;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--display:var(--mono);--body:var(--mono);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.75 var(--body);-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}h1,h2,h3,p,dl,dd{margin:0}h1,h2,h3{font-family:var(--display)}.wrap{width:min(1120px,calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;top:-80px;left:20px;z-index:20;background:var(--accent);color:var(--bg);padding:10px 20px}.skip-link:focus{top:10px}
.header{height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{font:750 24px var(--display);letter-spacing:-1px}.brand span{color:var(--accent)}.header nav{display:flex;gap:28px;color:var(--muted);font-size:13px}.header nav a:hover,.header nav a.active{color:var(--accent)}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:70px;padding-block:70px 66px;align-items:start}.eyebrow{font:11px var(--mono);letter-spacing:1.7px;color:var(--accent);display:flex;align-items:center;gap:14px}.eyebrow:before{content:'';height:2px;width:30px;background:var(--accent)}.hero h1{font-size:clamp(48px,5.6vw,72px);font-weight:650;line-height:1.15;letter-spacing:-3px;margin:22px 0 15px}.hero-role{font-size:19px;color:var(--text);line-height:1.5;margin-bottom:23px}.hero-description{color:var(--muted);font-size:15px;line-height:1.85;margin-top:12px;max-width:600px}.hero-actions{display:flex;align-items:center;gap:27px;flex-wrap:wrap;margin-top:27px}.button{background:var(--accent);color:var(--bg);border:1px solid var(--accent);display:inline-flex;align-items:center;gap:27px;border-radius:var(--radius);padding:11px 18px;font-size:13px;font-weight:600}.button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.button span{font-size:18px;line-height:1}.text-link{font-size:13px;color:var(--muted)}.text-link span{color:var(--accent);margin-left:10px}.text-link:hover{color:var(--text)}
.profile-summary{background:var(--panel);padding:27px 29px;border:1px solid var(--line);border-top:1px solid var(--accent);margin-top:4px}.profile-summary h2{font-size:15px;font-weight:600;margin-bottom:22px;padding-bottom:11px;border-bottom:1px solid var(--line)}.profile-summary dl>div+div{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.profile-summary dt{font:10px var(--mono);color:var(--dim);margin-bottom:7px}.profile-summary dd{font-size:13px;line-height:1.7;color:var(--text)}.profile-summary small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.cv-section{border-top:1px solid var(--line);padding-block:42px 46px;display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px}.section-heading{display:flex;align-items:baseline;gap:15px}.section-number{font:11px var(--mono);color:var(--accent)}.section-heading h2{font-size:19px;font-weight:550;line-height:1.5;letter-spacing:-.4px}.cv-entry{display:grid;grid-template-columns:130px minmax(0,1fr);gap:25px}.cv-entry+.cv-entry{margin-top:30px;padding-top:30px;border-top:1px solid var(--line)}.date{font:11px/1.8 var(--mono);color:var(--dim);padding-top:3px}.entry-location{font-size:11px;color:var(--dim);margin-top:8px}.cv-entry h3{font-size:18px;font-weight:550;letter-spacing:-.3px;line-height:1.5;margin-bottom:4px}.cv-entry>div>p{font-size:13px;color:var(--muted)}.cv-entry .entry-subtitle{color:var(--text);margin-bottom:7px}.thesis{margin-top:17px;line-height:1.8}.thesis span{display:block;font:10px var(--mono);color:var(--accent);margin-bottom:6px}.placement-duration{font-size:12px!important;color:var(--dim)!important;margin-bottom:15px}.experience-list{margin:0;padding-left:17px;color:var(--muted);font-size:13px;line-height:1.85}.experience-list li{padding-left:3px;margin-top:9px}.experience-list li::marker{color:var(--accent)}
.section-intro{font-size:14px;color:var(--muted);line-height:1.85;max-width:700px}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:29px 32px;margin-top:27px}.skill-group h3{font-size:14px;font-weight:550;margin-bottom:13px}.skill-list{display:flex;flex-wrap:wrap;gap:7px}.skill-list span{font:11px/1.6 var(--mono);color:var(--muted);border:1px solid var(--line);padding:4px 8px;border-radius:var(--radius)}.skill-group>p{font-size:12px;color:var(--muted);line-height:1.85;margin-top:12px}.languages{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:25px}.languages dt{font-size:14px;color:var(--text);margin-bottom:6px}.languages dd{font-size:12px;color:var(--muted)}.driving{font-size:12px;color:var(--dim);margin-top:25px}
.contact-section{padding-bottom:31px}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;margin-top:20px}.email-link{font-size:21px;letter-spacing:-.4px;overflow-wrap:anywhere}.email-link span{color:var(--accent);margin-left:9px}.email-link:hover{color:var(--accent)}.copy-button{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);padding:9px 13px;border-radius:var(--radius);font-size:11px;white-space:nowrap}.copy-button:hover{border-color:var(--accent)}.copy-button svg{width:14px;height:14px;stroke:var(--muted);stroke-width:1.5;fill:none}.copy-status{font-size:11px;color:var(--muted);min-height:20px;margin-top:12px}.footer{border-top:1px solid var(--line);min-height:90px;display:flex;align-items:center;gap:25px;color:var(--dim);font-size:11px}.back-top{border:1px solid var(--line);width:30px;height:30px;display:grid;place-items:center;color:var(--accent)}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero{gap:40px}.hero-role{font-size:17px}.cv-section{grid-template-columns:185px minmax(0,1fr);gap:30px}.section-heading{gap:11px}.section-heading h2{font-size:17px}.cv-entry{grid-template-columns:110px minmax(0,1fr);gap:20px}.skills-grid{gap:25px}.profile-summary{padding:24px}}
@media(max-width:800px){.header nav{gap:18px}.hero{gap:27px;grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);padding-top:48px}.hero h1{font-size:50px;letter-spacing:-2px}.hero-description{font-size:14px}.hero-role{font-size:16px}.profile-summary{padding:22px}.cv-section{grid-template-columns:1fr;gap:24px;padding-block:32px}.section-heading h2{font-size:20px}.section-heading{gap:15px}.cv-entry{grid-template-columns:135px minmax(0,1fr)}.hero-actions{gap:19px}.button{font-size:12px;gap:18px}.text-link{font-size:12px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:75px;position:relative}.header nav{display:none;position:absolute;top:65px;left:0;right:0;z-index:10;flex-direction:column;gap:0;background:var(--panel);border:1px solid var(--line);padding:10px;border-radius:var(--radius)}.header nav.open{display:flex}.header nav a{padding:10px;font-size:14px}.menu-toggle{display:flex;flex-direction:column;gap:6px;background:none;border:0;padding:12px 4px;z-index:11}.menu-toggle span{width:22px;height:1px;background:var(--text)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero{grid-template-columns:1fr;gap:32px;padding-block:42px}.hero h1{font-size:54px;letter-spacing:-2px;margin-top:20px}.hero-role{font-size:17px}.hero-description{font-size:14px}.profile-summary{margin:0;padding:22px}.profile-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:20px}.profile-summary dl>div+div{border:0;margin:0;padding:0}.profile-summary h2{margin-bottom:19px}.profile-summary dd{font-size:12px}.profile-summary small{font-size:11px}.hero-actions{gap:25px}.cv-entry h3{font-size:17px}.languages{gap:20px}.contact-row{gap:18px}.footer{gap:18px;flex-wrap:wrap;padding-block:22px}}
@media(max-width:440px){.hero h1{font-size:48px}.hero-role{font-size:16px}.hero-description{font-size:13px}.eyebrow{font-size:10px}.header{gap:18px}.profile-summary dl{grid-template-columns:1fr;gap:14px}.profile-summary dl>div+div{border-top:1px solid var(--line);padding-top:14px}.cv-entry{grid-template-columns:1fr;gap:10px}.cv-entry+.cv-entry{margin-top:24px;padding-top:24px}.entry-location{display:inline;margin-left:12px;margin-top:0}.entry-date{display:flex;align-items:center;flex-wrap:wrap}.date{font-size:10px}.skills-grid{grid-template-columns:1fr;gap:25px}.section-intro{font-size:13px}.languages{grid-template-columns:1fr 1fr;gap:20px}.languages>div:last-child{grid-column:1/-1}.email-link{font-size:19px}.footer{font-size:10px;gap:14px}.back-top{width:26px;height:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Language selection remains visible outside the mobile menu. */
.language-switch{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:var(--radius);padding:3px;flex-shrink:0}.language-switch a{display:block;padding:4px 7px;font:11px/1.5 var(--mono);color:var(--muted);border-radius:var(--radius)}.language-switch a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.language-switch a:hover{color:var(--text)}.header{gap:20px}.header nav{gap:24px}.eyebrow{line-height:1.7}
@media(max-width:1050px){.header{gap:14px}.header nav{gap:17px;font-size:12px}}
@media(min-width:701px) and (max-width:900px){.header{position:relative}.header nav{display:none;position:absolute;top:78px;left:0;right:0;z-index:10;flex-direction:column;gap:0;background:var(--panel);border:1px solid var(--line);padding:10px;border-radius:var(--radius)}.header nav.open{display:flex}.header nav a{padding:10px;font-size:14px}.menu-toggle{display:flex;flex-direction:column;gap:6px;background:none;border:0;padding:12px 4px;z-index:11}.menu-toggle span{width:22px;height:1px;background:var(--text)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}}
@media(max-width:440px){.language-switch{margin-left:auto}.header{gap:18px}.hero-actions{gap:18px}.profile-summary dd{overflow-wrap:anywhere}}

.footer .back-top{margin-left:auto}
@media(max-width:900px){.language-switch{margin-left:auto}}

.hero-about{margin-top:24px}.hero-about h2{font-size:22px;font-weight:550;line-height:1.5;color:var(--accent);margin-bottom:8px}.hero-about p{color:var(--text);font-size:16px;line-height:1.9;max-width:680px}
.about-details{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:12px}.about-details>div{display:flex;align-items:baseline;gap:7px}.about-details dt{font:10px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.about-details dd{font:11px/1.6 var(--mono);color:var(--muted)}
@media(max-width:700px){.hero-about{margin-top:20px}.hero-about h2{font-size:20px}.hero-about p{font-size:15px;line-height:1.8}}

/* CV sections from experience onward share a two-column layout. */
.hero h1{letter-spacing:-2px;font-weight:500}.hero-role{font-size:17px}.hero-description{font-size:14px}.brand{font-weight:600}
.cv-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:52px;align-items:start}
.cv-columns>.cv-section{display:block;min-width:0;padding-block:34px 40px}
.cv-columns .section-heading{margin-bottom:25px;gap:12px}.cv-columns .section-heading h2{font-size:19px;letter-spacing:-.5px}
.cv-columns .cv-entry{grid-template-columns:1fr;gap:17px}.cv-columns .entry-date{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}.cv-columns .entry-location{margin:0;font-size:11px}.cv-columns .entry-date .date{font-size:11px}
.cv-columns .skills-grid{grid-template-columns:1fr;gap:22px;margin-top:23px}.cv-columns .section-intro{font-size:13px}.cv-columns .skill-group h3{font-size:13px}.cv-columns .experience-list{font-size:13px;line-height:1.9}
.cv-columns .languages{grid-template-columns:1fr 1fr;gap:22px}.cv-columns .languages>div:last-child{grid-column:1/-1}.cv-columns .email-link{font-size:18px;letter-spacing:-.5px}.cv-columns .contact-row{align-items:start;flex-direction:column;gap:18px}
.thesis-panel{padding:14px 16px;background:var(--panel-raised);border-left:2px solid var(--accent);border-radius:var(--radius)}
.header{position:sticky;top:0;z-index:30;background:var(--bg);}
html{scroll-padding-top:110px}
main:focus-visible,main section:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
#navigation a{position:relative;display:inline-flex;align-items:center;min-height:40px;padding-inline:3px;transition:color .18s ease}
#navigation a[aria-current=location]{color:var(--accent)}
#navigation a[aria-current=location]::after{content:"";position:absolute;right:3px;bottom:2px;left:3px;height:2px;background:var(--accent)}
@media(max-width:900px){.header nav{order:1;top:calc(100% - 1px)}.language-switch{order:2}.menu-toggle{order:3}.header nav a{min-height:44px;padding-inline:10px}.header nav a[aria-current=location]::after{right:10px;left:10px}}
@media(max-width:700px){.header{position:sticky;top:0}.header nav.open{box-shadow:none}}
@media(prefers-reduced-motion:reduce){#navigation a{transition:none}}
@media(max-width:1050px){.cv-columns{column-gap:35px}.cv-columns .section-heading h2{font-size:17px}.header nav{font-size:11px}}
@media(max-width:760px){.cv-columns{grid-template-columns:1fr}.cv-columns>.cv-section{padding-block:30px}.cv-columns .section-heading h2{font-size:19px}.hero-role{font-size:16px}.hero-description{font-size:13px}}
@media(max-width:440px){.hero h1{font-size:43px}.eyebrow{font-size:9px;letter-spacing:1px}.hero-actions{gap:18px}.text-link{font-size:11px}.cv-columns .email-link{font-size:16px}.cv-columns .section-heading h2{font-size:17px}}
#work:focus-visible{outline:none}#work:focus-visible .section-heading h2{outline:2px solid var(--line-strong);outline-offset:5px;border-radius:var(--radius)}
.button,.copy-button,.menu-toggle,.back-top{transition:transform .12s ease,background-color .18s ease,color .18s ease,border-color .18s ease}
.button:active,.copy-button:active,.menu-toggle:active,.back-top:active{transform:translateY(1px)}
.text-link,.email-link,.brand{transition:color .18s ease}
.language-switch a,.skill-list span{transition:color .18s ease,background-color .18s ease,border-color .18s ease}
.skill-list span:hover{color:var(--text);border-color:var(--line-strong);background:var(--panel-hover)}
.back-top:hover{color:var(--text);border-color:var(--accent);background:var(--accent-soft)}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .42s ease,transform .42s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){#navigation a,.button,.copy-button,.menu-toggle,.back-top,.text-link,.email-link,.brand,.language-switch a,.skill-list span,.reveal{transition:none}.reveal{opacity:1;transform:none}.terminal-cursor{animation:none}}

.profile-summary h2:before{content:"> ";color:var(--accent)}
.terminal-cursor{display:inline-block;margin-left:.12em;color:var(--accent);font-size:.52em;line-height:1;vertical-align:.08em;animation:terminal-cursor-blink 1.05s steps(2,start) infinite}
@keyframes terminal-cursor-blink{to{opacity:0}}

.section-heading h2:before,.cv-entry h3:before,.skill-group h3:before{content:'> ';color:var(--accent);font-weight:400}
.hero-role:before{content:'$ ';color:var(--accent);font-weight:400}
.eyebrow,.section-number,.profile-summary dt,.date,.entry-location,.thesis span,.placement-duration,.footer{letter-spacing:.08em;text-transform:uppercase}

.hero-about h2:before{content:'> ';color:var(--accent);font-weight:400}


#navigation{gap:8px}
#navigation a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 8px;border:1px solid var(--line);color:var(--muted);line-height:1.4;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
#navigation a:hover,#navigation a[aria-current=location]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
#navigation a::after{content:none}
@media(max-width:900px){#navigation{gap:5px}#navigation a{justify-content:flex-start;min-height:44px;padding:10px 12px}}
@media(prefers-reduced-motion:reduce){#navigation a{transition:none}}


#navigation a[aria-current=location]::after{content:none}


.eyebrow,.section-number,.hero-role:before,.terminal-cursor,.brand span,.text-link span,.email-link span,.profile-summary h2:before,.section-heading h2:before,.hero-about h2:before,.cv-entry h3:before,.skill-group h3:before,.thesis span,#navigation a[aria-current=location]{text-shadow:0 0 5px var(--accent-glow)}

.profile-summary,.thesis-panel,.skill-group{border-radius:0;box-shadow:none}
.profile-summary{padding:0 14px 12px;border:1px solid var(--line);border-top-color:var(--accent);background:var(--panel)}
.profile-summary h2{display:flex;align-items:center;gap:7px;margin:0 -14px 10px;padding:6px 8px;background:var(--panel-raised);border:0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}
.profile-summary dl>div+div{position:relative;margin-top:10px;padding-top:0;border-top:0}
.skill-group{padding:10px 11px;border:1px solid var(--line);background:var(--panel)}
.skill-group h3{display:flex;align-items:center;gap:6px;margin:-10px -11px 9px;padding:5px 7px;border:0;border-bottom:1px solid var(--line);background:var(--panel-raised);line-height:1.5}
.thesis-panel{padding:0 12px 10px;border:1px solid var(--line);border-left:2px solid var(--accent);background:var(--panel)}
.thesis-panel>span{display:flex;align-items:center;gap:7px;margin:0 -12px 8px;padding:5px 8px;background:var(--panel-raised);border:0;border-bottom:1px solid var(--line);line-height:1.5}
@media(max-width:700px){.profile-summary{padding:0 12px 12px}.profile-summary h2{margin-inline:-12px}}
@media(max-width:440px){.profile-summary dl>div+div{border-top:0;padding-top:0}}

/* Keep the terminal intro effect on its decorative label so essential copy is immediate. */
.hero .eyebrow{clip-path:inset(0 100% 0 0);animation:hero-terminal-reveal .72s steps(26,end) both}
@keyframes hero-terminal-reveal{to{clip-path:inset(0 0 0 0)}}
.profile-summary,.thesis-panel,.skill-group{transition:border-color .18s ease,background-color .18s ease}
.skill-group h3{transition:border-color .18s ease,color .18s ease}
.skill-list span{transition:color .16s ease,border-color .16s ease,background-color .16s ease}
.text-link,.email-link,.copy-button,.back-top,.menu-toggle span{transition:color .16s ease,border-color .16s ease,background-color .16s ease,transform .12s ease}
.skill-list span:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.text-link:hover{color:var(--accent)}
.button:active,.copy-button:active,.back-top:active{transform:translateY(1px)}
.menu-toggle:hover span{background:var(--accent)}
.profile-summary:hover,.thesis-panel:hover,.skill-group:hover{border-color:var(--accent)}
.skill-group:hover h3{border-bottom-color:var(--accent);color:var(--accent)}
.copy-status:not(:empty){animation:terminal-response .18s ease-out}
@keyframes terminal-response{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero .eyebrow{animation:none;clip-path:none}.terminal-cursor{animation:none;opacity:1}.profile-summary,.thesis-panel,.skill-group,.skill-group h3,.skill-list span,.text-link,.email-link,.copy-button,.back-top,.menu-toggle span{transition:none}.copy-status:not(:empty){animation:none}}

/* Career interests follow the introductory profile. */
.career-section:focus-visible{outline:none}.career-section:focus-visible .section-heading h2{outline:2px solid var(--line-strong);outline-offset:5px}
.career-window{min-width:0;border:1px solid var(--line);background:var(--panel)}
.terminal-command{padding:8px 14px;border-bottom:1px solid var(--line);background:var(--panel-raised);color:var(--accent);font:12px/1.6 var(--mono);overflow-wrap:anywhere;text-shadow:0 0 5px var(--accent-glow)}
.career-window-body{padding:18px}
.career-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:14px;margin-top:18px}
.career-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--bg);transition:border-color .18s ease,background-color .18s ease}
.career-card-heading{display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;align-items:start;min-height:58px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--panel-raised);transition:border-color .18s ease}
.career-card-number{padding-top:2px;color:var(--accent);font:11px/1.5 var(--mono);text-shadow:0 0 5px var(--accent-glow)}
.career-card h3{font-size:14px;font-weight:550;line-height:1.5;color:var(--text)}
.career-card>p{padding:14px 14px 0;color:var(--muted);font-size:13px;line-height:1.75}
.career-tags{display:flex;flex-wrap:wrap;gap:7px;margin:auto 0 0;padding:17px 14px 14px;list-style:none}
.career-tags li{padding:3px 7px;border:1px solid var(--line);color:var(--muted);font:11px/1.5 var(--mono)}
.career-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.career-card:hover .career-card-heading{border-bottom-color:var(--accent)}
@media(max-width:640px){.career-grid{grid-template-columns:1fr;grid-auto-rows:auto}.career-window-body{padding:13px}.career-card-heading{min-height:0}.career-card>p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.career-card,.career-card-heading{transition:none}}

/* Fixed signal texture stays behind the interface so type and cards remain sharp. */
body{isolation:isolate}
main,.footer{position:relative;z-index:1}
.signal-field{position:fixed;inset:0;z-index:0;overflow:hidden;contain:paint;pointer-events:none;background:var(--bg)}
.signal-field>span{position:absolute;inset:0;pointer-events:none}
.signal-field__noise{background-image:radial-gradient(rgba(255,64,64,.34) .45px,transparent .8px);background-size:7px 7px;opacity:.12}
.signal-field__scanlines{background:repeating-linear-gradient(to bottom,transparent 0 3px,rgba(255,64,64,.045) 3px 4px);opacity:.6}
.signal-field__data::before,.signal-field__data::after{content:"";position:absolute;top:7%;bottom:6%;width:18px;background:repeating-linear-gradient(to bottom,transparent 0 17px,rgba(255,64,64,.2) 17px 18px,transparent 18px 43px,rgba(255,64,64,.1) 43px 45px,transparent 45px 79px);opacity:.35}
.signal-field__data::before{left:8%}
.signal-field__data::after{right:8%;top:16%;bottom:12%;width:12px;opacity:.23;background-size:100% 107px}
.signal-field__tear::before,.signal-field__tear::after{content:"";position:absolute;left:-3%;width:106%;height:2px;opacity:0;background:linear-gradient(90deg,transparent 3%,rgba(255,64,64,.4) 11%,transparent 31%,transparent 55%,rgba(255,64,64,.5) 69%,transparent 87%);box-shadow:0 5px 0 rgba(255,64,64,.09),0 -4px 0 rgba(255,64,64,.05);animation:signal-tear 23s steps(1,end) infinite}
.signal-field__tear::before{top:27%}
.signal-field__tear::after{top:71%;animation-duration:31s;animation-delay:-13s}
.signal-field__fragments{opacity:0;background:
  linear-gradient(90deg,rgba(255,64,64,.31),transparent) 4% 19% / 130px 2px no-repeat,
  linear-gradient(90deg,transparent,rgba(255,64,64,.24),transparent) 84% 33% / 160px 1px no-repeat,
  linear-gradient(90deg,rgba(255,64,64,.24),transparent) 12% 65% / 95px 3px no-repeat,
  linear-gradient(90deg,transparent,rgba(255,64,64,.32)) 91% 83% / 115px 2px no-repeat;
  animation:signal-fragments 37s steps(1,end) infinite}
@keyframes signal-tear{
  0%,12.9%,14.2%,47.9%,49.1%,76.9%,78%,100%{opacity:0;transform:translateX(0)}
  13%,13.5%,48%,48.4%,77%,77.5%{opacity:.48;transform:translateX(6px)}
  13.6%,14.1%,48.5%,49%,77.6%,77.9%{opacity:.2;transform:translateX(-4px)}
}
@keyframes signal-fragments{
  0%,8.9%,10%,38.9%,40%,81.9%,83%,100%{opacity:0}
  9%,9.5%,39%,39.5%,82%,82.5%{opacity:.5}
  9.6%,9.9%,39.6%,39.9%,82.6%,82.9%{opacity:.18}
}
@media(max-width:700px){.signal-field__noise{opacity:.08}.signal-field__data::after,.signal-field__tear::after,.signal-field__fragments{display:none}}
@media(prefers-reduced-motion:reduce){.signal-field__tear,.signal-field__fragments{display:none}.signal-field__noise{opacity:.08}}

/* 2026 refinement: a text-led CV with restrained terminal detail. */
:root{--bg:#080808;--panel:#141416;--panel-raised:#1a1a1c;--text:#f0f0f0;--muted:#b7b7b9;--dim:#99999d;--accent:#ff4040;--accent-hover:#ff6565;--accent-soft:#221011;--line:#353538;--line-strong:#66666a}
html{scroll-padding-top:96px;scrollbar-color:#555 #080808}
body{font-size:15px;line-height:1.7}
a,button{touch-action:manipulation}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
main:focus-visible,main section:focus-visible,.hero-about:focus-visible{outline:none}
#work:focus-visible .section-heading h2,.career-section:focus-visible .section-heading h2{outline:none}
.wrap{width:min(1180px,calc(100% - 96px))}

.header{height:76px;gap:28px;border-bottom-color:#29292b;background:rgba(8,8,8,.97)}
.brand{flex:none;font-size:18px;font-weight:650;letter-spacing:-.05em;white-space:nowrap}
.brand:hover{color:var(--text)}
.brand span{text-shadow:none}
#navigation{gap:3px;margin-left:auto}
#navigation a{min-height:44px;padding:10px 8px;border:0;background:none;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.02em;text-transform:none}
#navigation a:hover,#navigation a[aria-current=location]{color:var(--text);border:0;background:none}
#navigation a[aria-current=location]::before{content:'>';margin-right:5px;color:var(--accent)}
.language-switch{gap:0;margin-left:4px;padding:2px;border-color:var(--line)}
.language-switch a{min-width:35px;min-height:38px;display:grid;place-items:center;padding:5px;font-size:11px}
.language-switch a[aria-current=page]{background:var(--accent);color:var(--bg);font-weight:700}
.language-switch a:hover{color:var(--accent)}
.language-switch a[aria-current=page]:hover{color:var(--bg)}

.hero{grid-template-columns:minmax(0,1.68fr) minmax(245px,.72fr);gap:clamp(38px,6vw,92px);padding-block:94px 98px}
.hero h1{font-size:clamp(58px,6.3vw,88px);font-weight:650;letter-spacing:-.045em;line-height:1.04;margin:0 0 20px;text-wrap:balance;color:#f5f5f5}
.hero-role{font-size:clamp(15px,1.5vw,18px);line-height:1.55;font-weight:500;color:var(--text);margin:0 0 46px}
.hero-role:before{content:none}
.hero-about{scroll-margin-top:94px;margin:0}
.hero-about h2{font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:15px}
.hero-about h2:before{content:'> ';color:var(--accent)}
.hero-about p{max-width:66ch;font-size:16px;line-height:1.85;color:#d4d4d6}
.about-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.about-details>div{display:block;min-width:0}
.about-details dt{font-size:10px;line-height:1.5;color:var(--dim);margin-bottom:6px}
.about-details dd{font-size:12px;line-height:1.55;color:var(--text)}
.hero-actions{margin-top:35px;gap:28px}
.button{min-height:48px;padding:11px 17px;gap:22px;font-size:12px}
.text-link{min-height:44px;display:inline-flex;align-items:center;font-size:12px;color:var(--text);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:5px}
.text-link:hover{text-decoration-color:var(--accent)}
.text-link span{margin-left:9px}
.profile-summary{align-self:start;margin-top:100px;padding:0;border:0;background:none}
.profile-summary:hover{border:0}
.profile-summary h2{display:block;margin:0 0 20px;padding:0 0 10px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.profile-summary h2:before{content:none}
.profile-summary dl>div+div{margin-top:20px;padding-top:17px;border-top:1px solid #29292c}
.profile-summary dt{font-size:10px;letter-spacing:.06em;color:var(--dim)}
.profile-summary dd{font-size:13px;line-height:1.55;color:var(--text)}
.profile-summary small{font-size:11px;line-height:1.6;color:var(--muted)}

.cv-section{grid-template-columns:220px minmax(0,1fr);gap:64px;padding-block:58px 62px}
.section-heading{display:block}
.section-number{display:block;font-size:11px;line-height:1.5;letter-spacing:.06em;margin-bottom:8px;text-shadow:none}
.section-heading h2,.cv-columns .section-heading h2{font-size:clamp(21px,2vw,26px);line-height:1.28;letter-spacing:-.03em;font-weight:600;color:var(--text);text-wrap:balance}
.section-heading h2:before{content:none}
.section-content{min-width:0}
.section-intro{font-size:14px;line-height:1.75;max-width:68ch;color:var(--muted)}
.cv-entry{grid-template-columns:130px minmax(0,1fr);gap:28px}
.cv-entry+.cv-entry{margin-top:29px;padding-top:29px}
.cv-entry h3{font-size:18px;font-weight:600;letter-spacing:-.025em;margin-bottom:5px}
.cv-entry h3:before,.skill-group h3:before{content:none}
.cv-entry>div>p,.experience-list{font-size:14px;line-height:1.8}
.date,.entry-location,.placement-duration{font-size:11px;color:var(--dim)}
.cv-entry .entry-subtitle{color:var(--text)}
.thesis-panel{margin-top:17px;padding:15px 17px;border:1px solid var(--line);border-left:1px solid var(--accent);background:var(--panel)}
.thesis-panel:hover{border-color:var(--line);border-left-color:var(--accent)}
.thesis-panel>span{display:block;margin:0 0 7px;padding:0;border:0;background:none;font-size:10px;line-height:1.5}

.career-window{border:0;background:none}
.terminal-command{padding:0 0 10px;border:0;border-bottom:1px solid var(--line);background:none;font-size:11px;line-height:1.6;letter-spacing:0;text-shadow:none}
.career-window-body{padding:16px 0 0}
.career-grid{gap:12px;margin-top:19px}
.career-card{padding:20px 20px 18px;background:rgba(20,20,22,.91);border-color:var(--line)}
.career-card-heading{display:flex;min-height:0;gap:13px;margin:0 0 10px;padding:0;border:0;background:none}
.career-card h3{font-size:14px;line-height:1.5;font-weight:600}
.career-card-number{font-size:11px;line-height:1.9;text-shadow:none}
.career-card>p{padding:0;font-size:13px;line-height:1.75;color:#c7c7c9}
.career-tags{gap:6px 13px;padding:16px 0 0}
.career-tags li{padding:0;border:0;color:var(--dim);font-size:10px}
.career-tags li+li:before{content:'·';margin-right:12px;color:var(--accent)}
.career-card:hover{background:#1a1516;border-color:#774040}
.career-card:hover .career-card-heading{border:0}

.cv-columns{column-gap:62px}
.cv-columns>.cv-section{padding-block:49px 55px}
.cv-columns .section-heading{margin-bottom:25px}
.cv-columns .cv-entry{gap:14px}
.cv-columns .section-intro{font-size:14px}
.cv-columns .experience-list{font-size:14px;line-height:1.75}
.experience-list li{margin-top:10px}
.cv-columns .skills-grid{gap:0;margin-top:21px}
.skill-group{padding:18px 0;border:0;border-top:1px solid var(--line);background:none}
.skill-group:hover{border-color:var(--line);background:none}
.skill-group h3{display:block;margin:0 0 12px;padding:0;border:0;background:none;font-size:13px;font-weight:600;color:var(--text)}
.skill-group:hover h3{border:0;color:var(--text)}
.skill-list{gap:7px}
.skill-list span{padding:5px 8px;border:0;background:#1b1b1d;font-size:11px;color:#c5c5c7}
.skill-list span:hover{border:0;background:var(--accent-soft);color:var(--accent)}
.languages dt{font-size:13px}
.languages dd,.driving{font-size:12px;line-height:1.65}
.cv-columns .email-link{font-size:clamp(15px,1.5vw,19px);line-height:1.5;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:5px}
.email-link:hover{text-decoration-color:var(--accent)}
.copy-button{min-height:44px;padding:9px 13px;background:transparent;font-size:11px}
.footer{min-height:85px;font-size:11px}
.back-top{width:44px;height:44px}

.signal-field__noise{opacity:.055}
.signal-field__scanlines{opacity:.33}
.signal-field__data::before,.signal-field__data::after{opacity:.12}
.signal-field__tear::before,.signal-field__tear::after{animation-duration:41s;opacity:0}
.signal-field__tear::after{animation-duration:53s}
.signal-field__fragments{animation-duration:61s}
.eyebrow,.section-number,.hero-role:before,.brand span,.text-link span,.email-link span,.profile-summary h2:before,.section-heading h2:before,.hero-about h2:before,.cv-entry h3:before,.skill-group h3:before,.thesis span,#navigation a[aria-current=location]{text-shadow:none}

@media(max-width:1100px){
  .wrap{width:calc(100% - 64px)}
  .header{gap:18px}
  #navigation{gap:1px}
  #navigation a{padding-inline:6px;font-size:10px}
  .hero{gap:42px}
  .cv-section{grid-template-columns:185px minmax(0,1fr);gap:38px}
  .cv-columns{column-gap:38px}
}
@media(max-width:900px){
  .header{height:72px}
  .header nav{top:calc(100% - 1px);order:3}
  #navigation{margin-left:0;padding:10px 14px;background:#141416;border-color:var(--line)}
  #navigation a{justify-content:flex-start;min-height:46px;padding:10px 12px;font-size:13px}
  #navigation a[aria-current=location]{background:var(--accent-soft)}
  .language-switch{order:1;margin-left:auto}
  .menu-toggle{order:2;width:44px;height:44px;padding:10px;align-items:center;justify-content:center}
  .menu-toggle span{width:23px;height:2px}
  .hero{grid-template-columns:1fr;gap:40px;padding-block:68px 65px}
  .hero h1{font-size:clamp(56px,9vw,78px)}
  .hero-role{margin-bottom:38px}
  .profile-summary{margin-top:0;max-width:680px}
  .profile-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .profile-summary dl>div+div{margin:0;padding:0;border:0}
  .cv-section{grid-template-columns:1fr;gap:26px}
  .section-heading{display:flex;align-items:baseline;gap:16px}
  .section-number{margin:0}
}
@media(max-width:760px){
  .cv-columns{grid-template-columns:1fr}
  .cv-columns>.cv-section{padding-block:46px 50px}
  .cv-columns .section-heading{margin-bottom:24px}
  .cv-columns .skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
}
@media(max-width:600px){
  .wrap{width:calc(100% - 40px)}
  .brand{font-size:16px}
  .hero{padding-block:54px 58px;gap:40px}
  .hero h1{font-size:clamp(46px,11.8vw,68px);letter-spacing:-.045em;margin-bottom:18px}
  .hero-role{font-size:15px;margin-bottom:36px}
  .hero-about p{font-size:14px;line-height:1.8}
  .about-details{gap:14px}
  .about-details dd{font-size:11px}
  .hero-actions{gap:16px;margin-top:29px}
  .profile-summary dl{grid-template-columns:1fr 1fr;gap:18px}
  .profile-summary dl>div+div{border:0}
  .cv-section{padding-block:46px 50px;gap:23px}
  .career-grid{grid-template-columns:1fr;grid-auto-rows:auto}
  .career-card{padding:18px}
  .career-card>p{font-size:13px}
  .cv-entry{grid-template-columns:1fr;gap:9px}
  .cv-entry h3{font-size:17px}
  .cv-entry>div>p,.cv-columns .experience-list{font-size:13px}
  .cv-columns .skills-grid{grid-template-columns:1fr}
  .languages{grid-template-columns:1fr 1fr}
  .email-link{font-size:17px}
}
@media(max-width:390px){
  .wrap{width:calc(100% - 32px)}
  .header{gap:6px}
  .brand{font-size:14px}
  .language-switch a{min-width:31px}
  .hero h1{font-size:43px}
  .about-details{grid-template-columns:1fr 1fr}
  .profile-summary dl{grid-template-columns:1fr}
  .profile-summary dl>div+div{padding-top:12px;border-top:1px solid var(--line)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .signal-field__tear,.signal-field__fragments{display:none}
}

/* Terminal atmosphere restoration: layered records without changing the CV layout. */
.signal-field__noise{opacity:.095}
.signal-field__scanlines{opacity:.46}
.signal-field__data::before{opacity:.18}
.signal-field__data::after{opacity:.14}

.profile-summary{margin-top:82px;padding:0 18px 18px;border:1px solid var(--line);background:rgba(20,20,22,.96)}
.profile-summary:hover{border-color:#555559}
.profile-summary h2{display:flex;align-items:center;gap:10px;margin:0 -18px 17px;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:var(--panel-raised);line-height:1.5}
.profile-summary h2::before{content:'>';color:var(--accent);font-size:11px;font-weight:400}
.profile-summary h2::after{content:'';width:6px;height:6px;flex:none;margin-left:auto;background:var(--accent);box-shadow:0 0 5px rgba(255,64,64,.22);animation:profile-signal 3.6s steps(1,end) infinite}
@keyframes profile-signal{0%,76%,90%,100%{opacity:.8}77%,84%{opacity:.2}85%,89%{opacity:1}}
.profile-summary dl>div+div{margin-top:15px;padding-top:14px;border-top:1px solid #313134}

.about-details{gap:10px;margin-top:25px;padding-top:0;border:0}
.about-details>div{min-height:75px;padding:12px 13px;border:1px solid var(--line);background:rgba(20,20,22,.88)}
.about-details dt{margin-bottom:7px}
.about-details dd{font-size:12px}

.section-number{width:30px;height:28px;display:grid;place-items:center;margin-bottom:12px;border:1px solid #5b3132;background:#1b1011;font-size:10px}
.career-window{border:1px solid var(--line);background:rgba(15,15,17,.93)}
.terminal-command{padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel-raised)}
.career-window-body{padding:17px}
.career-grid{gap:10px}
.career-card{border-color:#3d3d40;background:#141416}
.career-card:hover{border-color:#814444}

.cv-entry .entry-date{align-self:start;width:fit-content;padding:8px 10px;border:1px solid var(--line);background:var(--panel)}
.cv-entry>.date{align-self:start;width:fit-content;padding:8px 10px;border:1px solid var(--line);background:var(--panel)}
.cv-columns .entry-date{gap:8px 15px}
.cv-columns .skills-grid{gap:10px;margin-top:22px}
.skill-group{padding:0 13px 13px;border:1px solid var(--line);background:var(--panel)}
.skill-group:hover{border-color:#6a3a3b;background:var(--panel)}
.skill-group h3{margin:0 -13px 12px;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:var(--panel-raised);font-size:12px;line-height:1.5}
.skill-group:hover h3{border-bottom:1px solid #6a3a3b;color:var(--text)}
.skill-list span{border:1px solid #343438;background:#1b1b1d}
.skill-list span:hover{border:1px solid #794344}
.languages{gap:10px}
.languages>div{min-height:80px;padding:12px 13px;border:1px solid var(--line);background:var(--panel)}
.languages dt{margin-bottom:4px}
.driving{width:fit-content;margin-top:14px;padding:6px 9px;border:1px solid var(--line);background:var(--panel)}
.contact-row{padding:15px;border:1px solid var(--line);background:var(--panel)}
.cv-columns .contact-row{gap:14px}
.copy-button{background:var(--panel-raised)}

@media(max-width:900px){
  .profile-summary{margin-top:0}
  .profile-summary dl>div+div{margin:0;padding:0;border:0}
  .section-number{margin:0}
}
@media(max-width:600px){
  .about-details{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about-details>div:last-child{grid-column:1/-1;min-height:0}
  .profile-summary{padding:0 14px 15px}
  .profile-summary h2{margin-inline:-14px}
  .career-window-body{padding:13px}
  .contact-row{padding:12px}
}
@media(max-width:390px){
  .about-details>div{min-height:0}
  .profile-summary dl>div+div{padding-top:12px;border-top:1px solid var(--line)}
}
@media(prefers-reduced-motion:reduce){
  .profile-summary h2::after{animation:none;opacity:.8;box-shadow:none}
  .signal-field__noise{opacity:.07}
  .signal-field__scanlines{opacity:.36}
}

/* The hero cursor is decorative; its block never affects the heading text. */
.hero h1::after{
  content:'';
  display:inline-block;
  width:.3em;
  height:.72em;
  margin-left:.12em;
  vertical-align:-.04em;
  background:var(--accent);
  animation:hero-block-blink 1s steps(1,end) infinite;
}
@keyframes hero-block-blink{
  0%,49%{opacity:1}
  50%,100%{opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .hero h1::after{animation:none;opacity:.8}
}
