*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-snap-type:y proximity}:root{--bg: #08090b;--bg-elevated: #0e1013;--bg-surface: #0c0d10;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .22);--text-primary: #edeef0;--text-secondary: #9aa0aa;--text-muted: #565c66;--accent: #ffb020;--accent-dim: rgba(255, 176, 32, .1);--accent-border: rgba(255, 176, 32, .35);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Space Grotesk", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);line-height:1.6;overflow-x:hidden;min-height:100vh}.page{position:relative;z-index:3;min-height:100vh}.backdrop{position:fixed;inset:0;z-index:0;pointer-events:none}.grid-lines{position:absolute;inset:0;background-image:linear-gradient(to right,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,black 40%,transparent 90%)}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--accent);transform-origin:left;transform:scaleX(0);z-index:200}@supports (animation-timeline: scroll(root)){.scroll-progress{animation:grow-progress linear forwards;animation-timeline:scroll(root)}}@keyframes grow-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.side-nav{position:fixed;left:clamp(16px,3vw,40px);top:50%;transform:translateY(-50%);z-index:150;display:flex;flex-direction:column;gap:4px}.side-nav-item{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text-muted);border-left:1px solid var(--border);padding:8px 4px 8px 14px;transition:color .25s ease,border-color .25s ease}.side-nav-index{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em}.side-nav-label{font-size:.75rem;font-weight:500;opacity:0;transform:translate(-4px);transition:opacity .25s ease,transform .25s ease;white-space:nowrap}.side-nav-item:hover,.side-nav-item:focus-visible{color:var(--text-primary)}.side-nav-item:hover .side-nav-label,.side-nav-item:focus-visible .side-nav-label,.side-nav-item.active .side-nav-label{opacity:1;transform:translate(0)}.side-nav-item.active{color:var(--accent);border-left-color:var(--accent)}@media(max-width:900px){.side-nav{left:auto;right:14px}.side-nav-item{border-left:none;padding-left:0;justify-content:flex-end}.side-nav-index,.side-nav-label{display:none}.side-nav-item:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--border-strong);transition:background .25s ease,transform .25s ease}.side-nav-item.active:before{background:var(--accent);transform:scale(1.4)}}.top{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px clamp(24px,5vw,80px);background:#08090bb8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-strong);border-radius:8px;font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--text-primary)}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-name{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-primary)}.brand-tagline{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted);letter-spacing:.02em}.section{max-width:1200px;margin:0 auto;padding:96px clamp(24px,5vw,80px);scroll-snap-align:start;scroll-margin-top:0}.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:none}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;padding:28px}.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:start;min-height:calc(100vh - 79px);padding-top:64px;padding-bottom:64px}.hero-card{display:flex;flex-direction:column;gap:22px}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em;color:var(--accent);width:fit-content}.eyebrow:before{content:"";width:6px;height:6px;background:var(--accent);border-radius:50%}.hero h1{font-family:var(--font-display);font-size:clamp(2.1rem,4.2vw,3.3rem);font-weight:600;line-height:1.15;color:var(--text-primary);max-width:16ch}.lead{font-size:1.02rem;color:var(--text-secondary);max-width:480px;line-height:1.7}.hero-actions{display:flex;gap:12px;margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border-radius:4px;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s ease;cursor:pointer;border:1px solid transparent;font-family:inherit}.btn.primary{background:var(--accent);color:#14100a}.btn.primary:hover{background:#ffc247}.btn.ghost{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}.btn.ghost:hover{border-color:var(--accent-border);color:var(--accent)}.btn.small{padding:9px 16px;font-size:.78rem}.stat-row{display:flex;gap:40px;margin-top:20px;padding-top:24px;border-top:1px solid var(--border)}.stat{display:flex;flex-direction:column;gap:6px;max-width:160px}.stat-value{font-family:var(--font-display);font-size:clamp(2rem,3.6vw,2.6rem);font-weight:600;line-height:1;color:var(--text-primary)}.stat-label{font-size:.78rem;color:var(--text-secondary);line-height:1.4}.hero-panel{display:flex;align-items:center;gap:20px}.avatar-shell img{width:68px;height:68px;border-radius:6px;object-fit:cover;border:1px solid var(--border-strong);filter:grayscale(1)}.hero-panel-copy h3{font-family:var(--font-display);font-size:.95rem;font-weight:600;margin-bottom:10px}.hero-panel-copy ul{list-style:none;display:flex;flex-direction:column;gap:7px}.hero-panel-copy li{font-size:.84rem;color:var(--text-secondary);display:flex;align-items:baseline;gap:8px}.hero-panel-copy li:before{content:"›";color:var(--accent);font-family:var(--font-mono)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px}.section-head h2,.about-story h2{font-family:var(--font-display);font-size:1.7rem;font-weight:600;color:var(--text-primary)}.section-index{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);letter-spacing:.05em}.section-head .lead{max-width:380px;text-align:right}.about{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:start}.about-story h2{margin-bottom:16px}.about-story p,.panel p{color:var(--text-secondary);margin-bottom:12px}.about-story p:last-child,.panel p:last-child{margin-bottom:0}.about-stack{display:flex;flex-direction:column;gap:16px}.panel h3{font-family:var(--font-display);font-size:1rem;font-weight:600;margin-bottom:14px}.pill-grid{display:flex;flex-wrap:wrap;gap:8px}.pill-grid span{padding:7px 14px;background:transparent;border:1px solid var(--border);border-radius:4px;font-family:var(--font-mono);font-size:.76rem;color:var(--text-secondary);transition:border-color .2s ease,color .2s ease}.pill-grid span:hover{border-color:var(--accent-border);color:var(--accent)}.projects{display:flex;flex-direction:column;gap:32px}.github-panel{margin-top:8px}.github-head{display:flex;align-items:center;gap:16px;margin-bottom:24px}.github-head .avatar-shell img{width:48px;height:48px}.panel-title{font-family:var(--font-display);font-size:.95rem;font-weight:600;margin-bottom:2px}.panel-subtitle{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted)}.muted{color:var(--text-muted);font-size:.9rem}.repo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}.repo-card{display:block;padding:18px;background:var(--bg);text-decoration:none;transition:background .2s ease}.repo-card:hover{background:var(--bg-surface)}.repo-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}.repo-name{font-weight:600;color:var(--text-primary);font-size:.92rem}.repo-meta{font-family:var(--font-mono);font-size:.66rem;color:var(--text-muted);white-space:nowrap}.repo-desc{font-size:.84rem;color:var(--text-secondary);margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.repo-tags{display:flex;flex-wrap:wrap;gap:12px}.repo-tags span{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted)}.contact{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:70vh;gap:24px}.contact .section-index{align-self:flex-start}.contact h2{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:600}.footer{text-align:center;padding:32px 0 48px;color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem}@media(max-width:1024px){.hero{grid-template-columns:1fr;gap:32px;min-height:auto}.about{grid-template-columns:1fr}.project-grid{grid-template-columns:repeat(2,1fr)}.section-head{flex-direction:column;align-items:flex-start;gap:8px}.section-head .lead{text-align:left}}@media(max-width:768px){.top{padding:16px 20px}.brand-tagline{display:none}.hero{padding-top:40px}.stat-row{flex-wrap:wrap;gap:20px}.project-grid,.repo-grid{grid-template-columns:1fr}.section{padding:64px 20px}}@media(max-width:480px){.hero h1{font-size:1.7rem;max-width:none}.hero-actions{flex-direction:column}.btn{width:100%}.hero-panel{flex-direction:column;align-items:flex-start;gap:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;scroll-snap-type:none}.reveal{transition:none}.scroll-progress{animation:none!important}}
