.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative}.hero-label{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--accent);margin-bottom:24px;opacity:0;animation:fadeSlideUp .8s ease forwards .2s}.hero-name{font-family:Syne,sans-serif;font-size:clamp(48px,8vw,96px);font-weight:800;line-height:.95;letter-spacing:-3px;margin-bottom:24px;opacity:0;animation:fadeSlideUp .8s ease forwards .4s}.hero-name-outline{-webkit-text-stroke:1.5px var(--text-primary);color:transparent;transition:color .4s ease,-webkit-text-stroke .4s ease}.hero-name-outline:hover{color:var(--text-primary);-webkit-text-stroke:0px}.hero-tagline{font-size:18px;font-weight:300;color:var(--text-secondary);max-width:500px;line-height:1.6;opacity:0;animation:fadeSlideUp .8s ease forwards .6s}.hero-tagline em{color:var(--accent-light);font-style:normal;font-weight:400}.scroll-indicator{position:absolute;bottom:40px;left:40px;display:flex;align-items:center;gap:12px;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:3px;color:#444;text-transform:uppercase;opacity:0;animation:fadeIn 1s ease forwards 1.2s}.scroll-line{width:40px;height:1px;background:#333;position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--accent);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%{left:-100%}50%{left:0}to{left:100%}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.hero-name{letter-spacing:-2px}.hero-tagline{font-size:16px}.scroll-indicator{left:20px}}.project-card{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:60px 0;border-top:1px solid #151518;position:relative}.project-card:before{content:"";position:absolute;top:0;left:-40px;width:3px;height:0;background:linear-gradient(180deg,var(--accent),var(--accent-violet),transparent);transition:height .6s ease}.project-card:hover:before{height:100%}.project-status{display:inline-flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;width:fit-content}.status-dot{width:6px;height:6px;border-radius:50%}.status-active .status-dot{background:var(--status-active);box-shadow:0 0 8px color-mix(in srgb,var(--status-active) 25%,transparent)}.status-active{color:var(--status-active)}.status-opensource .status-dot{background:var(--status-opensource);box-shadow:0 0 8px color-mix(in srgb,var(--status-opensource) 25%,transparent)}.status-opensource{color:var(--status-opensource)}.status-archived .status-dot{background:var(--status-archived)}.status-archived{color:var(--status-archived)}.project-meta{display:flex;flex-direction:column;gap:16px}.project-name{font-family:Syne,sans-serif;font-size:36px;font-weight:700;letter-spacing:-1px;transition:color .3s ease}.project-card:hover .project-name{color:var(--accent-light)}.project-desc{font-size:15px;color:var(--text-secondary);font-weight:300;line-height:1.6}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tag{font-family:JetBrains Mono,monospace;font-size:10px;padding:4px 12px;border:1px solid var(--tag-border);border-radius:2px;color:#666;background:var(--tag-bg);transition:border-color .3s ease,color .3s ease}.project-card:hover .tag{border-color:var(--card-border-hover);color:#888}.project-features{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:16px}.project-features li{font-size:13px;color:#666;font-weight:300;padding-left:16px;position:relative}.project-features li:before{content:"—";position:absolute;left:0;color:var(--accent)}.project-link{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:1px;color:var(--accent);text-decoration:none;transition:gap .3s ease}.project-link:hover{gap:14px}.project-link .arrow{transition:transform .3s ease}.project-link:hover .arrow{transform:translate(4px)}.project-visual{display:flex;align-items:center;justify-content:center}.project-image-container{width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--card-border);transition:border-color .4s ease,transform .4s ease}.project-card:hover .project-image-container{border-color:var(--card-border-hover);transform:translateY(-4px)}.project-image{width:100%;display:block}.project-image-placeholder{width:100%;aspect-ratio:16 / 10;background:linear-gradient(135deg,#0c0c14,#12121c);border:1px solid var(--card-border);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;transition:border-color .4s ease,transform .4s ease}.project-card:hover .project-image-placeholder{border-color:var(--card-border-hover);transform:translateY(-4px)}.github-card svg{opacity:.6}.github-repo-name{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary);letter-spacing:.5px}.archived-placeholder{background:linear-gradient(135deg,#0a0a0e,#0e0e14)}.archived-project-name{font-family:Syne,sans-serif;font-size:24px;font-weight:700;color:#2a2a30;letter-spacing:-.5px}@media(max-width:1024px){.project-card{grid-template-columns:1fr;gap:32px}.project-card:before{left:-20px}}@media(max-width:768px){.project-card{padding:40px 0}.project-name{font-size:28px}}.projects-section{padding:120px 0}.section-header{display:flex;align-items:baseline;gap:20px;margin-bottom:80px}.section-number{font-family:Syne,sans-serif;font-size:14px;font-weight:700;color:var(--accent)}.section-title{font-family:Syne,sans-serif;font-size:12px;font-weight:600;letter-spacing:5px;text-transform:uppercase;color:#555}.section-line{flex:1;height:1px;background:linear-gradient(90deg,#222,transparent)}@media(max-width:768px){.projects-section{padding:80px 0}.section-header{margin-bottom:48px}}.footer{padding:60px 0;border-top:1px solid #151518}.footer-content{display:flex;justify-content:space-between;align-items:center}.footer-links{display:flex;gap:32px}.footer-link{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:1px;color:var(--text-secondary);text-decoration:none;transition:color .3s ease}.footer-link:hover{color:var(--accent-light)}.footer-copy{font-family:JetBrains Mono,monospace;font-size:11px;color:#333}@media(max-width:768px){.footer-content{flex-direction:column;gap:24px;text-align:center}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #06060a;--text-primary: #e8e6e3;--text-secondary: #777;--accent: #6366f1;--accent-violet: #8b5cf6;--accent-light: #c4b5fd;--status-active: #22c55e;--status-opensource: #3b82f6;--status-archived: #555;--card-border: #1a1a24;--card-border-hover: #2a2a3a;--tag-bg: #0c0c10;--tag-border: #1e1e24}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text-primary);font-family:Space Grotesk,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:1000}.ambient-glow{position:fixed;width:600px;height:600px;border-radius:50%;filter:blur(120px);opacity:.07;pointer-events:none}.glow-1{background:var(--accent);top:-200px;right:-100px;animation:drift 20s ease-in-out infinite}.glow-2{background:var(--accent-violet);bottom:-200px;left:-100px;animation:drift 20s ease-in-out infinite -10s}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(30px,20px)}}.container{max-width:1200px;margin:0 auto;padding:0 40px;position:relative}.scroll-reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.scroll-reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:768px){.container{padding:0 20px}}
