:root{--ink: #16201d;--paper: #f6f4ee;--muted: #6b7671;--line: #e2ddd2;--accent: #2f6b5a;--surface: #efece3;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--step--1: clamp(.83rem, .8rem + .15vw, .9rem);--step-0: clamp(1rem, .95rem + .25vw, 1.125rem);--step-1: clamp(1.35rem, 1.2rem + .7vw, 1.7rem);--step-2: clamp(1.9rem, 1.5rem + 1.9vw, 3rem);--step-3: clamp(2.8rem, 1.9rem + 4.2vw, 5.5rem);--gutter: clamp(1.25rem, 5vw, 6rem);--section-y: clamp(4rem, 9vw, 8rem)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}body{font-family:var(--font-body);font-size:var(--step-0);line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{max-width:1180px;margin-inline:auto;padding-inline:var(--gutter)}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.section-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:2.5rem}.section-head .idx{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}.section-head h2{font-family:var(--font-display);font-weight:500;font-size:var(--step-2);line-height:1.05}.section{padding-block:var(--section-y)}header.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px}.brand{font-family:var(--font-display);font-weight:600;font-size:var(--step-1);letter-spacing:-.01em}.nav-links{display:flex;gap:2rem;font-family:var(--font-mono);font-size:var(--step--1)}.nav-links a{color:var(--muted);transition:color .2s ease}.nav-links a:hover{color:var(--ink)}.nav-toggle{display:none;background:none;border:0;font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink);cursor:pointer}@media(max-width:640px){.nav-links{display:none}.nav-links.open{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:1.25rem;padding:1.5rem var(--gutter) 2rem;background:var(--paper)}.nav-toggle{display:block}}.hero{padding-block:clamp(4rem,12vw,9rem) var(--section-y)}.hero .eyebrow{display:block;margin-bottom:1.5rem}.hero h1{font-family:var(--font-display);font-weight:400;font-size:var(--step-3);line-height:1;letter-spacing:-.02em;max-width:16ch}.hero h1 em{font-style:italic;color:var(--accent)}.hero p.lead{margin-top:2rem;max-width:52ch;font-size:var(--step-1);color:var(--muted);line-height:1.5}.hero .cta-row{margin-top:2.75rem;display:flex;gap:1rem;flex-wrap:wrap}.btn{font-family:var(--font-mono);font-size:var(--step--1);padding:.75rem 1.4rem;border-radius:100px;transition:transform .15s ease,background .2s ease}.btn-solid{background:var(--accent);color:var(--paper)}.btn-solid:hover{transform:translateY(-2px)}.btn-ghost{background:var(--surface);color:var(--ink)}.btn-ghost:hover{background:var(--line)}.about-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(2rem,6vw,5rem);align-items:start}.about-grid p{margin-bottom:1.25rem;max-width:60ch}.about-grid p:last-child{margin-bottom:0}@media(max-width:760px){.about-grid{grid-template-columns:1fr}}.work-list{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.25rem,3vw,2rem)}@media(max-width:760px){.work-list{grid-template-columns:1fr}}.project{background:var(--surface);border-radius:14px;padding:clamp(1.5rem,3vw,2.25rem);display:flex;flex-direction:column;min-height:260px;transition:transform .2s ease,box-shadow .25s ease}.project:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px #16201d73}.project .meta{font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);margin-bottom:1rem}.project h3{font-family:var(--font-display);font-weight:500;font-size:var(--step-1);line-height:1.1;margin-bottom:.75rem}.project p{color:var(--muted);font-size:var(--step-0)}.project .tags{margin-top:auto;padding-top:1.5rem;display:flex;flex-wrap:wrap;gap:.5rem;font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}.project .tags span{background:var(--paper);padding:.2rem .65rem;border-radius:100px}.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem clamp(2rem,5vw,4rem)}.stack-col h4{font-family:var(--font-mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:1rem}.stack-col ul{list-style:none;display:flex;flex-direction:column;gap:.5rem}.stack-col li{font-size:var(--step-0)}.contact{padding-block:var(--section-y)}.contact h2{font-family:var(--font-display);font-weight:400;font-size:var(--step-3);line-height:1;letter-spacing:-.02em;max-width:14ch}.contact a.mail{display:inline-block;margin-top:1.75rem;font-family:var(--font-display);font-style:italic;font-size:var(--step-2);color:var(--accent);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}footer.foot{padding-block:2.5rem;border-top:1px solid var(--line)}.foot-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}.foot-inner a{transition:color .2s ease}.foot-inner a:hover{color:var(--ink)}
