:root{--bg: oklch(.165 .004 75);--surface: oklch(.205 .005 75);--surface-2: oklch(.235 .006 78);--text: oklch(.945 .006 85);--muted: oklch(.7 .012 80);--faint: oklch(.55 .01 78);--line: oklch(.3 .006 75);--line-strong: oklch(.4 .008 75);--accent: oklch(.72 .17 48);--accent-text: oklch(.79 .15 55);--space-1: .5rem;--space-2: .75rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 3rem;--space-7: clamp(3.5rem, 8vw, 6rem);--radius: 6px;--container: 70rem;--font-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;--font-mono: "Spline Sans Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--duration-fast: .18s}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html{scroll-behavior:smooth}body{min-height:100vh}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;line-height:1.15;font-weight:700}.shell{width:min(calc(100% - 2.5rem),var(--container));margin-inline:auto}.inline-icon{width:.92rem;height:.92rem;flex:0 0 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;top:0;padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.skip-link:focus-visible{left:var(--space-3);top:var(--space-3);z-index:50;outline:2px solid var(--accent-text);outline-offset:2px}:where(a,button):focus-visible{outline:2px solid var(--accent-text);outline-offset:3px;border-radius:3px}.site-header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}.site-nav{min-height:3.5rem;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.nameplate{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.84rem;letter-spacing:.01em;color:var(--text);font-weight:500}.mark{width:.62rem;height:.62rem;margin-right:.55rem;border-radius:2px;background:var(--accent)}.nav-links{display:flex;align-items:center;gap:var(--space-4);font-family:var(--font-mono);font-size:.82rem}.nav-links a{color:var(--muted);padding-block:.25rem;border-bottom:1px solid transparent;transition:color var(--duration-fast) var(--ease-out-quint),border-color var(--duration-fast) var(--ease-out-quint)}.nav-links a:hover{color:var(--text);border-color:var(--accent)}main{padding-block:clamp(2.5rem,6vw,4.5rem) var(--space-7)}section+section{margin-top:var(--space-7)}.hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;padding-bottom:var(--space-6)}.hero-copy{min-width:0}.kicker{display:block;margin:0 0 var(--space-3);font-family:var(--font-mono);font-size:.82rem;letter-spacing:.04em;color:var(--accent-text)}h1{font-size:clamp(2.6rem,7vw,4.6rem);font-weight:800;font-stretch:125%;line-height:.98;letter-spacing:-.03em;max-width:14ch}.lede{margin:var(--space-4) 0 0;font-size:clamp(1.05rem,2vw,1.3rem);font-weight:500;color:var(--text);max-width:40ch}.bio{margin:var(--space-4) 0 0;max-width:60ch;color:var(--muted)}.cta-row{margin-top:var(--space-5);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.5rem;min-height:2.9rem;padding:0 1.1rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-family:var(--font-sans);font-size:.92rem;font-weight:600;color:var(--text);transition:transform var(--duration-fast) var(--ease-out-quint),border-color var(--duration-fast) var(--ease-out-quint),background-color var(--duration-fast) var(--ease-out-quint),color var(--duration-fast) var(--ease-out-quint)}.btn--primary{border-color:color-mix(in oklab,var(--accent) 60%,var(--line));color:var(--accent-text);background:color-mix(in oklab,var(--accent) 10%,transparent)}.btn--primary:hover{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 18%,transparent);transform:translateY(-1px)}.btn--ghost:hover{border-color:var(--line-strong);background:var(--surface);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.id-block{display:grid;gap:var(--space-4);align-content:start}.id-photo{width:100%;max-width:13.5rem;aspect-ratio:4 / 5;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);filter:grayscale(.18) contrast(1.02)}.spec-dl{display:grid;margin:0}.spec-dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:.6rem 0;border-top:1px solid var(--line)}.spec-dl>div:last-child{border-bottom:1px solid var(--line)}.spec-dl dt{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}.spec-dl dd{margin:0;font-size:.88rem;color:var(--text);text-align:right}.status-dot{display:inline-block;width:.5rem;height:.5rem;margin-right:.45rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}.section-head{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;align-items:baseline;padding-bottom:var(--space-3);margin-bottom:var(--space-5);border-bottom:1px solid var(--line-strong)}.section-index{grid-row:span 2;font-family:var(--font-mono);font-size:.82rem;color:var(--accent-text);padding-top:.3rem}.section-head h2{font-size:clamp(1.5rem,3vw,2.1rem);font-stretch:110%;letter-spacing:-.02em}.section-head p{grid-column:2;margin:0;color:var(--muted);font-size:.95rem}.index-list{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:3.25rem 1fr;gap:0 clamp(1rem,3vw,2.5rem);padding:var(--space-5) clamp(.5rem,2vw,1.25rem);margin-inline:clamp(-.5rem,-2vw,-1.25rem);border-bottom:1px solid var(--line);border-radius:var(--radius);transition:background-color var(--duration-fast) var(--ease-out-quint)}.row:hover{background:var(--surface)}.row-num{font-family:var(--font-mono);font-size:.92rem;color:var(--faint);padding-top:.35rem;transition:color var(--duration-fast) var(--ease-out-quint)}.row:hover .row-num{color:var(--accent-text)}.row-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.row h3{font-size:clamp(1.1rem,1.8vw,1.4rem);font-weight:600;letter-spacing:-.01em}.row-link{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.8rem;color:var(--muted);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out-quint)}.row:hover .row-link,.row-link:hover{color:var(--accent-text)}.row-desc{margin:.7rem 0 0;color:var(--muted);max-width:70ch;font-size:.96rem}.tags{margin:var(--space-3) 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.45rem}.tags li{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:.22rem .5rem;white-space:nowrap}.skill-rows{display:grid}.skill-row{display:grid;grid-template-columns:11rem 1fr;gap:1rem var(--space-5);align-items:start;padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.skill-row:first-child{padding-top:0}.skill-label{font-family:var(--font-mono);font-size:.76rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);padding-top:.4rem}.skill-chips{display:flex;flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.42rem .75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:.86rem;color:var(--text);transition:border-color var(--duration-fast) var(--ease-out-quint),transform var(--duration-fast) var(--ease-out-quint)}.chip:hover{border-color:var(--line-strong);transform:translateY(-1px)}.chip-logo{width:1.05rem;height:1.05rem;color:var(--skill-color, var(--muted))}.contact-rows{list-style:none;margin:0;padding:0}.contact-link{display:grid;grid-template-columns:minmax(8rem,auto) 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) clamp(.5rem,2vw,1.25rem);margin-inline:clamp(-.5rem,-2vw,-1.25rem);border-bottom:1px solid var(--line);border-radius:var(--radius);color:var(--text);transition:background-color var(--duration-fast) var(--ease-out-quint)}.contact-link:hover{background:var(--surface)}.c-label{display:inline-flex;align-items:center;gap:.6rem}.c-label strong{font-size:.94rem;font-weight:600}.c-value{font-family:var(--font-mono);font-size:.85rem;color:var(--muted);text-align:right;overflow-wrap:anywhere;transition:color var(--duration-fast) var(--ease-out-quint)}.contact-link:hover .c-value{color:var(--text)}.c-arrow{width:.85rem;height:.85rem;color:var(--faint);transition:color var(--duration-fast) var(--ease-out-quint),transform var(--duration-fast) var(--ease-out-quint)}.contact-link:hover .c-arrow{color:var(--accent-text);transform:translate(2px,-2px)}.site-footer{border-top:1px solid var(--line);margin-top:var(--space-7);padding:var(--space-4) 0 var(--space-6);color:var(--faint);font-family:var(--font-mono);font-size:.8rem}.site-footer-inner{display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.site-footer p{margin:0}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){.reveal{opacity:0;animation:rise .7s var(--ease-out-quint) both}section.reveal{animation-delay:60ms}.d1{animation-delay:40ms}.d2{animation-delay:90ms}.d3{animation-delay:.15s}.d4{animation-delay:.21s}.d5{animation-delay:.27s}}@media (max-width: 56rem){.hero{grid-template-columns:1fr;gap:var(--space-5)}.id-block{grid-template-columns:9rem 1fr;align-items:center;gap:var(--space-4)}.id-photo{max-width:none}}@media (max-width: 40rem){body{font-size:16px}.shell{width:min(calc(100% - 1.75rem),var(--container))}.nav-links{gap:var(--space-3)}.row{grid-template-columns:1fr;gap:var(--space-2)}.row-num{padding-top:0}.skill-row{grid-template-columns:1fr;gap:var(--space-2)}.id-block{grid-template-columns:1fr}.id-photo{max-width:11rem}.contact-link{grid-template-columns:1fr auto;row-gap:.3rem}.c-value{grid-column:1 / -1;text-align:left}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
