@font-face{font-family:Inter;src:url(/fonts/Inter-VariableFont_opsz%2Cwght.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Italic-VariableFont_opsz%2Cwght.ttf) format("truetype");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}:root{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "Space Mono", ui-monospace, monospace;--color-bg: #ffffff;--color-bg-dark: #ffffff;--color-text: #1a1a1a;--color-text-muted: #555;--color-accent: #0d9488;--color-accent-hover: #0f766e;--color-glow: #7CFFCB;--color-border: #e5e7eb;--color-card-bg: #ffffff;--max-width: 960px;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--radius: 8px}#root{width:100%;min-height:100%;margin:0;padding:0;background-color:var(--color-bg)}*,*:before,*:after{box-sizing:border-box}html{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--color-text);background-color:var(--color-bg)}a{color:var(--color-accent);text-decoration:none;font-weight:500}a:hover{color:var(--color-accent-hover);text-decoration:underline}.landing{min-height:100vh;display:flex;flex-direction:column}.landing .hero{flex:1;min-height:100vh;min-height:100dvh}.landing .projects{flex-shrink:0;padding-top:var(--space-lg);padding-bottom:var(--space-2xl)}.hero{position:relative;background-color:var(--color-bg);color:var(--color-text);padding:var(--space-2xl) var(--space-md);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left}.hero__scroll-glow{position:absolute;bottom:0;left:0;right:0;height:min(180px,25vh);pointer-events:none;opacity:0;background:radial-gradient(ellipse 120% 100% at 50% 100%,rgba(124,255,203,.45) 0%,rgba(124,255,203,.2) 40%,transparent 70%);transition:opacity .6s ease-out}.hero__scroll-glow--visible{opacity:1;animation:scroll-glow-pulse 2.5s ease-in-out .6s infinite}@keyframes scroll-glow-pulse{0%,to{opacity:1}50%{opacity:.5}}.hero__nav{position:absolute;top:var(--space-md);right:var(--space-md);opacity:0;transition:opacity .2s ease-out}.hero__nav--sticky{position:fixed;top:var(--space-md);right:var(--space-md);z-index:60}.hero__nav--visible{opacity:1}.hero__link{font-family:var(--font-mono);font-size:.9375rem;font-weight:500;color:var(--color-text-muted)}.hero__link:hover{color:var(--color-accent)}.hero__about-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.hero__about-grid{position:relative;width:2.25rem;height:2.25rem;overflow:hidden;background-color:transparent}.hero__about-letter{position:absolute;width:50%;height:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--color-text-muted);transition:top .3s ease,left .3s ease}.hero__about-hint{position:absolute;bottom:4px;right:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;opacity:0;transition:opacity .18s ease-out}.hero__about-hint span{width:10px;height:2px;background-color:var(--color-text-muted);border-radius:999px}.hero__about-link:hover .hero__about-hint{opacity:1}.hero__name{margin:0 0 var(--space-xs);font-family:var(--font-mono);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;letter-spacing:-.02em;color:var(--color-text)}.hero__tagline{margin:0;font-family:var(--font-mono);font-size:1.125rem;font-weight:500;color:var(--color-text-muted)}.hero__welcome{width:100%}.hero__welcome-line{margin:0 0 .35em;font-family:var(--font-mono);font-size:clamp(1rem,2.5vw,1.25rem);font-weight:500;color:var(--color-text);line-height:1.4}.hero__welcome-line:last-child{margin-bottom:0}.hero__word{display:inline-block;margin-right:.35em;opacity:0;animation:hero-word-in 1s ease-out forwards}.hero__word:last-child,.hero__word--no-margin{margin-right:0}.hero__word--bold{font-weight:700}@keyframes hero-word-in{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.hero__name-trigger{font-weight:600;cursor:default}.hero__portfolio-trigger{font-weight:700;cursor:default}.hero__tooltip{position:fixed;z-index:50;transform:translateY(calc(-100% - 8px));pointer-events:none;padding:var(--space-xs) var(--space-sm);font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-muted);background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #00000014;white-space:normal;max-width:280px}.hero__tooltip .hero__tooltip-accent{color:#7cffcb}.hero__tooltip-noun{font-family:var(--font-mono);font-style:italic;font-weight:600;color:#7cffcb;margin-bottom:2px}.hero__tooltip-description{font-family:var(--font-sans);color:#777}.hero__tooltip em{font-style:italic}.about,.projects{max-width:var(--max-width);margin-left:auto;margin-right:auto;padding:var(--space-2xl) var(--space-md)}.projects{position:relative}.show-projects .projects{background-color:var(--color-glow);border-radius:var(--radius) var(--radius) 0 0}.show-projects .projects:before{content:"";position:absolute;top:-160px;left:0;right:0;height:160px;background:linear-gradient(to bottom,transparent,var(--color-glow));pointer-events:none}.projects__inner{position:relative;opacity:0;transform:translateY(40px);transition:opacity .6s ease-out,transform .6s ease-out}.projects__inner--visible{opacity:1;transform:translateY(0)}.about-page{min-height:100vh;padding-top:var(--space-md)}.about-page__nav{max-width:var(--max-width);margin-left:auto;margin-right:auto;padding:0 var(--space-md) var(--space-md)}.about-page__back{font-family:var(--font-mono);font-size:.9375rem;font-weight:500;color:var(--color-text-muted)}.about-page__back:hover{color:var(--color-accent)}.contact{background-color:var(--color-bg);border-top:1px solid var(--color-border);margin-top:var(--space-2xl);width:100%}.contact__inner{max-width:var(--max-width);margin-left:auto;margin-right:auto;padding:var(--space-2xl) var(--space-md)}.about__title,.projects__title,.contact__title{margin:0 0 var(--space-md);font-family:var(--font-mono);font-size:1.5rem;font-weight:600;letter-spacing:-.02em}.about__content{display:flex;align-items:stretch;gap:var(--space-xl);flex-wrap:wrap}.about__text-wrap{flex:1;min-width:min(100%,280px)}.about__text{margin:0;color:var(--color-text-muted);max-width:65ch}.about__image-wrap{flex-shrink:0;width:min(220px,100%);max-width:220px;display:flex;align-items:center;margin-inline:auto}.about__image{height:100%;max-height:320px;width:auto;max-width:100%;display:block;object-fit:contain;object-position:center;border-radius:var(--radius)}.projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg);margin-top:var(--space-md)}.project-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-md);display:flex;flex-direction:column;transition:box-shadow .2s ease,border-color .2s ease}.project-card[role=button]{cursor:pointer}.project-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #0000000f}.project-card__placeholder{aspect-ratio:16 / 10;background:var(--color-border);border-radius:var(--radius);margin-bottom:var(--space-sm)}.project-card__image-wrap{aspect-ratio:16 / 10;border-radius:var(--radius);overflow:hidden;margin-bottom:var(--space-sm)}.project-card__image{width:100%;height:100%;object-fit:cover}.project-card__title{margin:0 0 var(--space-xs);font-family:var(--font-mono);font-size:1.125rem;font-weight:600}.project-card__description{margin:0 0 var(--space-sm);font-size:.9375rem;color:var(--color-text-muted);flex-grow:1}.project-card__link{align-self:flex-start;font-size:.9375rem}.project-card-overlay{position:fixed;inset:0;z-index:100;background:var(--color-bg);overflow:auto;padding:var(--space-md);animation:project-card-overlay-in .2s ease}@keyframes project-card-overlay-in{0%{opacity:0}to{opacity:1}}.project-card-overlay__minimize{position:fixed;top:var(--space-md);left:var(--space-md);z-index:101;padding:var(--space-xs) var(--space-sm);font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text);background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.project-card-overlay__minimize:hover{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 2px 8px #0000000f}.project-card-overlay__content{max-width:var(--max-width);margin:calc(var(--space-md) + 2.5rem) auto 0;padding-top:var(--space-lg)}.project-card--expanded{padding:var(--space-xl);max-width:100%}.project-card--expanded .project-card__title{font-size:1.5rem}.project-card--expanded .project-card__description{font-size:1rem}.project-card--expanded .project-card__placeholder,.project-card--expanded .project-card__image-wrap{aspect-ratio:16 / 9;margin-bottom:var(--space-md)}.contact .contact__title{color:var(--color-text)}.contact__text{margin:0;color:var(--color-text-muted)}.contact__text a{color:var(--color-accent)}.contact__text a:hover{color:var(--color-accent-hover)}@media(max-width:640px){.projects__grid{grid-template-columns:1fr}.about__content{flex-direction:column;align-items:center}.about__text-wrap{min-width:100%}.about__image-wrap{width:min(200px,100%)}.about__image{height:auto;max-height:none;width:100%}.hero,.about,.projects,.contact__inner{padding-left:var(--space-sm);padding-right:var(--space-sm)}}
