:root{--ink:#0a0912;--ink-2:#14121f;--surface:#1b1830;--line:rgba(163,150,210,.16);--paper:#edeaf7;--muted:#9d97c2;--magenta:#ff3d8a;--cyan:#35e5d0;--amber:#ffb43a;--radius:3px;--chamfer:14px;--maxw:1180px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--paper);font-family:IBM Plex Sans,system-ui,sans-serif;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;position:relative}::selection{background:var(--magenta);color:var(--ink)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--cyan),var(--magenta));border-radius:6px}body:before{inset:0;z-index:4000;opacity:.05;background-image:radial-gradient(rgba(163,150,210,.9) 1px,transparent 1.3px);background-size:14px 14px}body:after,body:before{content:"";position:fixed;pointer-events:none}body:after{left:0;right:0;height:34vh;z-index:4001;background:linear-gradient(180deg,transparent,rgba(53,229,208,.05),transparent);animation:sweep 9s linear infinite}@keyframes sweep{0%{transform:translateY(-42vh)}to{transform:translateY(120vh)}}.wrap{width:min(92%,var(--maxw));margin-inline:auto}.eyebrow{font-family:JetBrains Mono,monospace;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cyan);display:inline-flex;align-items:center;gap:.6em}.eyebrow:before{content:"";width:20px;height:1px;background:var(--cyan);display:inline-block}h2.section-title{font-family:Orbitron,sans-serif;font-weight:800;font-size:clamp(1.9rem,4.6vw,3rem);line-height:1.08;letter-spacing:0;margin:.5rem 0 .8rem;text-wrap:balance}#loader{position:fixed;inset:0;z-index:999;background:var(--ink);display:grid;place-items:center;transition:opacity .6s ease,visibility .6s}#loader.done{opacity:0;visibility:hidden}#loader .ld{font-family:JetBrains Mono,monospace;letter-spacing:.3em;font-size:.8rem;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:10px}#loader .ld svg{filter:drop-shadow(0 0 6px rgba(255,61,138,.45))}#loader .bar{width:160px;height:2px;margin-top:14px;background:hsla(0,0%,100%,.08);overflow:hidden}#loader .bar:after{content:"";display:block;height:100%;width:40%;background:linear-gradient(90deg,var(--cyan),var(--magenta));animation:slide 1s ease-in-out infinite}@keyframes slide{0%{transform:translateX(-100%)}to{transform:translateX(320%)}}header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s;transition:background .3s,backdrop-filter .3s,border-color .3s;transition:background .3s,backdrop-filter .3s,border-color .3s,-webkit-backdrop-filter .3s;border-bottom:1px solid transparent}header.scrolled{background:rgba(10,9,18,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}nav{justify-content:space-between;padding:18px 0}.logo,nav{display:flex;align-items:center}.logo{font-family:Orbitron,sans-serif;font-weight:800;font-size:1.05rem;letter-spacing:.04em;gap:12px}.logo svg{filter:drop-shadow(0 0 6px rgba(255,61,138,.45))}.nav-links{display:flex;gap:30px;align-items:center}.nav-links a{font-family:JetBrains Mono,monospace;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);transition:color .2s;position:relative;padding-bottom:.3em}.nav-links a:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--cyan);box-shadow:0 0 8px var(--cyan);transition:width .25s ease}.nav-links a:hover{color:var(--paper)}.nav-links a:hover:after{width:100%}.btn{font-family:JetBrains Mono,monospace;font-weight:500;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;padding:12px 24px;cursor:pointer;border:1px solid var(--magenta);color:var(--ink);background:linear-gradient(135deg,var(--magenta),#ff6fa8);transition:transform .2s,box-shadow .2s,background .2s;display:inline-block;-webkit-clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px))}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,61,138,.3)}.btn.ghost{background:transparent;color:var(--paper);border-color:var(--line)}.btn.ghost:hover{border-color:var(--cyan);box-shadow:0 0 20px -4px var(--cyan);color:var(--cyan)}.menu-toggle{display:none;background:none;border:0;color:var(--paper);cursor:pointer}.menu-toggle svg{width:26px;height:26px}.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}#field{position:absolute;inset:0;z-index:0;width:100%;height:100%}.hero:before{inset:-20% -10%;z-index:0;opacity:.4;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 60% 45%,#000 0,transparent 68%);mask-image:radial-gradient(circle at 60% 45%,#000 0,transparent 68%)}.hero:after,.hero:before{content:"";position:absolute;pointer-events:none}.hero:after{inset:0;z-index:1;background:radial-gradient(120% 90% at 70% 40%,transparent 30%,var(--ink) 92%)}.hero-inner{position:relative;z-index:2;padding-top:90px}.hero .tag{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);-webkit-clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));font-family:JetBrains Mono,monospace;font-size:.72rem;letter-spacing:.14em;color:var(--muted);margin-bottom:26px;background:hsla(0,0%,100%,.02)}.hero .tag .pulse{width:7px;height:7px;border-radius:50%;background:var(--magenta);box-shadow:0 0 0 0 rgba(255,61,138,.6);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,61,138,.5)}70%{box-shadow:0 0 0 9px rgba(255,61,138,0)}to{box-shadow:0 0 0 0 rgba(255,61,138,0)}}.hero h1{font-family:Orbitron,sans-serif;font-weight:800;font-size:clamp(2.5rem,8.4vw,6.4rem);line-height:1.04;letter-spacing:0;margin-bottom:22px;position:relative}.hero h1 .grad{background:linear-gradient(115deg,var(--cyan) 10%,var(--magenta) 80%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero h1.run-glitch{animation:glitchmain 1.1s linear 1}.hero h1.run-glitch:after,.hero h1.run-glitch:before{content:attr(data-text);position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;font-family:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;white-space:pre-wrap}.hero h1.run-glitch:before{color:var(--cyan);animation:glitchtop 1.1s linear 1;z-index:-1}.hero h1.run-glitch:after{color:var(--magenta);animation:glitchbot 1.1s linear 1;z-index:-1}@keyframes glitchmain{0%,to{transform:translate(0)}18%{transform:translate(-2px,1px)}32%{transform:translate(2px,-1px)}46%{transform:translate(-1px)}60%{transform:translate(1px,1px)}}@keyframes glitchtop{0%{-webkit-clip-path:inset(0 0 85% 0);clip-path:inset(0 0 85% 0);transform:translate(0);opacity:0}12%{-webkit-clip-path:inset(0 0 60% 0);clip-path:inset(0 0 60% 0);transform:translate(-5px,-2px);opacity:.85}24%{-webkit-clip-path:inset(30% 0 40% 0);clip-path:inset(30% 0 40% 0);transform:translate(5px,1px);opacity:.65}40%{-webkit-clip-path:inset(10% 0 70% 0);clip-path:inset(10% 0 70% 0);transform:translate(-3px);opacity:.4}to{opacity:0}}@keyframes glitchbot{0%{-webkit-clip-path:inset(85% 0 0 0);clip-path:inset(85% 0 0 0);transform:translate(0);opacity:0}16%{-webkit-clip-path:inset(55% 0 0 0);clip-path:inset(55% 0 0 0);transform:translate(5px,2px);opacity:.85}30%{-webkit-clip-path:inset(70% 0 10% 0);clip-path:inset(70% 0 10% 0);transform:translate(-5px,-1px);opacity:.55}48%{-webkit-clip-path:inset(60% 0 5% 0);clip-path:inset(60% 0 5% 0);transform:translate(4px);opacity:.35}to{opacity:0}}.hero p.lead{font-size:clamp(1.02rem,2vw,1.3rem);max-width:560px;color:var(--muted);margin-bottom:34px}.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap}.to-top{position:fixed;right:24px;bottom:24px;z-index:60;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--ink-2);color:var(--cyan);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,border-color .25s ease,box-shadow .25s ease}.to-top.show{opacity:1;transform:translateY(0);pointer-events:auto}.to-top:hover{border-color:var(--cyan);box-shadow:0 0 20px -4px var(--cyan)}.to-top svg{width:18px;height:18px}@media (prefers-reduced-motion:reduce){.to-top{transition:opacity .15s linear}}section{padding:clamp(70px,11vw,140px) 0;position:relative}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}.about-grid{display:grid;grid-template-columns:1fr 1.15fr;grid-gap:clamp(30px,6vw,80px);gap:clamp(30px,6vw,80px);align-items:center}.about-visual{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--line);background:var(--ink-2);display:grid;place-items:center;background-image:radial-gradient(var(--line) 1px,transparent 1.3px);background-size:14px 14px}.about-visual:after,.about-visual:before{content:"";position:absolute;width:22px;height:22px;border-color:var(--cyan);border-style:solid;opacity:.7}.about-visual:before{top:0;left:0;border-width:2px 0 0 2px}.about-visual:after{bottom:0;right:0;border-width:0 2px 2px 0}.about-visual .glow{position:absolute;width:120%;height:120%;background:radial-gradient(circle at 40% 35%,rgba(255,61,138,.28),transparent 55%),radial-gradient(circle at 70% 75%,rgba(53,229,208,.28),transparent 55%);filter:blur(10px)}.about-visual .mono{position:relative;font-family:Orbitron,sans-serif;font-weight:800;font-size:clamp(4rem,12vw,7rem);background:linear-gradient(135deg,var(--cyan),var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent}.about-text p{color:var(--muted);margin-bottom:18px;max-width:52ch}.about-text p strong{color:var(--paper);font-weight:600}.stats{display:flex;gap:34px;margin-top:30px;flex-wrap:wrap}.stat .n{font-family:Orbitron,sans-serif;font-weight:800;font-size:1.7rem;color:var(--amber)}.stat .l{font-family:JetBrains Mono,monospace;font-size:.74rem;color:var(--muted);letter-spacing:.02em}.services-head{max-width:620px;margin-bottom:54px}.services-head p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:18px;gap:18px}.card{padding:30px 28px;border:1px solid var(--line);background:linear-gradient(180deg,var(--ink-2),var(--ink));position:relative;overflow:hidden;transition:transform .3s,border-color .3s}.card:before{inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(400px circle at var(--mx,50%) var(--my,0),rgba(53,229,208,.12),transparent 60%)}.card:after,.card:before{content:"";position:absolute}.card:after{top:0;right:0;width:0;height:0;border-style:solid;border-color:transparent var(--magenta) transparent transparent;border-width:0 18px 18px 0;opacity:.55;transition:opacity .25s ease,border-width .25s ease}.card:hover{transform:translateY(-5px);border-color:rgba(53,229,208,.4)}.card:hover:before{opacity:1}.card:hover:after{border-width:0 26px 26px 0;opacity:.9}.card .num{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--cyan);letter-spacing:.1em}.card h3{font-family:Orbitron,sans-serif;font-weight:700;font-size:1.2rem;margin:14px 0 10px;letter-spacing:0}.card p{color:var(--muted);font-size:.94rem}.tech-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}.tech-item{display:flex;align-items:center;gap:12px;padding:12px 20px 12px 12px;border:1px solid var(--line);background:var(--ink-2);position:relative;overflow:hidden;transition:transform .25s ease,border-color .25s ease}.tech-item:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(120px circle at 0 50%,rgba(53,229,208,.18),transparent 70%)}.tech-item:hover{transform:translateY(-4px);border-color:rgba(53,229,208,.4)}.tech-item:hover:before{opacity:1}.tech-item img{position:relative;width:32px;height:32px;padding:6px;box-sizing:content-box;background:#fff;border-radius:8px;flex-shrink:0}.tech-item span{position:relative;font-family:JetBrains Mono,monospace;font-size:.82rem;letter-spacing:.02em;color:var(--ink);white-space:nowrap}.project{grid-template-columns:1.1fr 1fr;grid-gap:40px;gap:40px;align-items:center;border:1px solid var(--line);background:var(--ink-2);margin-bottom:22px}.project,.project .pv{display:grid;overflow:hidden}.project .pv{aspect-ratio:16/11;position:relative;min-height:260px;background:radial-gradient(circle at 30% 30%,rgba(255,61,138,.32),transparent 50%),radial-gradient(circle at 75% 70%,rgba(53,229,208,.28),transparent 55%),var(--surface);place-items:center}.project .pv:before{content:"";position:absolute;top:16px;left:16px;width:7px;height:7px;border-radius:50%;background:var(--line);box-shadow:15px 0 0 var(--line),30px 0 0 var(--line)}.project .pv .pv-label{font-family:Orbitron,sans-serif;font-weight:800;font-size:clamp(1.4rem,3.6vw,2.2rem);color:rgba(237,234,247,.9);text-align:center;padding:0 20px}.project .pv .pv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project .pinfo{padding:34px clamp(24px,4vw,44px)}.project .pinfo .kind{font-family:JetBrains Mono,monospace;font-size:.72rem;letter-spacing:.18em;color:var(--cyan);text-transform:uppercase}.project .pinfo h3{font-family:Orbitron,sans-serif;font-weight:800;font-size:1.7rem;margin:10px 0 12px;letter-spacing:0}.project .pinfo p{color:var(--muted);margin-bottom:20px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.chip{font-size:.72rem;padding:5px 12px;border:1px solid rgba(53,229,208,.35);color:var(--cyan);-webkit-clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px));clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px))}.chip,.plink{font-family:JetBrains Mono,monospace}.plink{display:inline-flex;align-items:center;gap:8px;color:var(--magenta);font-weight:600;font-size:.95rem}.plink svg{width:16px;height:16px;transition:transform .2s}.plink:hover svg{transform:translate(3px,-3px)}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;grid-gap:clamp(34px,6vw,70px);gap:clamp(34px,6vw,70px);align-items:start}.contact-info .line{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line)}.contact-info .line .ic{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--line);color:var(--cyan)}.contact-info .line .ic svg{width:20px;height:20px}.contact-info .line .lbl{font-family:JetBrains Mono,monospace;font-size:.74rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.contact-info .line .val{font-size:1.02rem;color:var(--paper)}form{background:var(--ink-2);border:1px solid var(--line);padding:clamp(24px,4vw,38px);position:relative}form:after,form:before{content:"";position:absolute;width:20px;height:20px;border-color:var(--magenta);border-style:solid;opacity:.6}form:before{top:0;left:0;border-width:2px 0 0 2px}form:after{bottom:0;right:0;border-width:0 2px 2px 0}.frow{margin-bottom:18px}label{display:block;font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}input,textarea{width:100%;background:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px;color:var(--paper);font-family:IBM Plex Sans,sans-serif;font-size:.95rem;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(53,229,208,.15)}textarea{resize:vertical;min-height:120px}form .btn{width:100%;border:0;margin-top:6px;font-size:.92rem;padding:14px}form .btn:disabled{opacity:.6;cursor:not-allowed}.form-note{font-family:JetBrains Mono,monospace;font-size:.76rem;color:var(--muted)}.form-note,.form-status{margin-top:14px;text-align:center}.form-status{font-size:.9rem;min-height:1.2em}.form-status.ok{color:var(--cyan)}.form-status.err{color:var(--magenta)}footer{border-top:1px solid var(--line);padding:60px 0 40px}.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-gap:40px;gap:40px;margin-bottom:44px}footer .logo{margin-bottom:16px}footer p.desc{color:var(--muted);font-size:.92rem;max-width:34ch}.foot-col h4{font-family:Orbitron,sans-serif;font-size:.85rem;margin-bottom:16px;letter-spacing:.02em}.foot-col a{display:block;color:var(--muted);font-size:.9rem;padding:6px 0;transition:color .2s}.foot-col a:hover{color:var(--cyan)}.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;border-top:1px solid var(--line);color:var(--muted);font-size:.84rem;flex-wrap:wrap;gap:12px;font-family:JetBrains Mono,monospace}.flag{letter-spacing:.1em}#cursor-glow{position:fixed;width:380px;height:380px;border-radius:50%;pointer-events:none;z-index:3;transform:translate(-50%,-50%);mix-blend-mode:screen;background:radial-gradient(circle,rgba(53,229,208,.12),transparent 65%);transition:opacity .3s;opacity:0}@media (max-width:900px){.about-grid,.contact-grid,.project{grid-template-columns:1fr}.project .pv{min-height:200px}.foot-grid{grid-template-columns:1fr 1fr}.nav-links{display:none}.menu-toggle{display:block}.nav-links.open{display:flex;position:absolute;top:68px;right:4%;flex-direction:column;background:rgba(20,18,31,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:20px 26px;border:1px solid var(--line);gap:16px;align-items:flex-start;-webkit-clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px))}#cursor-glow{display:none}}@media (max-width:560px){.foot-grid{grid-template-columns:1fr}.stats{gap:24px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}body:after{display:none}}