@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=JetBrains+Mono:wght@400&display=swap";:root{--color-bg: #0d0d0f;--color-bg-hero: #0c1121;--color-surface: #141418;--color-surface-raised: #1a1a20;--color-border: #252530;--color-border-subtle: #1a1a26;--color-text-primary: #ededee;--color-text-secondary: #9090a2;--color-text-muted: #62627a;--color-accent: #5a7fff;--color-accent-dim: #1e2a5a;--color-accent-hover: #7a9aff;--color-canvas-base: #09090d;--color-canvas-hero: #0a0f1e;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: 1rem;--text-lg: 1.1875rem;--text-xl: 1.5rem;--text-2xl: 2.125rem;--text-3xl: 3rem;--text-4xl: 4.25rem;--text-5xl: 5.5rem;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Mono", monospace;--font-light: 300;--font-regular: 400;--font-medium: 500;--font-semi: 600;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--s-20: 80px;--s-24: 96px;--s-32: 128px;--max-width: 1200px;--content-width: 760px;--section-pad-y: var(--s-24);--section-pad-x: var(--s-8);--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--ease-ui: .15s ease;--ease-content: .28s ease}@media(max-width:640px){:root{--text-4xl: 2.75rem;--text-3xl: 2rem;--section-pad-x: var(--s-5);--section-pad-y: var(--s-16)}}@media(min-width:641px)and (max-width:1024px){:root{--text-4xl: 3.5rem;--section-pad-x: var(--s-6)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-regular);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-medium);line-height:1.15;letter-spacing:-.025em;color:var(--color-text-primary)}p{max-width:68ch;color:var(--color-text-secondary);line-height:1.75}strong{font-weight:var(--font-medium);color:var(--color-text-primary)}a{color:var(--color-accent);text-decoration:none;transition:color var(--ease-ui)}a:hover{color:var(--color-accent-hover)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}button{cursor:pointer;font-family:inherit;font-size:inherit;border:none;background:none;color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}input,textarea{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none}textarea{resize:vertical}canvas{display:block}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#site-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--s-5) var(--s-8);display:flex;justify-content:flex-end;align-items:center;transition:background-color .3s ease,backdrop-filter .3s ease}#site-nav.is-scrolled{background-color:#0d0d0fcc;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}#site-nav nav{display:flex;gap:var(--s-8)}#site-nav a{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);text-decoration:none;transition:color var(--ease-ui)}#site-nav a:hover{color:var(--color-text-primary)}#site-nav a.is-active{color:var(--color-accent)}#site-nav a:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:var(--radius-sm)}@media(max-width:640px){#site-nav{padding-inline:var(--section-pad-x)}#site-nav nav{gap:var(--s-6)}}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--section-pad-x)}.section{min-height:100vh;padding-block:var(--section-pad-y);display:flex;flex-direction:column;justify-content:center;position:relative}.section+.section{border-top:1px solid var(--color-border-subtle)}.section{scroll-margin-top:56px}.section-label{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-regular);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--s-8)}.section-title{font-size:var(--text-2xl);font-weight:var(--font-medium);letter-spacing:-.025em;margin-bottom:var(--s-6)}.divider{width:100%;height:1px;background-color:var(--color-border);border:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}#hero{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;border-top:none;background-color:var(--color-bg-hero)}#hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;background-color:var(--color-canvas-hero)}#hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:140px;background:linear-gradient(to bottom,transparent,var(--color-bg));z-index:1;pointer-events:none}.hero-content{position:relative;z-index:2;padding-top:56px}.hero-descriptor{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-regular);color:var(--color-text-muted);letter-spacing:.08em;line-height:1;max-width:none;margin-bottom:var(--s-8)}.hero-headline{font-size:var(--text-4xl);font-weight:var(--font-light);letter-spacing:-.03em;line-height:1.06;color:var(--color-text-primary);max-width:13ch;margin-bottom:var(--s-6)}.hero-sub{font-size:var(--text-lg);font-weight:var(--font-regular);color:var(--color-text-secondary);line-height:1.6;max-width:50ch;margin-bottom:0}@media(max-width:640px){.hero-headline{max-width:none}.hero-sub{font-size:var(--text-base);max-width:none}}.projects-intro{font-size:var(--text-base);font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:.04em;max-width:none;margin-bottom:var(--s-10)}.projects-layout{display:grid;grid-template-columns:220px 1fr;gap:0 var(--s-16);align-items:start}.projects-list{display:flex;flex-direction:column;border-left:1px solid var(--color-border);position:sticky;top:var(--s-16)}.project-item{display:block;text-align:left;padding:var(--s-3) var(--s-5);font-size:var(--text-sm);font-weight:var(--font-regular);color:var(--color-text-muted);letter-spacing:.01em;border-left:2px solid transparent;margin-left:-1px;transition:color var(--ease-ui),border-color var(--ease-ui);cursor:pointer;-webkit-user-select:none;user-select:none}.project-item:hover{color:var(--color-text-secondary)}.project-item[aria-pressed=true]{color:var(--color-text-primary);font-weight:var(--font-medium);border-left-color:var(--color-accent)}.projects-detail{display:flex;flex-direction:column;gap:var(--s-5);transition:opacity var(--ease-content)}.projects-detail.is-switching{opacity:0}.project-title{font-size:var(--text-xl);font-weight:var(--font-medium);letter-spacing:-.02em;line-height:1.2;color:var(--color-text-primary)}.project-description{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.75;max-width:58ch}.project-canvas-wrap{width:100%;aspect-ratio:16 / 7;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-top:var(--s-3)}#project-canvas{width:100%;height:100%}@media(max-width:768px){.projects-layout{grid-template-columns:1fr;gap:var(--s-8) 0}.projects-list{flex-direction:row;overflow-x:auto;border-left:none;border-bottom:1px solid var(--color-border);position:static;scrollbar-width:none;-ms-overflow-style:none}.projects-list::-webkit-scrollbar{display:none}.project-item{border-left:none;border-bottom:2px solid transparent;margin-left:0;margin-bottom:-1px;padding:var(--s-3) var(--s-4);white-space:nowrap}.project-item[aria-pressed=true]{border-left-color:transparent;border-bottom-color:var(--color-accent)}}.about-content{display:flex;flex-direction:column;gap:var(--s-8);max-width:680px}.about-intro p{font-size:var(--text-lg);color:var(--color-text-primary);line-height:1.7;max-width:58ch}.about-history p,.about-interests p{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.8;max-width:58ch}.about-interests{padding-top:var(--s-4);border-top:1px solid var(--color-border-subtle)}.about-interests p{color:var(--color-text-muted);font-size:var(--text-sm)}.contact-intro{font-size:var(--text-lg);color:var(--color-text-primary);line-height:1.6;max-width:52ch;margin-bottom:var(--s-3)}.contact-sub{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.7;max-width:52ch;margin-bottom:var(--s-12)}#contact-form{display:flex;flex-direction:column;gap:var(--s-8);max-width:500px}.form-field{display:flex;flex-direction:column;gap:var(--s-2)}.form-field label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.1em;text-transform:uppercase}.form-field input,.form-field textarea{background:transparent;border:none;border-bottom:1px solid var(--color-border);padding:var(--s-3) 0;font-size:var(--text-base);color:var(--color-text-primary);width:100%;outline:none;transition:border-color var(--ease-ui)}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--color-text-muted)}.form-field input:focus,.form-field textarea:focus{border-bottom-color:var(--color-accent)}.form-field.has-error input,.form-field.has-error textarea{border-bottom-color:#c0404a}.field-error{font-family:var(--font-mono);font-size:var(--text-xs);color:#c0404a;letter-spacing:.02em}.btn-submit{align-self:flex-start;margin-top:var(--s-2);padding:var(--s-3) var(--s-6);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);letter-spacing:.02em;color:var(--color-text-secondary);background:transparent;transition:border-color var(--ease-ui),color var(--ease-ui);cursor:pointer}.btn-submit:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-submit:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.btn-submit:disabled{opacity:.4;cursor:not-allowed}.form-send-error{font-family:var(--font-mono);font-size:var(--text-xs);color:#c0404a;letter-spacing:.02em;max-width:none}.form-success{display:none;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);letter-spacing:.04em;padding-top:var(--s-2)}.form-success.is-visible{display:block}
