:root{--bg-primary:#0a0a0f;--bg-alt:#0e0e18;--purple-primary:#7b2ff7;--purple-light:#b44aff;--purple-dark:#1a0a2e;--purple-glow:#7b2ff766;--text-primary:#e0e0e0;--text-white:#fff;--text-muted:#88a;--font-body:"Inter", sans-serif;--font-heading:"Space Grotesk", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);line-height:1.7;overflow-x:hidden}a{color:var(--purple-light);text-decoration:none;transition:color .3s}a:hover{color:var(--text-white)}img{max-width:100%;height:auto}#constellation-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}#header{z-index:100;padding:1rem 2rem;transition:background .3s,box-shadow .3s;position:fixed;top:0;left:0;right:0}#header.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0feb;box-shadow:0 2px 20px #7b2ff726}nav{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;font-size:.9rem;font-weight:500;transition:color .3s,text-shadow .3s}.nav-links a:hover,.nav-links a.active{color:var(--purple-light);text-shadow:0 0 12px var(--purple-glow)}.lang-toggle{color:var(--text-primary);cursor:pointer;font-size:.85rem;font-family:var(--font-body);background:#7b2ff726;border:1px solid #7b2ff74d;border-radius:20px;align-items:center;gap:.4rem;padding:.4rem .8rem;transition:all .3s;display:flex}.lang-toggle:hover{border-color:var(--purple-primary);box-shadow:0 0 15px var(--purple-glow);background:#7b2ff74d}.hero{z-index:1;text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative}.hero-content{max-width:700px}.hero-greeting{color:var(--purple-light);letter-spacing:1px;opacity:0;margin-bottom:.5rem;font-size:1.1rem;font-weight:400;animation:.8s .3s forwards fadeInUp}.hero-name{font-family:var(--font-heading);color:var(--text-white);text-shadow:0 0 30px var(--purple-glow);opacity:0;margin-bottom:1rem;font-size:clamp(2.5rem,8vw,5rem);font-weight:700;line-height:1.1;animation:.8s .6s forwards fadeInUp}.hero-title{color:var(--text-muted);opacity:0;min-height:2rem;margin-bottom:2rem;font-size:clamp(1rem,3vw,1.5rem);font-weight:300;animation:.8s .9s forwards fadeInUp}.hero-title .cursor{background:var(--purple-light);vertical-align:text-bottom;width:2px;height:1.2em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.hero-cta{border:1px solid var(--purple-primary);color:var(--purple-light);letter-spacing:1px;opacity:0;border-radius:30px;padding:.8rem 2.5rem;font-size:.95rem;font-weight:500;transition:all .3s;animation:.8s 1.2s forwards fadeInUp;display:inline-block}.hero-cta:hover{background:var(--purple-primary);color:var(--text-white);box-shadow:0 0 25px var(--purple-glow);transform:translateY(-2px)}.showcase-section{z-index:1;height:300vh;position:relative}.showcase-sticky{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.showcase-label{font-family:var(--font-heading);color:var(--text-white);text-shadow:0 0 20px var(--purple-glow);letter-spacing:1px;font-size:clamp(1.4rem,3vw,2rem)}.monitor-scene{perspective:1600px;perspective-origin:50% 40%;flex-direction:column;align-items:center;display:flex}.monitor-wrapper{flex-direction:column;align-items:center;display:flex}.monitor{width:500px;height:330px;transform-style:preserve-3d;transition:transform 50ms linear;position:relative}.monitor-face{backface-visibility:hidden;border:2px solid #7b2ff74d;border-radius:12px;width:500px;height:330px;position:absolute;overflow:hidden;box-shadow:0 0 40px #7b2ff71f}.monitor-front{transform:translateZ(250px)}.monitor-right{transform:rotateY(90deg)translateZ(250px)}.monitor-back{transform:rotateY(180deg)translateZ(250px)}.monitor-left{transform:rotateY(-90deg)translateZ(250px)}.monitor-base{background:linear-gradient(#2a2a3a,#1a1a2a);border-radius:0 0 4px 4px;width:160px;height:10px;margin-top:6px;position:relative}.monitor-stand{clip-path:polygon(15% 0%,85% 0%,100% 100%,0% 100%);background:linear-gradient(#1a1a2a,#0f0f1a);width:70px;height:40px;margin-top:-2px}.code-window{background:#12121f;flex-direction:column;width:100%;height:100%;display:flex}.code-titlebar{background:#1a1a2e;border-bottom:1px solid #7b2ff726;align-items:center;gap:7px;padding:10px 16px;display:flex}.dot{border-radius:50%;width:12px;height:12px}.dot.red{background:#ff5f57}.dot.yellow{background:#ffbd2e}.dot.green{background:#28ca42}.code-filename{color:var(--text-muted);margin-left:10px;font-family:SF Mono,Fira Code,monospace;font-size:.8rem}.code-content{color:#c0c0d0;flex:1;margin:0;padding:16px 20px;font-family:SF Mono,Fira Code,Courier New,monospace;font-size:.85rem;line-height:1.7;overflow:hidden}.code-content .kw{color:#c678dd}.code-content .str{color:#98c379}.code-content .fn{color:#61afef}.code-content .dec{color:#e5c07b}.code-content .tp{color:#56b6c2}.code-content .key{color:#e06c75}.code-content .num{color:#d19a66}.showcase-caption{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}.caption-item{color:var(--text-muted);border:1px solid #0000;border-radius:20px;padding:.4rem 1rem;font-size:.85rem;transition:all .4s}.caption-item.active{color:var(--purple-light);text-shadow:0 0 10px var(--purple-glow);background:#7b2ff71a;border-color:#7b2ff766}@media (width<=768px){.showcase-section{height:250vh}.monitor,.monitor-face{width:240px;height:158px}.monitor-front{transform:translateZ(120px)}.monitor-right{transform:rotateY(90deg)translateZ(120px)}.monitor-back{transform:rotateY(180deg)translateZ(120px)}.monitor-left{transform:rotateY(-90deg)translateZ(120px)}.code-content{padding:8px 10px;font-size:.55rem}.code-titlebar{padding:6px 10px}.dot{width:8px;height:8px}.showcase-caption{gap:.8rem}.caption-item{padding:.3rem .7rem;font-size:.75rem}}.section{z-index:1;padding:6rem 2rem;position:relative}.section-alt{background:#0e0e1899}.container{max-width:1000px;margin:0 auto}.section-title{font-family:var(--font-heading);color:var(--text-white);text-align:center;text-shadow:0 0 20px var(--purple-glow);margin-bottom:3rem;font-size:clamp(1.8rem,4vw,2.5rem);position:relative}.section-title:after{content:"";background:linear-gradient(90deg, var(--purple-primary), var(--purple-light));border-radius:2px;width:60px;height:3px;margin:.8rem auto 0;display:block}.about-intro{text-align:center;color:var(--purple-light);margin-bottom:1.5rem;font-size:1.1rem;font-weight:500}.about-text{text-align:center;max-width:800px;color:var(--text-muted);white-space:pre-line;margin:0 auto 3rem;line-height:1.8}.tech-grid{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:1.5rem;max-width:700px;margin:2.5rem auto 0;display:grid}.tech-item{background:#7b2ff70d;border:1px solid #7b2ff71a;border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;transition:all .3s;display:flex}.tech-item:hover{background:#7b2ff71f;border-color:#7b2ff74d;transform:translateY(-4px);box-shadow:0 8px 25px #7b2ff726}.tech-item img{width:40px;height:40px}.tech-item span{color:var(--text-muted);text-align:center;font-size:.75rem}.career-content{border-left:3px solid var(--purple-primary);background:#7b2ff708;border-radius:0 12px 12px 0;max-width:800px;margin:0 auto;padding:2rem}.career-text{color:var(--text-muted);white-space:pre-line;line-height:1.9}.hobby-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.hobby-card{background:#7b2ff70d;border:1px solid #7b2ff71f;border-radius:16px;padding:2rem;transition:all .4s}.hobby-card:hover{background:#7b2ff71a;border-color:#7b2ff74d;transform:translateY(-6px);box-shadow:0 12px 40px #7b2ff726}.hobby-icon{width:48px;height:48px;color:var(--purple-light);justify-content:center;align-items:center;margin-bottom:1rem;display:flex}.hobby-icon svg{width:100%;height:100%}.hobby-card h3{font-family:var(--font-heading);color:var(--text-white);margin-bottom:.75rem;font-size:1.2rem}.hobby-card p{color:var(--text-muted);font-size:.92rem;line-height:1.7}.contact-text{text-align:center;color:var(--text-muted);margin-bottom:2.5rem;font-size:1.1rem}.contact-links{flex-wrap:wrap;justify-content:center;gap:2.5rem;display:flex}.contact-link{color:var(--text-primary);background:#7b2ff70f;border:1px solid #7b2ff726;border-radius:16px;flex-direction:column;align-items:center;gap:.75rem;min-width:130px;padding:1.5rem 2rem;transition:all .4s;display:flex}.contact-link svg{width:40px;height:40px;color:var(--purple-light);transition:all .3s}.contact-link span{font-size:.9rem;font-weight:500}.contact-link:hover{border-color:var(--purple-primary);color:var(--text-white);background:#7b2ff726;transform:translateY(-6px);box-shadow:0 12px 40px #7b2ff733}.contact-link:hover svg{color:var(--text-white);filter:drop-shadow(0 0 8px var(--purple-glow))}footer{z-index:1;text-align:center;color:var(--text-muted);border-top:1px solid #7b2ff71a;padding:2rem;font-size:.85rem;position:relative}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(30px)}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media (width<=1024px){.nav-links{gap:1.2rem}.hobby-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}@media (width<=768px){#header{padding:.8rem 1rem}.nav-links{display:none}.lang-toggle{margin-left:auto}.section{padding:4rem 1.2rem}.hero{padding:1.5rem}.tech-grid{grid-template-columns:repeat(3,1fr);gap:1rem}.hobby-grid{grid-template-columns:1fr}.career-content{padding:1.5rem}.contact-links{gap:1.5rem}.contact-link{min-width:100px;padding:1.2rem 1.5rem}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--purple-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--purple-primary)}::selection{color:var(--text-white);background:#7b2ff766}
