@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff")}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff) format("woff")}:root{color-scheme:dark;--background: #08090b;--surface: rgb(14 16 20 / 72%);--surface-hover: rgb(20 23 28 / 82%);--surface-solid: #101318;--text: #edf0f2;--text-strong: #fff;--text-body: #b9c2c8;--text-soft: #9aa4ab;--text-dim: #78838a;--accent: oklch(.78 .09 235);--line: rgb(255 255 255 / 10%);--line-card: rgb(255 255 255 / 12%);--font-body: "Public Sans", system-ui, sans-serif;--font-display: "Space Grotesk", sans-serif;--font-mono: "IBM Plex Mono", monospace;--page-width: 1080px}*{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--background);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#3590bf4d}.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:10px 14px;background:var(--text);color:var(--background);font-family:var(--font-mono);font-size:12px;transform:translateY(-160%);transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}.site{position:relative;min-height:100vh;overflow-x:clip}.background-canvas{position:fixed;z-index:0;inset:-12%;display:block;width:124%;height:124%;pointer-events:none;filter:blur(64px) saturate(1.15)}.grid,.crosshair{position:fixed;pointer-events:none}.grid{inset:0;background-image:linear-gradient(to right,rgb(255 255 255 / 40%) 1px,transparent 1px),linear-gradient(to bottom,rgb(255 255 255 / 40%) 1px,transparent 1px);mix-blend-mode:overlay}.grid--fine{z-index:1;background-size:8px 8px;opacity:1}.grid--coarse{z-index:2;background-size:96px 96px}.crosshair{top:0;left:0;z-index:3;opacity:0;transition:opacity .4s ease}.crosshair--column{width:8px;height:100%;background:linear-gradient(to bottom,transparent,rgb(255 255 255 / 3%) 35% 65%,transparent)}.crosshair--row{width:100%;height:8px;background:linear-gradient(to right,transparent,rgb(255 255 255 / 3%) 35% 65%,transparent)}.crosshair-pulse{position:fixed;z-index:4;width:96px;height:96px;pointer-events:none;background:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff24;opacity:1;transition:opacity 2s ease-out}.crosshair-pulse.is-fading{opacity:0}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgb(255 255 255 / 9%);background:#08090b9e;backdrop-filter:blur(14px)}.site-header__inner,.main{width:min(100%,var(--page-width));margin-inline:auto}.site-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px;padding:12px clamp(16px,4vw,32px)}.identity{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;gap:4px 14px}.identity__name{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.01em}.identity__role,.button,.eyebrow,.section__label,.text-link,.project-card__host,.social,.footer{font-family:var(--font-mono)}.identity__role{color:var(--text-soft);font-size:11px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.button{flex:none;padding:9px 18px;border:1px solid rgb(255 255 255 / 28%);border-radius:2px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;transition:background .18s ease,color .18s ease,border-color .18s ease}.button:hover{border-color:var(--text);background:var(--text);color:var(--background)}.main{position:relative;z-index:10;padding:0 clamp(16px,4vw,32px) clamp(64px,10vw,120px)}.hero{display:grid;gap:clamp(24px,4vw,40px);padding:clamp(72px,13vw,128px) 0 clamp(56px,9vw,104px)}.eyebrow{margin:0;color:var(--accent);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.hero>.eyebrow{font-size:12px;letter-spacing:.14em}h1,h3,p{margin:0}h1,.skill-group h3,.feature-card h3,.project-card strong,.contact__email,.contact__phone{font-family:var(--font-display)}h1{max-width:17ch;color:var(--text-strong);font-size:clamp(34px,6.4vw,82px);font-weight:500;letter-spacing:-.035em;line-height:1.03;text-wrap:balance}.hero__intro{display:grid;max-width:880px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px 28px;color:var(--text-body);font-size:17px;line-height:1.6}.hero__intro p,.section__intro,.feature-card p{text-wrap:pretty}.section{padding:clamp(40px,7vw,56px) 0;border-top:1px solid var(--line)}.section__label{margin:0 0 40px;color:var(--text-soft);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:36px 48px}.skill-group{display:grid;align-content:start;gap:16px}.skill-group h3{color:var(--text-strong);font-size:22px;font-weight:500;letter-spacing:-.02em}.tags,.feature-list{margin:0;padding:0;list-style:none}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags li{padding:5px 10px;border:1px solid rgb(255 255 255 / 14%);border-radius:2px;background:#ffffff09;color:#c6ced3;font-family:var(--font-mono);font-size:12.5px;backdrop-filter:blur(14px)}.section__intro{max-width:62ch;margin-bottom:48px;color:var(--text-body);font-size:19px;line-height:1.55}.feature-card,.project-card{border:1px solid var(--line-card);border-radius:3px;background:var(--surface);backdrop-filter:blur(6px)}.feature-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:start;gap:clamp(20px,3vw,32px);padding:clamp(20px,4vw,36px)}.feature-card__copy{display:grid;gap:14px}.feature-card h3{color:var(--text-strong);font-size:clamp(28px,3.4vw,40px);font-weight:500;letter-spacing:-.03em;line-height:1.05}.feature-card p:not(.eyebrow){max-width:46ch;color:var(--text-body);font-size:16px;line-height:1.6}.text-link{justify-self:start;margin-top:4px;padding-bottom:3px;border-bottom:1px solid rgb(255 255 255 / 28%);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.text-link:hover{border-color:var(--accent);color:var(--accent)}.feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line-card);background:var(--line-card)}.feature-list li{padding:14px 12px;background:var(--surface-solid);color:#c6ced3;font-family:var(--font-mono);font-size:12px}.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;margin-top:16px}.project-card{display:grid;min-height:180px;align-content:space-between;gap:20px;padding:24px;transition:background .18s ease,border-color .18s ease,transform .18s ease}.project-card:hover{border-color:#ffffff4d;background:var(--surface-hover);transform:translateY(-2px)}.project-card__body{display:grid;gap:10px;color:var(--text-body);font-size:15px;line-height:1.5}.project-card strong{color:var(--text-strong);font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.15}.project-card__host{color:var(--text-dim);font-size:11.5px;letter-spacing:.06em}.section--contact{padding-bottom:0}.section--contact .section__label{margin-bottom:32px}.contact{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 64px}.contact__details{display:grid;gap:10px}.contact__email,.contact__phone{min-height:1.1em}.contact__email:not([data-ready]),.contact__phone:not([data-ready]){visibility:hidden}.contact__email{overflow-wrap:anywhere;color:var(--text-strong);font-size:clamp(22px,5vw,44px);font-weight:500;letter-spacing:-.03em}.contact__phone{color:var(--text-soft);font-size:clamp(20px,2.4vw,28px);letter-spacing:-.02em}.contact__email:hover,.contact__phone:hover{color:var(--accent)}.social{display:flex;flex-wrap:wrap;gap:20px}.social a{padding-bottom:3px;border-bottom:1px solid rgb(255 255 255 / 25%);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}.social a:hover{border-bottom-color:var(--accent);color:var(--accent)}.footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:clamp(48px,8vw,72px);padding-top:20px;border-top:1px solid var(--line);color:var(--text-dim);font-size:11px;letter-spacing:.08em;text-transform:uppercase}@media(max-width:460px){.identity__role{width:100%}.button{padding-inline:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.crosshair{display:none}}
