:root{--font-mono: JetBrains Mono, ui-monospace, SF Mono, Menlo, Consolas, monospace;--color-bg: #0d0d10;--color-card: #131318;--color-card-raised: #17171d;--color-border: rgba(255, 255, 255, .07);--color-border-strong: rgba(255, 255, 255, .14);--color-text: #e8e8ed;--color-text-soft: #8a8a95;--color-text-muted: #5a5a64;--color-accent: #a78bfa;--color-accent-dark: #7c3aed;--color-accent-glow: rgba(167, 139, 250, .22)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}[data-reveal]{opacity:0;transform:translate3d(0,18px,0);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--d, 0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--d, 0ms)}[data-reveal][data-revealed=true]{opacity:1;transform:translateZ(0)}.portfolio-root{min-height:100vh;overflow-x:hidden;background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.55}.portfolio-root h1,.portfolio-root h2,.portfolio-root h3,.portfolio-root p,.portfolio-root ul,.portfolio-root ol{margin:0;padding:0;font-weight:400;list-style:none}.muted{color:var(--color-text-muted)}.eyebrow{color:var(--color-text-muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;min-height:57px;padding:14px 32px;border-bottom:1px solid var(--color-border);background:#0d0d10b8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:12px;letter-spacing:.02em}.nav__brand,.nav__right,.nav__links{display:flex;align-items:center}.nav__brand{gap:8px;font-weight:500;transition:color .2s}.nav__brand:hover .nav__handle{color:var(--color-accent)}.nav__sep,.nav__handle{color:var(--color-text-muted)}.nav__logo{width:28px;height:28px;border-radius:8px;box-shadow:0 0 0 3px var(--color-accent-glow)}.nav__links{gap:28px;color:var(--color-text-soft)}.nav__links a{position:relative;transition:color .2s}.nav__links a:after{position:absolute;right:100%;bottom:-4px;left:0;height:1px;background:var(--color-accent);content:"";transition:right .3s cubic-bezier(.2,.7,.2,1)}.nav__links a:hover{color:var(--color-text)}.nav__links a:hover:after{right:0}.nav__right{gap:16px}.lang-switch{display:flex;gap:6px;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;background:none;color:var(--color-text-soft);cursor:pointer;transition:border-color .2s}.lang-switch:hover{border-color:var(--color-border-strong)}.lang-switch .is-active{color:var(--color-accent)}.lang-switch__sep{color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text);font-size:12px;letter-spacing:.02em;cursor:pointer;transition:background .2s,border-color .2s,color .2s,box-shadow .3s}.btn--ghost:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-bg);font-weight:600}.btn--primary:hover{background:#b69cff;box-shadow:0 0 0 6px var(--color-accent-glow),0 6px 30px var(--color-accent-glow)}.btn--lg{padding:14px 22px;font-size:14px}.hero{position:relative;display:flex;min-height:calc(100vh - 57px);flex-direction:column;justify-content:center;padding:64px 32px 100px}.hero__grid{position:relative;z-index:1;display:grid;width:100%;max-width:1280px;margin:0 auto;grid-auto-rows:minmax(80px,auto);grid-template-columns:repeat(12,1fr);gap:12px}.hero__name{display:flex;flex-direction:column;font-size:clamp(48px,7vw,96px);font-weight:500;letter-spacing:-.04em;line-height:.95}.hero__last-name,.hero__cursor,.hero__metric{color:var(--color-accent)}.hero__cursor{display:inline-block;margin-left:4px;animation:blink 1.1s steps(2) infinite}.hero__role{display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px;align-self:flex-start;margin-top:18px;padding:6px 12px;border:1px solid var(--color-border);border-radius:999px;background:#ffffff05;font-size:14px;letter-spacing:.02em}.hero__role a{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:3px;transition:color .2s}.hero__role a:hover{color:var(--color-accent)}.hero__role:before{width:5px;height:5px;border-radius:50%;background:var(--color-accent);content:""}.hero__status-line,.hero__time{font-size:13px}.hero__status-line{margin-bottom:12px}.hero__time{color:var(--color-text-soft)}.hero__time span:last-child{color:var(--color-text)}.hero__pitch{margin-bottom:14px;color:var(--color-text);font-size:16px;line-height:1.55;text-wrap:pretty}.hero__pitch--small{margin-bottom:0;color:var(--color-text-soft);font-size:12.5px}.hero__metric{font-size:38px;letter-spacing:-.03em;line-height:1}.hero__metric span{margin-left:2px;color:var(--color-text-soft);font-size:18px}.hero__metric-label{margin-top:12px;color:var(--color-text-soft);font-size:10.5px;letter-spacing:.06em;line-height:1.4}.hero__meta{color:var(--color-text-soft);font-size:12px;transition:color .2s}.hero__meta:hover{color:var(--color-accent)}.hero__meta .muted{display:inline-block;min-width:60px}.hero__scroll{position:absolute;bottom:28px;left:50%;z-index:2;display:flex;transform:translate(-50%);flex-direction:column;align-items:center;gap:10px;color:var(--color-text-muted);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.hero__scroll-line{position:relative;width:1px;height:36px;overflow:hidden;background:linear-gradient(to bottom,var(--color-text-muted),transparent)}.hero__scroll-line:after{position:absolute;top:0;right:0;left:0;height:12px;background:var(--color-accent);content:"";animation:scroll-line 1.8s ease-in-out infinite}.hero-card{position:relative;overflow:hidden;padding:20px 22px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-card);transition:border-color .3s,background .3s}.hero-card:before{position:absolute;top:0;right:0;left:0;height:1px;background:linear-gradient(90deg,transparent,var(--color-border-strong),transparent);content:"";opacity:0;transition:opacity .3s}.hero-card:hover{border-color:var(--color-border-strong)}.hero-card:hover:before{opacity:1}.hero-card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.hero-card--name{display:flex;grid-column:span 8;grid-row:span 2;flex-direction:column;justify-content:space-between;padding:28px 32px}.hero-card--status,.hero-card--pitch{grid-column:span 4}.hero-card--pitch{grid-row:span 2}.hero-card--metric{display:flex;grid-column:span 2;flex-direction:column;justify-content:space-between}.hero-card--cta{display:flex;grid-column:span 6;flex-direction:column;justify-content:center;gap:12px}.hero-mesh{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.hero-mesh__dots{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:radial-gradient(circle at 50% 40%,black 30%,transparent 75%);mask-image:radial-gradient(circle at 50% 40%,black 30%,transparent 75%)}.hero-mesh__blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:float 22s ease-in-out infinite}.hero-mesh__blob--a{top:-120px;left:-120px;width:520px;height:520px;background:radial-gradient(circle,var(--color-accent-dark) 0%,transparent 70%)}.hero-mesh__blob--b{right:-80px;bottom:-100px;width:420px;height:420px;background:radial-gradient(circle,var(--color-accent) 0%,transparent 70%);opacity:.35;animation-delay:-8s}.hero-mesh__grain{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.4 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.5'/></svg>");opacity:.05;mix-blend-mode:overlay}.pulse i{display:block;width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 #4ade8099;animation:pulse 1.6s ease-out infinite}.section{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:100px 32px}.section__head{display:flex;flex-direction:column;gap:8px;margin-bottom:48px}.section__head h2{font-size:clamp(32px,4vw,48px);font-weight:500;letter-spacing:-.03em}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-card{--mx: 50%;--my: 50%;position:relative;display:flex;min-height:270px;flex-direction:column;gap:10px;overflow:hidden;padding:28px 28px 24px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-card);transition:border-color .3s,background .3s,transform .3s}.project-card:after{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--mx) var(--my),var(--color-accent-glow),transparent 50%);content:"";opacity:0;pointer-events:none;transition:opacity .3s}.project-card:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.project-card:hover:after{opacity:1}.project-card:hover .project-card__arrow{transform:translate(2px,-2px);color:var(--color-accent)}.project-card.is-disabled{cursor:default}.project-card__head{display:flex;align-items:center;justify-content:space-between}.project-card__year,.project-card__url{color:var(--color-text-muted);font-size:11px;letter-spacing:.04em}.project-card__year{letter-spacing:.1em}.project-card__arrow{color:var(--color-text-soft);font-size:18px;transition:color .3s,transform .3s}.project-card__name{font-size:24px;letter-spacing:-.02em}.project-card__role{font-size:12px}.project-card p{flex:1;color:var(--color-text-soft);font-size:13px;text-wrap:pretty}.project-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.project-card__tags span{padding:3px 8px;border-radius:4px;background:#a78bfa14;color:var(--color-accent);font-size:11px}.project-card__url{margin-top:4px;padding-top:12px;border-top:1px dashed var(--color-border)}.timeline{overflow:hidden;border:1px solid var(--color-border);border-radius:10px;background:var(--color-border)}.stack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;background:transparent}.stack-group{padding:22px 24px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-card);transition:background .2s}.stack-group:hover{background:var(--color-card-raised)}.stack-group__title{margin-bottom:14px;color:var(--color-accent);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.stack-group__items{display:flex;flex-wrap:wrap;gap:6px}.stack-group__items li{padding:4px 9px;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:12px;transition:border-color .2s,color .2s}.stack-group__items li:hover{border-color:var(--color-accent);color:var(--color-accent)}.timeline{display:flex;flex-direction:column;gap:1px}.timeline__item{display:grid;grid-template-columns:220px 1fr;gap:32px;padding:28px 32px;background:var(--color-card);color:inherit;transition:background .2s}.timeline__item:hover{background:var(--color-card-raised)}.timeline__item[href]:hover .timeline__head h3{color:var(--color-accent);text-decoration-color:var(--color-accent)}.timeline__date{margin-bottom:6px;color:var(--color-text);font-size:12px}.timeline__type,.timeline__role{font-size:12px}.timeline__head{display:flex;align-items:baseline;gap:8px}.timeline__head h3{font-size:18px;font-weight:500;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:color .2s,text-decoration-color .2s}.timeline__role{margin:4px 0 12px;color:var(--color-accent)}.timeline__body p{max-width:64ch;color:var(--color-text-soft);font-size:13px}.timeline__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.timeline__tags span{padding:3px 8px;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-soft);font-size:11px}.contact{padding-top:120px;padding-bottom:60px}.contact__inner{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.contact__title{max-width:14ch;font-size:clamp(48px,8vw,110px);font-weight:500;letter-spacing:-.04em;line-height:.95;text-wrap:pretty}.contact__mails{display:flex;flex-direction:column;align-items:flex-start;gap:28px;margin-top:8px}.contact__mails .btn{max-width:100%}.contact__rows{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,380px));gap:14px 40px;margin-top:30px}.contact__rows>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--color-border);font-size:13px}.contact__rows>div a{color:var(--color-text);transition:color .2s}.contact__rows>div a:hover{color:var(--color-accent)}.footer{display:flex;justify-content:space-between;margin-top:80px;padding-top:22px;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:11px}.project-route,.project-detail{min-height:100vh}.project-detail__panel{display:grid;gap:24px;padding:32px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-card)}.project-detail__panel h1{margin-top:8px;font-size:clamp(36px,6vw,76px);font-weight:500;letter-spacing:-.04em}.project-detail__panel p{max-width:72ch;color:var(--color-text-soft)}.project-detail__tags{display:flex;flex-wrap:wrap;gap:8px}.project-detail__tags span{padding:4px 10px;border-radius:4px;background:#a78bfa14;color:var(--color-accent);font-size:12px}.project-detail__meta{display:flex;justify-content:space-between;padding-top:16px;border-top:1px dashed var(--color-border);font-size:13px}.back-link{display:inline-flex;margin-bottom:36px;color:var(--color-text-soft);font-size:12px;transition:color .2s}.back-link:hover{color:var(--color-accent)}@keyframes blink{50%{opacity:0}}@keyframes pulse{to{box-shadow:0 0 0 10px #4ade8000}}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-30px) scale(1.08)}66%{transform:translate(-30px,30px) scale(.95)}}@keyframes scroll-line{0%{transform:translateY(-100%)}to{transform:translateY(360%)}}@media(max-width:900px){.nav{padding:14px 18px}.nav__links,.nav__handle,.nav .btn{display:none}.hero{padding:42px 18px 88px}.hero__grid{grid-template-columns:repeat(4,1fr)}.hero-card--name,.hero-card--status,.hero-card--pitch,.hero-card--cta{grid-column:span 4;grid-row:auto}.hero-card--metric{grid-column:span 2}.section{padding:72px 18px}.projects-grid{grid-template-columns:1fr}.timeline__item{grid-template-columns:1fr;gap:12px}.contact__rows{grid-template-columns:1fr}.footer{flex-direction:column;gap:8px}}@media(max-width:560px){.hero-card{padding:18px}.hero-card--name{padding:22px}.hero-card--metric{grid-column:span 4}.contact__mails,.contact__mails .btn{width:100%}.contact__rows>div,.project-detail__meta{flex-direction:column;gap:4px}}
