:root{--font: Consolas, "Cascadia Mono", "Courier New", monospace;--bg: #111111;--text: #e4e4e4;--muted: #8a8a8a;--line: #262626;--accent: #e6b450;--green: #4ade80}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:72px}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.page{max-width:1040px;margin:0 auto;padding:0 24px}.muted{color:var(--muted)}.nav{position:sticky;top:0;z-index:10;background:#111c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-inner{display:flex;justify-content:space-between;align-items:center;height:72px;font-size:14px}.nav-me:hover{color:var(--accent)}.nav nav{display:flex;gap:24px}.nav nav a{color:var(--muted);transition:color .15s}.nav nav a:hover,.nav nav a.active{color:var(--accent)}.hero{padding:14vh 0 12vh}.hero-hi{color:var(--muted);margin-bottom:18px}.hero h1{font-size:clamp(34px,6vw,68px);line-height:1.12;font-weight:400;letter-spacing:-.02em;max-width:16ch}.hero h1 em{font-style:normal;color:var(--accent)}.hero-meta{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:36px;font-size:14px;color:var(--muted)}.hero-meta b{color:var(--text);font-weight:400}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--green);box-shadow:0 0 10px var(--green);animation:pulse 2.4s ease-in-out infinite}.dot.busy{background:var(--muted);box-shadow:none;animation:none}@keyframes pulse{50%{opacity:.45}}.section{margin-top:90px}.section h2{font-size:13px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line)}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.js .reveal.visible{opacity:1;transform:none}.services-intro{font-size:17px;max-width:56ch;margin:28px 0 8px}.services{display:grid;grid-template-columns:repeat(2,1fr);column-gap:48px}.service{display:grid;grid-template-columns:40px 1fr;gap:4px 16px;padding:22px 0;border-bottom:1px solid var(--line)}.service-num{color:var(--muted);font-size:13px;padding-top:4px}.service h3{font-size:19px;font-weight:400;transition:color .2s}.service:hover h3{color:var(--accent)}.service p{grid-column:2;color:var(--muted);font-size:14px}.work-row{display:grid;grid-template-columns:56px 1fr auto;gap:8px 24px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);transition:padding .2s}.work-row:hover{padding-left:12px}.work-num,.work-year{color:var(--muted);font-size:14px}.work-row h3{font-size:clamp(20px,2.6vw,28px);font-weight:400;transition:color .2s}.work-row:hover h3{color:var(--accent)}.arrow{display:inline-block;font-size:.7em;opacity:0;transform:translate(-4px,4px);transition:opacity .2s,transform .2s}.work-row:hover .arrow{opacity:1;transform:none}.work-row p{grid-column:2;color:var(--muted);font-size:15px;max-width:60ch}.work-stack{grid-column:2;font-size:13px;color:var(--accent);opacity:.8}.about{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;margin-top:28px}.about p{font-size:17px;margin-bottom:16px}.about ul{list-style:none;font-size:15px}.about li{padding:10px 0;border-bottom:1px dashed var(--line);color:var(--muted)}.about li b{display:block;color:var(--text);font-weight:400}.contact-note{color:var(--muted);margin:28px 0 12px}.contact-email{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px}.contact-email .big{font-size:clamp(24px,5vw,54px);border-bottom:2px solid var(--accent);overflow-wrap:anywhere;transition:color .15s}.contact-email .big:hover{color:var(--accent)}.copy{font-size:13px;padding:3px 10px;border:1px solid var(--line);border-radius:4px;color:var(--muted)}.copy:hover{color:var(--accent);border-color:var(--accent)}.contact-links{display:flex;gap:24px;margin-top:36px;font-size:14px;color:var(--muted)}.contact-links a:hover{color:var(--accent)}.footer{display:flex;justify-content:space-between;margin-top:120px;padding-top:24px;padding-bottom:40px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}@media(max-width:720px){.page{padding:0 16px}.nav nav{gap:14px}.about{grid-template-columns:1fr;gap:24px}.services{grid-template-columns:1fr}.service{grid-template-columns:32px 1fr;gap:4px 12px}.work-row{grid-template-columns:36px 1fr;gap:6px 12px}.work-row:hover{padding-left:0}.work-year{display:none}.arrow{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.dot{animation:none}}
