@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.ttf);font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--cursor-x:50vw;--cursor-y:28vh;--bg:#050609;--surface:#ffffff0e;--surface-strong:#ffffff17;--text:#f4f2ec;--muted:#f4f2ecad;--subtle:#f4f2ec70;--line:#f4f2ec1c;--line-strong:#f4f2ec2e;--accent:#f4f2ec;--max-width:1080px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f4ee;--surface:#0c0e120b;--surface-strong:#0c0e1213;--text:#121316;--muted:#121316a8;--subtle:#12131670;--line:#1213161a;--line-strong:#12131629;--accent:#121316}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);background:var(--bg);margin:0}body,button,a{font:inherit}a{color:inherit;text-decoration:none}button{border:0}::selection{color:var(--bg);background:var(--text)}.interactive-bg{z-index:-1;background:radial-gradient(520px circle at var(--cursor-x) var(--cursor-y), #ffffff2e, #ffffff0b 34%, transparent 68%), linear-gradient(140deg, #ffffff0b, transparent 28%), var(--bg);position:fixed;inset:0;overflow:hidden}.interactive-bg:before{content:"";background-image:linear-gradient(115deg, transparent 0 47%, var(--line) 48% 49%, transparent 50%), linear-gradient(65deg, transparent 0 46%, var(--line) 47% 48%, transparent 49%), radial-gradient(circle, var(--line-strong) 0 1px, transparent 2px);-webkit-mask-image:radial-gradient(circle at var(--cursor-x) var(--cursor-y), black, transparent 62%);mask-image:radial-gradient(circle at var(--cursor-x) var(--cursor-y), black, transparent 62%);opacity:.34;transform:translate3d(calc((var(--cursor-x) - 50vw) * -.018), calc((var(--cursor-y) - 50vh) * -.018), 0);background-position:0 0,36px 44px,0 0;background-size:168px 132px,192px 148px,84px 84px;transition:opacity .22s;animation:16s linear infinite neural-drift;position:absolute;inset:-20%}.interactive-bg:after{content:"";background:radial-gradient(circle at 50% 110%,#ffffff14,#0000 42%);animation:11s ease-in-out infinite alternate ambient;position:absolute;inset:0}.neural-field{opacity:.72;transform:translate3d(calc((var(--cursor-x) - 50vw) * .012), calc((var(--cursor-y) - 50vh) * .012), 0);transition:transform .18s ease-out;position:absolute;inset:-8%}.neural-field:before,.neural-field:after{content:"";-webkit-mask-image:radial-gradient(circle at var(--cursor-x) var(--cursor-y), black, transparent 70%);mask-image:radial-gradient(circle at var(--cursor-x) var(--cursor-y), black, transparent 70%);background-image:linear-gradient(28deg,#0000 0 42%,#f4f2ec1f 43% 44%,#0000 45%),linear-gradient(152deg,#0000 0 48%,#f4f2ec14 49% 50%,#0000 51%);background-size:310px 210px,260px 190px;animation:9s linear infinite signal-flow;position:absolute;inset:0}.neural-field:after{opacity:.44;filter:blur(.6px);animation-duration:14s;animation-direction:reverse}.neural-field span{background:#f4f2ecb8;border:1px solid #f4f2ec57;border-radius:50%;width:6px;height:6px;animation:4.8s ease-in-out infinite node-pulse;position:absolute;box-shadow:0 0 18px #f4f2ec47,0 0 42px #f4f2ec1a}.neural-field span:first-child{animation-delay:-.2s;top:18%;left:8%}.neural-field span:nth-child(2){animation-delay:-1.4s;top:64%;left:21%}.neural-field span:nth-child(3){animation-delay:-2.1s;top:28%;left:32%}.neural-field span:nth-child(4){animation-delay:-.8s;top:78%;left:44%}.neural-field span:nth-child(5){animation-delay:-3s;top:42%;left:52%}.neural-field span:nth-child(6){animation-delay:-1.1s;top:16%;left:63%}.neural-field span:nth-child(7){animation-delay:-2.7s;top:58%;left:76%}.neural-field span:nth-child(8){animation-delay:-.5s;top:32%;left:88%}.neural-field span:nth-child(9){animation-delay:-3.5s;top:84%;left:14%}.neural-field span:nth-child(10){animation-delay:-1.8s;top:10%;left:38%}.neural-field span:nth-child(11){animation-delay:-2.4s;top:86%;left:58%}.neural-field span:nth-child(12){animation-delay:-3.2s;top:8%;left:72%}.neural-field span:nth-child(13){animation-delay:-1.6s;top:82%;left:84%}.neural-field span:nth-child(14){animation-delay:-2.9s;top:42%;left:6%}.page{width:min(100%, var(--max-width));min-height:100vh;margin:0 auto;padding:22px clamp(18px,4vw,38px) 36px}.header{z-index:10;border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 68%, transparent);-webkit-backdrop-filter:blur(24px)saturate(130%);backdrop-filter:blur(24px)saturate(130%);border-radius:26px;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;width:min(100%,980px);margin:0 auto;padding:9px 10px;display:grid;position:sticky;top:18px;box-shadow:0 18px 60px #0000002e}.brand,.header-actions,.nav{align-items:center;display:flex}.brand{gap:10px;min-width:0}.brand-mark{border:1px solid var(--line-strong);background:var(--surface);border-radius:14px;flex:none;place-items:center;width:36px;height:36px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;display:grid}.brand-copy{gap:1px;min-width:0;display:grid}.brand-name{font-size:.94rem;font-weight:680;line-height:1.1}.brand-role,.eyebrow,.section-kicker,.contact-label{color:var(--subtle);letter-spacing:0;text-transform:uppercase;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.nav{justify-content:center;gap:4px}.nav a,.theme-toggle,.downloadcv,.primary-action,.secondary-action{border-radius:999px;transition:transform .18s,background .18s,color .18s,border-color .18s}.nav a{color:var(--muted);padding:8px 12px;font-size:.9rem}.nav a:hover,.nav a:focus-visible{color:var(--text);background:var(--surface)}.header-actions{justify-content:flex-end;gap:8px}.theme-toggle,.downloadcv,.primary-action,.secondary-action{cursor:pointer;justify-content:center;align-items:center;min-height:38px;display:inline-flex}.theme-toggle{min-width:66px;color:var(--muted);background:0 0;padding:0 13px}.downloadcv,.primary-action{color:var(--bg);background:var(--text);gap:7px;padding:0 15px;font-weight:680}.secondary-action{border:1px solid var(--line);color:var(--text);background:color-mix(in srgb, var(--surface) 72%, transparent);padding:0 15px}.theme-toggle:hover,.downloadcv:hover,.primary-action:hover,.secondary-action:hover{transform:translateY(-1px)}.theme-toggle:focus-visible,.downloadcv:focus-visible,.primary-action:focus-visible,.secondary-action:focus-visible,.contact-item a:focus-visible,.nav a:focus-visible{outline:2px solid var(--line-strong);outline-offset:3px}.main{gap:clamp(64px,10vw,112px);padding:clamp(78px,12vw,132px) 0 64px;display:grid}.hero{grid-template-columns:minmax(0,1.08fr) minmax(260px,.74fr);align-items:center;gap:clamp(34px,6vw,72px);min-height:min(680px,100vh - 150px);display:grid}.hero-copy,.portrait-frame,.section,.project-card,.contact-item{animation:.62s both enter}.hero-copy{gap:20px;max-width:760px;display:grid}.eyebrow,.section-kicker{color:var(--muted);margin:0}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;max-width:11ch;margin-bottom:0;font-size:clamp(4.2rem,12vw,9rem);font-weight:720;line-height:.9}.description{max-width:610px;color:var(--muted);margin-bottom:8px;font-size:clamp(1.08rem,1.8vw,1.28rem);line-height:1.72}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.portrait-frame{aspect-ratio:.78;border:1px solid var(--line);background:var(--surface);isolation:isolate;border-radius:28px;width:min(100%,360px);margin:0 0 0 auto;position:relative;overflow:hidden;box-shadow:0 24px 80px #00000038}.portrait-frame:before{z-index:1;content:"";pointer-events:none;background:linear-gradient(#0000 48%,#00000061),radial-gradient(circle at 50% 0,#ffffff29,#0000 42%);position:absolute;inset:0}.portrait-frame:after{z-index:1;content:"";pointer-events:none;border:1px solid #ffffff24;border-radius:20px;position:absolute;inset:12px}.portrait-frame img{object-fit:cover;object-position:52% 34%;filter:saturate(.86)contrast(1.04);width:100%;height:100%;display:block;transform:scale(1.015)}.section{gap:24px;display:grid}.section-heading{gap:9px;max-width:690px;display:grid}h2{letter-spacing:0;margin-bottom:0;font-size:clamp(2rem,4.6vw,4rem);font-weight:700;line-height:1.02}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.project-card{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 76%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:22px;justify-content:space-between;align-items:flex-end;gap:18px;min-height:170px;padding:18px;transition:transform .22s,background .22s,border-color .22s;display:flex}.project-card:hover{border-color:var(--line-strong);background:var(--surface-strong);transform:translateY(-3px)}.project-card p{color:var(--muted);margin-bottom:0;line-height:1.35}.project-card span{border:1px solid var(--line);color:var(--text);text-transform:lowercase;border-radius:999px;flex:none;padding:7px 10px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.contact-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.contact-item{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 72%, transparent);border-radius:20px;gap:10px;min-width:0;padding:16px;display:grid}.contact-label{margin-bottom:0}.contact-item a{overflow-wrap:anywhere;min-width:0;color:var(--text);font-weight:620;line-height:1.35}.contact-item a:hover{color:var(--muted)}.footer{border-top:1px solid var(--line);color:var(--subtle);justify-content:space-between;gap:18px;padding-top:28px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem;display:flex}.footer p{margin-bottom:0}@keyframes enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes ambient{0%{opacity:.42;transform:translateY(0)}to{opacity:.72;transform:translateY(-24px)}}@keyframes neural-drift{0%{background-position:0 0,36px 44px,0 0}to{background-position:168px 132px,-156px 192px,84px 84px}}@keyframes signal-flow{0%{background-position:0 0,0 0}to{background-position:310px 210px,-260px 190px}}@keyframes node-pulse{0%,to{opacity:.24;transform:scale(.82)}45%{opacity:.86;transform:scale(1.45)}}@media (width<=900px){.header{grid-template-columns:1fr auto}.nav{display:none}.hero{grid-template-columns:1fr;min-height:auto}.portrait-frame{aspect-ratio:.86;width:min(100%,420px);margin:4px auto 0}.project-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.page{padding:14px 15px 28px}.header{border-radius:22px;gap:10px;padding:8px;top:10px}.brand-role{display:none}.brand-mark{border-radius:12px;width:34px;height:34px}.brand-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.header-actions{gap:6px}.theme-toggle{min-width:56px;padding:0 9px}.downloadcv{padding:0 12px}.main{gap:68px;padding-top:64px}.hero{border:1px solid var(--line);isolation:isolate;background:#08090c;border-radius:28px;align-items:end;min-height:620px;position:relative;overflow:hidden;box-shadow:0 24px 80px #0000003d}.hero:after{z-index:1;content:"";pointer-events:none;background:linear-gradient(#05060947 0%,#05060994 48%,#050609eb 100%),radial-gradient(circle at 50% 8%,#0000 0 30%,#05060985 76%);position:absolute;inset:0}.hero-copy{z-index:2;color:#f7f4ed;gap:16px;padding:24px 18px 18px;position:relative}.hero-copy .eyebrow,.hero-copy .description{color:#f7f4edc7;text-shadow:0 1px 22px #00000073}h1{color:#f7f4ed;text-shadow:0 2px 34px #0000007a;font-size:clamp(3.15rem,17vw,5.2rem)}.portrait-frame{z-index:0;aspect-ratio:auto;width:100%;height:100%;box-shadow:none;border:0;border-radius:0;margin:0;position:absolute;inset:0}.portrait-frame:before,.portrait-frame:after{display:none}.portrait-frame img{object-position:52% 28%;filter:grayscale(.22)saturate(.62)contrast(.94)brightness(.72);transform:scale(1.06)}.hero-actions{display:grid}.primary-action,.secondary-action{width:100%}.hero .primary-action{color:#08090c;background:#f7f4ed}.hero .secondary-action{color:#f7f4ed;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f4ed1a;border-color:#f7f4ed3d}.project-grid,.contact-grid{grid-template-columns:1fr}.project-card{min-height:132px}.footer{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.neural-field{transform:none}}
