:root{--bg:#f8f4eb;--bg-raised:#faf8f2;--ink:#1c1917;--ink-faint:#6b645c;--accent:#9a4522;--border:#c8bca8;--border-faint:#e2ddd3;--font:'Space Mono','Courier New',Courier,monospace;--ease:0.2s ease}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.75;overflow-x:hidden}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");background-size:200px 200px}a{color:inherit}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:1000;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(0,0,0,.016) 3px,rgba(0,0,0,.016) 4px)}.container{max-width:820px;margin:0 auto;padding:3rem 1.5rem 5rem}.site-header{margin-bottom:4rem}.header-frame{position:relative;border:1px solid var(--border);padding:2rem 2.25rem;margin-bottom:1.25rem;background:var(--bg-raised)}.fc{position:absolute;color:var(--accent);font-family:var(--font);font-size:.8rem;font-weight:700;line-height:1}.tl{top:-.45rem;left:-.1rem}.tr{top:-.45rem;right:-.1rem}.bl{bottom:-.5rem;left:-.1rem}.br{bottom:-.5rem;right:-.1rem}.domain-label{font-size:.72rem;color:var(--ink-faint);letter-spacing:.08em;margin-bottom:.65rem}.site-title{font-size:clamp(1.45rem, 4vw, 2.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-bottom:.7rem}.site-tagline{font-size:.875rem;color:var(--ink-faint)}.prompt{color:var(--accent);font-weight:700}.cursor{color:var(--accent);font-size:.875rem;animation:blink 1s step-end infinite}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}.site-nav{display:flex;flex-wrap:wrap;gap:.25rem .85rem}.site-nav a{font-size:.8rem;color:var(--ink-faint);text-decoration:none;transition:color var(--ease)}.site-nav a:focus-visible,.site-nav a:hover{color:var(--accent);outline:0}.section{margin-bottom:3.5rem;padding-bottom:3.5rem;border-bottom:1px dashed var(--border-faint)}.section:last-of-type{border-bottom:none}.section.js-reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}.section.js-reveal.is-visible{opacity:1;transform:none}.section-heading{display:flex;align-items:center;gap:.65rem;margin-bottom:1.5rem;overflow:hidden}.sh-mark{color:var(--accent);font-weight:700;flex-shrink:0}.section-heading h2{font-size:.875rem;font-weight:700;text-transform:lowercase;letter-spacing:.06em;flex-shrink:0}.sh-rule{color:var(--border);overflow:hidden;white-space:nowrap;flex:1}.section-body p{font-size:.875rem;color:var(--ink-faint);max-width:62ch;margin-bottom:.5rem}.project-card{border:1px solid var(--border-faint);background:var(--bg-raised);padding:1.25rem;margin-bottom:.875rem;transition:border-color var(--ease)}.project-card:hover{border-color:var(--accent)}.project-card--placeholder{border-style:dashed;opacity:.55}.project-card--placeholder:hover{border-color:var(--border-faint)}.project-card-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}.project-card-header a{text-decoration:none;color:inherit}.project-card-header a:hover .project-name{color:var(--accent)}.project-arrow{color:var(--accent);font-size:.65rem}.project-arrow.dim{color:var(--border)}.project-name{font-size:.9rem;font-weight:700}.project-badge{margin-left:auto;font-size:.7rem;color:var(--accent);border:1px solid var(--border);padding:.05rem .4rem}.project-badge--progress{color:var(--ink-faint);border-color:var(--ink-faint)}.project-desc{font-size:.825rem;color:var(--ink-faint);margin-bottom:.75rem}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-size:.72rem;color:var(--ink-faint);border:1px solid var(--border-faint);padding:.08rem .45rem}.experience-card{border:1px solid var(--border-faint);background:var(--bg-raised);padding:1.25rem;margin-bottom:1.5rem}.experience-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px dashed var(--border-faint)}.experience-company{font-size:.95rem;font-weight:700;color:var(--ink)}.experience-duration{font-size:.72rem;color:var(--ink-faint);white-space:nowrap}.experience-role{padding:.75rem 0}.experience-role:not(:last-child){border-bottom:1px dashed var(--border-faint);margin-bottom:.75rem}.role-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.role-title{font-size:.875rem;font-weight:700;color:var(--ink)}.role-type{font-size:.7rem;color:var(--accent);border:1px solid var(--border);padding:.05rem .4rem;white-space:nowrap}.role-period{font-size:.75rem;color:var(--ink-faint);margin-bottom:.25rem}.role-location{font-size:.75rem;color:var(--ink-faint);margin-bottom:.5rem}.role-desc{font-size:.825rem;color:var(--ink-faint);margin-bottom:.75rem;max-width:62ch}.role-skills{display:flex;flex-wrap:wrap;gap:.4rem}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem 2.5rem}.skill-group-title{font-size:.78rem;font-weight:700;color:var(--accent);margin-bottom:.6rem}.skill-group ul{list-style:none}.skill-group ul li{font-size:.825rem;color:var(--ink-faint);padding:.2rem 0 .2rem 1.1rem;position:relative}.skill-group ul li::before{content:'-';position:absolute;left:0;color:var(--border)}.contact-list{display:flex;flex-direction:column;gap:.75rem}.contact-item{display:flex;align-items:center;gap:.65rem;text-decoration:none;font-size:.825rem;padding:.875rem 1rem;border:1px solid var(--border-faint);background:var(--bg-raised);transition:border-color var(--ease),color var(--ease)}.contact-item:focus-visible,.contact-item:hover{border-color:var(--accent);color:var(--accent);outline:0}.ci-prefix{font-weight:700;color:var(--accent);min-width:3rem}.ci-label{font-weight:700}.ci-sep{color:var(--border)}.ci-value{color:var(--ink-faint);font-size:.78rem;margin-left:auto}.site-footer{padding-top:2rem;border-top:1px solid var(--border-faint);text-align:center;font-size:.78rem;color:var(--ink-faint)}.dot{margin:0 .5rem;color:var(--border)}@media (max-width:560px){.container{padding:2rem 1rem 3.5rem}.header-frame{padding:1.5rem}.sh-rule{display:none}.ci-value{display:none}.skills-grid{grid-template-columns:1fr}.experience-header,.role-header{flex-direction:column;align-items:flex-start;gap:.5rem}.experience-duration,.role-type{align-self:flex-start}}