:root{--paper:#efede6;--paper-raised:#f6f4ee;--ink:#17181c;--ink-soft:#5a5c61;--ink-faint:#8a8c90;--rule:#d7d2c4;--rule-strong:#bfb9a9;--red:#8c2f22;--red-soft:#a8493b;--maxw:1120px;--radius:2px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:82px}body{background:var(--paper);background-image:repeating-linear-gradient(transparent,transparent 42px,rgba(23,24,28,.028) 43px);color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:var(--red);color:var(--paper)}a{color:inherit}button{font:inherit}.brand,h1,h2,h3{font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;text-transform:uppercase;letter-spacing:.015em}.mono{font-family:Courier New,monospace;letter-spacing:.02em}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(239,237,230,.94);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border-bottom:1px solid var(--rule)}.nav-inner{justify-content:space-between;max-width:var(--maxw);margin:0 auto;padding:18px 40px}.brand,.nav-inner{display:flex;align-items:center}.brand{gap:10px;font-size:20px;font-weight:800;text-decoration:none}.brand-mark{width:20px;height:20px;border:1.5px solid var(--ink);display:grid;place-items:center;font-family:Courier New,monospace;font-size:9px}nav ul{display:flex;list-style:none;gap:34px}nav a{font-family:Courier New,monospace;font-size:12.5px;color:var(--ink-soft);text-decoration:none;text-transform:lowercase;position:relative;padding-bottom:3px}nav a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--red);transition:width .2s ease}nav a:hover:after{width:100%}nav a:hover{color:var(--ink)}.nav-toggle{display:none;width:36px;height:36px;border:1px solid var(--rule-strong);background:transparent;cursor:pointer;position:relative}.nav-toggle span,.nav-toggle span:after,.nav-toggle span:before{content:"";position:absolute;left:9px;right:9px;height:1.5px;background:var(--ink)}.nav-toggle span{top:17px}.nav-toggle span:before{top:-6px}.nav-toggle span:after{top:6px}.hero{padding:64px 0 56px}.ledger-row{display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-family:Courier New,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.1em;padding-bottom:14px;margin-bottom:36px;border-bottom:1px solid var(--rule)}.flag{width:9px;height:9px;flex-shrink:0;background:var(--red);transform:rotate(45deg)}.hero h1{max-width:15ch;margin-bottom:30px;font-size:clamp(44px,6.4vw,86px);line-height:.94;font-weight:800}.hero h1 span{color:var(--red)}.hero-body{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:56px;gap:56px;align-items:start}.hero-lede{max-width:52ch;margin-bottom:30px;color:var(--ink-soft);font-size:19px;line-height:1.65}.hero-cta{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--radius);font-family:Courier New,monospace;font-size:13px;text-decoration:none;transition:.15s ease}.btn-primary{color:var(--paper);background:var(--ink);border:1px solid var(--ink)}.btn-primary:hover{background:var(--red);border-color:var(--red)}.btn-ghost{color:var(--ink);background:transparent;border:1px solid var(--rule-strong)}.btn-ghost:hover{border-color:var(--ink)}.index-card{border-top:2px solid var(--ink);padding-top:16px}.index-title{margin-bottom:14px;color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.index-line,.index-title{font-family:Courier New,monospace}.index-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:12px}.index-line:last-child{border-bottom:0}.index-line .k{color:var(--ink-soft)}.index-line .v{text-align:right}section{padding:76px 0}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:44px;padding-bottom:14px;border-bottom:2px solid var(--ink)}.section-head h2{font-size:34px;font-weight:800}.section-count{color:var(--ink-faint);font-family:Courier New,monospace;font-size:12px;white-space:nowrap}.entry{display:grid;grid-template-columns:120px 1fr 1fr;grid-gap:32px;gap:32px;position:relative;padding:34px 0;border-top:1px solid var(--rule)}.entry:last-child{border-bottom:1px solid var(--rule)}.entry:before{content:"";position:absolute;left:-40px;top:0;bottom:0;width:3px;background:var(--red);opacity:0;transition:opacity .15s ease}.entry:hover:before{opacity:1}.entry-no{color:var(--ink-faint);font-family:Impact,Haettenschweiler,sans-serif;font-size:15px;padding-top:4px}.entry-no .num{display:block;margin-top:4px;color:var(--ink);font-size:44px;line-height:.9}.entry-main h3{margin-bottom:6px;font-size:24px}.entry-role{margin-bottom:14px;color:var(--red);font-family:Courier New,monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em}.entry-main p{max-width:46ch;margin-bottom:16px;color:var(--ink-soft);font-size:15.5px}.entry-links a{color:var(--ink);font-family:Courier New,monospace;font-size:12.5px;text-decoration:none;border-bottom:1px solid var(--rule-strong);padding-bottom:2px}.entry-links a:hover{border-color:var(--red)}.entry-detail{display:flex;flex-direction:column;gap:10px}.detail-row{display:flex;gap:10px;font-family:Courier New,monospace;font-size:12px}.detail-row .k{min-width:75px;flex-shrink:0;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em}.detail-row .v{color:var(--ink-soft);line-height:1.5}.experience-entry{display:grid;grid-template-columns:180px 1fr;grid-gap:32px;gap:32px;padding:28px 0;border-top:1px solid var(--rule)}.experience-entry:last-child{border-bottom:1px solid var(--rule)}.experience-date{padding-top:5px;color:var(--ink-faint);font-size:11px}.experience-entry h3{margin-bottom:5px;font-size:22px}.resume-bullets{margin:12px 0 0 18px;color:var(--ink-soft);font-size:15px}.resume-bullets li{margin:5px 0}.about-layout{display:grid;grid-template-columns:.9fr 1.4fr;grid-gap:64px;gap:64px}.about-text p{max-width:48ch;margin-bottom:18px;color:var(--ink-soft);font-size:16.5px}.about-text strong{color:var(--ink);font-weight:600}.compact-head{border-bottom:0;padding-bottom:0;margin-bottom:20px}.compact-head h2{font-size:28px}.stack-row{display:grid;grid-template-columns:130px 1fr;grid-gap:20px;gap:20px;align-items:start;padding:15px 0;border-top:1px solid var(--rule)}.stack-row:last-child{border-bottom:1px solid var(--rule)}.stack-label{padding-top:2px;color:var(--ink-faint);font-family:Courier New,monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em}.stack-items{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:5px 10px;color:var(--ink-soft);background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);font-family:Courier New,monospace;font-size:12.5px}.credentials-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.credential-card{padding:24px;background:var(--paper-raised);border:1px solid var(--rule)}.credential-label{display:block;margin-bottom:18px;color:var(--red);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.credential-card h3{margin-bottom:10px;font-size:19px}.credential-card p{color:var(--ink-soft);font-size:14px}.closing{padding:64px 56px;background:var(--ink);color:var(--paper)}.closing-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:8px;padding-bottom:36px;border-bottom:1px solid rgba(239,237,230,.18)}.closing h2{max-width:14ch;margin-bottom:14px;font-size:38px}.closing-top p{max-width:40ch;color:#b9babe;font-size:16px}.stamp{flex-shrink:0;padding:8px 14px;color:var(--red-soft);border:1.5px solid var(--red-soft);font-family:Courier New,monospace;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;transform:rotate(-4deg)}.contact-links{display:flex;flex-direction:column}.contact-link{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid rgba(239,237,230,.14);color:var(--paper);font-family:Courier New,monospace;font-size:14px;text-decoration:none;transition:.15s ease}.contact-link:hover{padding-left:6px}.contact-link .arrow,.contact-link:hover{color:var(--red-soft)}footer{padding:28px 0 40px}.footer-inner{display:flex;justify-content:space-between;align-items:center;padding-top:22px;border-top:1px solid var(--rule);color:var(--ink-faint);font-family:Courier New,monospace;font-size:11.5px}.reveal{animation:reveal .65s ease both}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{animation:none}}@media (max-width:880px){.wrap{padding:0 22px}.nav-inner{padding:16px 22px}.nav-toggle{display:block}nav{position:absolute;top:60px;left:0;right:0;max-height:0;overflow:hidden;background:var(--paper);border-bottom:1px solid transparent;transition:max-height .25s ease}nav.nav-open{max-height:300px;border-bottom-color:var(--rule)}nav ul{flex-direction:column;gap:0}nav li{border-top:1px solid var(--rule)}nav a{display:block;padding:16px 22px}.about-layout,.hero-body{grid-template-columns:1fr;gap:36px}.entry{grid-template-columns:1fr;gap:14px}.entry:before{display:none}.entry-no .num{font-size:32px}.experience-entry{gap:8px}.credentials-grid,.experience-entry{grid-template-columns:1fr}.closing{padding:40px 24px}.closing-top{flex-direction:column;gap:20px}.footer-inner{flex-direction:column;align-items:flex-start;gap:10px}}@media (max-width:560px){body{font-size:16px}.hero{padding-top:42px}.ledger-row{font-size:10px;line-height:1.5}.hero h1{font-size:clamp(42px,14vw,64px)}.hero-lede{font-size:17px}.section-head h2{font-size:29px}.section-count{font-size:10px}.stack-row{grid-template-columns:1fr;gap:10px}.detail-row{flex-direction:column;gap:3px}.detail-row .k{min-width:0}}