:root{--bg: #0a0a14;--bg-soft: #11122a;--surface: rgba(255, 255, 255, .04);--surface-strong: rgba(255, 255, 255, .08);--border: rgba(255, 255, 255, .12);--text: #e9e9f4;--text-dim: #a4a4be;--text-faint: #6f6f8a;--accent: #ff5d8f;--accent-2: #7c5cff;--accent-3: #22d3ee;--accent-4: #facc15;--grad-1: linear-gradient(135deg, #ff5d8f 0%, #7c5cff 100%);--grad-2: linear-gradient(135deg, #22d3ee 0%, #7c5cff 60%, #ff5d8f 100%);--shadow-soft: 0 20px 60px rgba(0, 0, 0, .35);--radius: 18px;--radius-sm: 10px;--font-sans: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (hover: hover) and (pointer: fine){html,body,a,button,input,textarea,label,.chip,.project-card,.skill-group{cursor:none}}.cursor{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;will-change:transform;mix-blend-mode:difference}.cursor-dot{width:8px;height:8px;background:#fff;border-radius:50%;transition:width .2s,height .2s,background .2s}.cursor-ring{width:36px;height:36px;border:1.5px solid #ffffff;border-radius:50%;transition:width .25s ease,height .25s ease,border-color .25s,background .25s,opacity .2s}.cursor--hover.cursor-dot{width:0;height:0}.cursor--hover.cursor-ring{width:56px;height:56px;background:#ffffff26;border-color:#fff}.cursor--click.cursor-dot{width:14px;height:14px}.cursor--click.cursor-ring{width:28px;height:28px}.cursor--hidden{opacity:0}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}img{max-width:100%;display:block}.bg-grid{position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(circle at 50% 30%,black 0%,transparent 80%);mask-image:radial-gradient(circle at 50% 30%,black 0%,transparent 80%);pointer-events:none;z-index:-2}.bg-blob{position:fixed;border-radius:50%;filter:blur(120px);opacity:.45;pointer-events:none;z-index:-1;animation:float 20s ease-in-out infinite}.bg-blob-1{width:480px;height:480px;background:var(--accent);top:-100px;left:-100px}.bg-blob-2{width:520px;height:520px;background:var(--accent-2);top:30%;right:-150px;animation-delay:-7s}.bg-blob-3{width:420px;height:420px;background:var(--accent-3);bottom:-100px;left:30%;animation-delay:-14s;opacity:.3}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-30px) scale(1.05)}66%{transform:translate(-30px,40px) scale(.95)}}main{max-width:1200px;margin:0 auto;padding:0 24px}.section{padding:100px 0;position:relative}.section__head{display:flex;align-items:baseline;gap:16px;margin-bottom:24px}.section__num{font-family:var(--font-mono);color:var(--accent);font-size:14px;letter-spacing:1px}.section__title{font-size:clamp(32px,4.5vw,52px);font-weight:700;margin:0;letter-spacing:-.02em}.section__lead{color:var(--text-dim);font-size:18px;max-width:640px;margin:0 0 40px;line-height:1.6}.section__lead code{font-family:var(--font-mono);background:var(--surface-strong);padding:2px 8px;border-radius:6px;font-size:.9em}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:20px 32px;transition:all .3s ease}.nav--scrolled{background:#0a0a14b3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:14px 32px}.nav__logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px}.nav__logo-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--grad-1);font-family:var(--font-mono);color:#fff;font-size:14px}.accent{background:var(--grad-1);-webkit-background-clip:text;background-clip:text;color:transparent}.nav__links{display:flex;align-items:center;gap:32px}.nav__links a{font-size:15px;color:var(--text-dim);transition:color .2s;position:relative}.nav__links a:hover{color:var(--text)}.nav__links a:not(.nav__cta):after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--grad-1);transition:width .25s ease}.nav__links a:not(.nav__cta):hover:after{width:100%}.nav__cta{background:var(--grad-1);color:#fff!important;padding:9px 18px;border-radius:100px;font-weight:500;transition:transform .2s,box-shadow .2s}.nav__cta:hover{transform:translateY(-2px);box-shadow:0 10px 30px #ff5d8f66}.nav__burger{display:none;flex-direction:column;gap:5px;padding:8px}.nav__burger span{display:block;width:24px;height:2px;background:var(--text);transition:all .3s}.nav__burger--open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav__burger--open span:nth-child(2){opacity:0}.nav__burger--open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 768px){.nav{padding:16px 20px}.nav__burger{display:flex}.nav__links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#0a0a14f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:20px;border-bottom:1px solid var(--border);transform:translateY(-10px);opacity:0;pointer-events:none;transition:all .2s}.nav__links--open{transform:translateY(0);opacity:1;pointer-events:auto}.nav__links a{width:100%;padding:12px 0;text-align:center}}.hero{min-height:100vh;display:flex;align-items:center;padding:120px 0 80px}.hero__inner{max-width:1000px}.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;background:var(--surface);border:1px solid var(--border);border-radius:100px;font-size:13px;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:28px;animation:fadeUp .6s ease both}.dot{width:8px;height:8px;border-radius:50%;background:#34d399;box-shadow:0 0 12px #34d399;animation:pulse 2s ease-in-out infinite}.dot--red{background:#ff5f56;box-shadow:none;animation:none}.dot--yellow{background:#ffbd2e;box-shadow:none;animation:none}.dot--green{background:#27c93f;box-shadow:none;animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hero__title{font-size:clamp(48px,9vw,110px);line-height:1.02;font-weight:700;letter-spacing:-.04em;margin:0 0 28px;animation:fadeUp .7s .05s ease both}.gradient-text{background:var(--grad-1);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.gradient-text-2{background:var(--grad-2);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block;position:relative}.underline-wavy{position:relative;display:inline-block}.underline-wavy:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:12px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'><path d='M0 6 Q 15 0 30 6 T 60 6 T 90 6 T 120 6' stroke='%23ff5d8f' stroke-width='3' fill='none' stroke-linecap='round'/></svg>") repeat-x;background-size:120px 12px}.hero__subtitle{font-size:clamp(18px,2vw,22px);color:var(--text-dim);max-width:640px;line-height:1.6;margin:0 0 40px;animation:fadeUp .7s .15s ease both}.hero__actions{display:flex;gap:16px;flex-wrap:wrap;animation:fadeUp .7s .25s ease both}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:100px;font-size:15px;font-weight:500;transition:transform .2s,box-shadow .2s,background .2s}.btn--primary{background:var(--grad-1);color:#fff;box-shadow:0 10px 30px #ff5d8f4d}.btn--primary:hover{transform:translateY(-3px);box-shadow:0 14px 40px #ff5d8f80}.btn--ghost{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn--ghost:hover{background:var(--surface-strong);transform:translateY(-3px)}.hero__scroll{margin-top:80px;display:flex;align-items:center;gap:12px;font-size:12px;font-family:var(--font-mono);color:var(--text-faint);letter-spacing:2px;text-transform:uppercase;animation:fadeUp .7s .4s ease both}.hero__scroll-line{width:60px;height:1px;background:linear-gradient(to right,var(--text-faint),transparent);position:relative;overflow:hidden}.hero__scroll-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);animation:scrollLine 2s ease-in-out infinite}@keyframes scrollLine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}@media (max-width: 900px){.about{grid-template-columns:1fr;gap:40px}}.about__text p{font-size:17px;line-height:1.7;color:var(--text-dim);margin:0 0 20px}.about__text strong{color:var(--text);font-weight:600}.about__facts{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:14px}.about__facts li{display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:transform .2s,border-color .2s}.about__facts li:hover{transform:translate(6px);border-color:var(--accent)}.about__fact-num{font-family:var(--font-mono);font-weight:700;font-size:22px;background:var(--grad-1);-webkit-background-clip:text;background-clip:text;color:transparent;min-width:60px}.about__card{background:#11122a99;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.about__card-header{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--border);background:#0003}.about__card-title{margin-left:12px;font-family:var(--font-mono);font-size:13px;color:var(--text-faint)}.about__code{margin:0;padding:24px;font-family:var(--font-mono);font-size:14px;line-height:1.7;color:var(--text);overflow-x:auto}.projects__filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}.chip{padding:8px 18px;border:1px solid var(--border);border-radius:100px;font-size:14px;color:var(--text-dim);background:var(--surface);transition:all .2s}.chip:hover{color:var(--text);border-color:var(--accent)}.chip--active{background:var(--grad-1);border-color:transparent;color:#fff}.projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}.project-card{--accent: #ff5d8f;position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .35s ease,border-color .3s,box-shadow .35s;display:flex;flex-direction:column}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius);padding:1px;background:linear-gradient(135deg,var(--accent),transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s;pointer-events:none}.project-card:hover{transform:translateY(-8px);box-shadow:0 30px 60px #0006}.project-card:hover:before{opacity:1}.project-card__media{aspect-ratio:16 / 9;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 40%,var(--bg)));position:relative;overflow:hidden}.project-card__media img{width:100%;height:100%;object-fit:cover}.project-card__placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:56px;font-weight:700;color:#fffffff2;letter-spacing:-2px;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.2),transparent 50%),radial-gradient(circle at 80% 80%,rgba(0,0,0,.2),transparent 50%)}.project-card__body{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}.project-card__title{font-size:22px;margin:0;font-weight:700}.project-card__tagline{color:var(--text);font-size:15px;margin:0;font-weight:500}.project-card__description{color:var(--text-dim);font-size:14px;line-height:1.6;margin:0;flex:1}.project-card__tech{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}.project-card__tech li{font-family:var(--font-mono);font-size:11px;padding:4px 10px;background:var(--surface-strong);border-radius:100px;color:var(--text-dim)}.project-card__links{display:flex;gap:18px;margin-top:12px;padding-top:16px;border-top:1px solid var(--border)}.project-card__links a{font-size:14px;font-weight:500;color:var(--text);transition:color .2s,transform .2s;display:inline-flex;align-items:center;gap:4px}.project-card__links a:hover{color:var(--accent);transform:translate(3px)}.skills__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:60px}.skill-group{--accent: #ff5d8f;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:transform .3s,border-color .3s;position:relative;overflow:hidden}.skill-group:before{content:"";position:absolute;top:0;left:0;width:60px;height:60px;background:radial-gradient(circle at top left,var(--accent),transparent 70%);opacity:.4}.skill-group:hover{transform:translateY(-6px);border-color:var(--accent)}.skill-group__title{margin:0 0 16px;font-size:18px;font-weight:700;color:var(--accent);position:relative}.skill-group__items{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.skill-group__items li{font-family:var(--font-mono);font-size:12.5px;padding:6px 12px;background:var(--surface-strong);border-radius:8px;color:var(--text);transition:background .2s}.skill-group__items li:hover{background:color-mix(in srgb,var(--accent) 20%,var(--surface-strong))}.skills__marquee{overflow:hidden;margin:0 -24px;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}.skills__marquee-track{display:flex;gap:0;animation:marquee 28s linear infinite;width:max-content}.skills__marquee-group{display:flex;gap:60px;padding-right:60px}.skills__marquee-group span{font-family:var(--font-mono);font-size:32px;font-weight:700;color:var(--text-faint);white-space:nowrap;transition:color .3s}.skills__marquee-group span:hover{color:var(--accent)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.contact{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}@media (max-width: 900px){.contact{grid-template-columns:1fr}}.contact__form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:20px}.contact__form label{display:flex;flex-direction:column;gap:8px}.contact__form label span{font-size:13px;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.5px}.contact__form input,.contact__form textarea{font-family:var(--font-sans);font-size:15px;background:#00000040;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;color:var(--text);transition:border-color .2s,background .2s;resize:vertical}.contact__form input::placeholder,.contact__form textarea::placeholder{color:var(--text-faint)}.contact__form input:focus,.contact__form textarea:focus{outline:none;border-color:var(--accent);background:#00000059}.contact__form button{align-self:flex-start}.contact__status{margin:0;font-size:14px;font-family:var(--font-mono)}.contact__status--ok{color:#34d399}.contact__status--ok a{color:var(--accent);text-decoration:underline}.contact__status--err{color:#f87171}.contact__aside h3{font-size:14px;text-transform:uppercase;letter-spacing:2px;color:var(--text-faint);font-family:var(--font-mono);font-weight:500;margin:0 0 16px}.contact__socials{list-style:none;padding:0;margin:0 0 32px;display:grid;gap:10px}.contact__socials a{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all .2s}.contact__socials a:hover{border-color:var(--accent);transform:translate(6px);background:var(--surface-strong)}.contact__socials-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--grad-1);color:#fff}.contact__socials-arrow{margin-left:auto;color:var(--text-faint);font-size:18px;transition:transform .2s}.contact__socials a:hover .contact__socials-arrow{transform:translate(4px,-4px);color:var(--accent)}.contact__card{padding:24px;background:linear-gradient(135deg,#ff5d8f1a,#7c5cff1a);border:1px solid var(--border);border-radius:var(--radius)}.contact__card-eyebrow{margin:0 0 8px;font-family:var(--font-mono);font-size:12px;color:var(--text-faint);letter-spacing:1px;text-transform:uppercase}.contact__card-text{margin:0;display:flex;align-items:center;gap:10px;font-size:15px}.footer{padding:40px 24px;border-top:1px solid var(--border);margin-top:60px}.footer__inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--text-faint);font-family:var(--font-mono);flex-wrap:wrap;gap:16px}.footer__top{color:var(--text-dim);transition:color .2s}.footer__top:hover{color:var(--accent)}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface-strong);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}
