:root{--bg-primary:#05070d;--bg-surface:#0a0e18;--bg-card:#0e1420;--bg-elevated:#151d2e;--bg-hover:#1a2438;--border:#94a3b814;--border-hover:#2dd4bf59;--border-strong:#94a3b824;--accent:#2dd4bf;--accent-bright:#5eead4;--accent-dim:#14b8a6;--accent-glow:#2dd4bf1f;--accent-glow-strong:#2dd4bf38;--violet:#a78bfa;--violet-dim:#8b5cf6;--violet-glow:#a78bfa1a;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-dim:#475569;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:72px;--space-4xl:112px;--max-width:1120px;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--ease:cubic-bezier(.22, 1, .36, 1);--shadow-card:0 0 0 1px var(--border), 0 8px 32px #00000059;--shadow-glow:0 0 40px var(--accent-glow)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);flex-direction:column;min-height:100vh;line-height:1.65;display:flex;overflow-x:clip}html{overflow-x:clip}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#94a3b808 1px,#0000 1px),linear-gradient(90deg,#94a3b808 1px,#0000 1px);background-size:64px 64px;position:fixed;inset:0;mask-image:radial-gradient(80% 60% at 50% 0,#000 20%,#0000 70%)}img{max-width:100%;height:auto;display:block}a{color:var(--accent);transition:color .2s var(--ease);text-decoration:none}a:hover{color:var(--accent-bright)}main{z-index:1;flex:1;position:relative}.container{width:100%;max-width:var(--max-width);padding:0 var(--space-lg);margin:0 auto}h1,h2,h3,h4{letter-spacing:-.03em;font-weight:700;line-height:1.15}h1{letter-spacing:-.04em;font-size:clamp(2.25rem,5.5vw,3.75rem)}h2{margin-bottom:var(--space-lg);font-size:clamp(1.5rem,3vw,2.15rem)}h3{margin-bottom:var(--space-sm);letter-spacing:-.02em;font-size:1.15rem}.text-gradient{background:linear-gradient(135deg, var(--accent-bright) 0%, var(--accent) 40%, var(--violet) 100%);-webkit-text-fill-color:transparent;background-clip:text}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.pretitle{align-items:center;gap:var(--space-sm);text-transform:uppercase;letter-spacing:.18em;color:var(--accent);margin-bottom:var(--space-md);font-size:.75rem;font-weight:600;font-family:var(--font-mono);display:inline-flex}.pretitle:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:2.4s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.nav{z-index:100;-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom:1px solid var(--border);background:#05070db8;position:sticky;top:0}.nav-inner{height:68px;max-width:var(--max-width);padding:0 var(--space-lg);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-logo{letter-spacing:-.04em;color:var(--text-primary);font-size:1.3rem;font-weight:800;transition:opacity .2s}.nav-logo:hover{color:var(--text-primary);opacity:.9}.nav-logo span{background:linear-gradient(135deg, var(--accent), var(--violet));-webkit-text-fill-color:transparent;background-clip:text}.nav-links{align-items:center;gap:4px;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);border-radius:var(--radius-sm);padding:8px 14px;font-size:.875rem;font-weight:500;transition:color .2s,background .2s}.nav-links a:hover{color:var(--text-primary);background:var(--bg-elevated)}.nav-links a[aria-current=page]{color:var(--accent-bright);background:var(--accent-glow)}.nav-toggle{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:border-color .2s;display:none}.nav-toggle:hover{border-color:var(--border-hover)}.nav-toggle-icon{flex-direction:column;gap:5px;width:18px;display:flex}.nav-toggle-icon span{background:var(--text-primary);height:2px;transition:transform .25s var(--ease), opacity .2s;border-radius:1px;display:block}.nav-toggle[aria-expanded=true] .nav-toggle-icon span:first-child{transform:translateY(7px)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-icon span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] .nav-toggle-icon span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (width<=768px){.nav-toggle{display:flex}.nav-links{backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:var(--space-md);background:#05070df7;flex-direction:column;align-items:stretch;gap:4px;display:none;position:absolute;top:68px;left:0;right:0}.nav-links.open{display:flex}.nav-links li{width:100%}.nav-links a{border-radius:var(--radius-md);padding:14px 16px;font-size:1rem;display:block}}.btn{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);font-size:.9rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:transform .2s var(--ease), box-shadow .2s, background .2s, border-color .2s, color .2s;border:none;padding:13px 26px;line-height:1;text-decoration:none;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dim) 100%);color:#042f2e;box-shadow:0 0 0 1px #2dd4bf4d, 0 4px 20px var(--accent-glow)}.btn-primary:hover{box-shadow:0 0 0 1px #2dd4bf80, 0 8px 28px var(--accent-glow-strong);color:#042f2e;transform:translateY(-2px)}.btn-secondary{border:1px solid var(--border-strong);color:var(--text-primary);background:0 0}.btn-secondary:hover{border-color:var(--accent);color:var(--accent-bright);background:var(--accent-glow)}.btn-group{gap:var(--space-md);flex-wrap:wrap;display:flex}.hero{padding:var(--space-4xl) 0 var(--space-3xl);position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle, var(--accent-glow) 0%, transparent 60%);pointer-events:none;width:700px;height:700px;position:absolute;top:-20%;right:-10%}.hero:after{content:"";background:radial-gradient(circle, var(--violet-glow) 0%, transparent 65%);pointer-events:none;width:500px;height:500px;position:absolute;bottom:-30%;left:-15%}.hero .container{z-index:1;position:relative}.hero h1{margin-bottom:var(--space-lg);max-width:820px}.hero-lead{color:var(--text-secondary);max-width:580px;margin-bottom:var(--space-xl);font-size:clamp(1.05rem,2vw,1.2rem);line-height:1.75}.hero-stats{gap:var(--space-2xl);margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.hero-stat strong{letter-spacing:-.03em;background:linear-gradient(135deg, var(--text-primary), var(--accent-bright));-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:2px;font-size:1.75rem;font-weight:800;display:block}.hero-stat span{color:var(--text-muted);font-size:.8rem;font-weight:500}.section{padding:var(--space-3xl) 0;position:relative}.section-header{margin-bottom:var(--space-2xl)}.section-header .label{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);margin-bottom:var(--space-sm);font-size:.75rem;font-weight:600;font-family:var(--font-mono);align-items:center;gap:var(--space-sm);display:flex}.section-header .label:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%}.section-header p{color:var(--text-secondary);max-width:560px;font-size:1.05rem}.section-footer{margin-top:var(--space-xl);text-align:center}.project-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:0;height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.project-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.project-card:hover:before{opacity:1}.project-card .card-link{color:inherit;flex-direction:column;height:100%;text-decoration:none;display:flex}.project-card .card-link:hover{color:inherit}.project-card .icon{width:48px;height:48px;margin-bottom:var(--space-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.project-card h3{margin-bottom:var(--space-sm);font-size:1.1rem}.project-card p{color:var(--text-muted);margin-bottom:var(--space-lg);flex:1;font-size:.875rem;line-height:1.65}.project-card .tech-tags{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.tech-tag{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border);font-size:.7rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.02em;border-radius:999px;padding:4px 10px}.project-card-featured{grid-column:span 1}@media (width>=700px){.project-list{gap:var(--space-md);flex-direction:column;display:flex}.project-row{gap:var(--space-lg);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);grid-template-columns:64px 1fr auto;align-items:start;display:grid}.project-row:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translate(4px)}.project-row .icon{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.6rem;display:flex}.project-row h3{margin-bottom:6px;font-size:1.15rem}.project-row p{color:var(--text-muted);margin-bottom:var(--space-md);font-size:.9rem;line-height:1.65}.project-row .tech-tags{flex-wrap:wrap;gap:6px;display:flex}.project-row .row-index{font-family:var(--font-mono);color:var(--text-dim);padding-top:4px;font-size:.75rem}}@media (width<=699px){.project-list{gap:var(--space-md);grid-template-columns:1fr;display:grid}.project-row{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl)}.project-row .icon{width:48px;height:48px;margin-bottom:var(--space-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.project-row h3{margin-bottom:var(--space-sm)}.project-row p{color:var(--text-muted);margin-bottom:var(--space-md);font-size:.875rem;line-height:1.65}.project-row .tech-tags{flex-wrap:wrap;gap:6px;display:flex}.project-row .row-index{display:none}}.about-card{gap:var(--space-xl);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-2xl);align-items:center;display:flex;position:relative;overflow:hidden}.about-card:before{content:"";background:linear-gradient(135deg, var(--accent-glow) 0%, transparent 50%, var(--violet-glow) 100%);pointer-events:none;position:absolute;inset:0}.about-card>*{z-index:1;position:relative}.about-card .avatar{background:linear-gradient(135deg, var(--accent), var(--violet));width:88px;height:88px;color:var(--bg-primary);box-shadow:0 0 32px var(--accent-glow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.7rem;font-weight:800;display:flex}.about-card .text h3{margin-bottom:4px;font-size:1.35rem}.about-card .text .role{color:var(--accent);margin-bottom:var(--space-sm);font-size:.875rem;font-weight:600;font-family:var(--font-mono)}.about-card .text p{color:var(--text-secondary);font-size:.95rem;line-height:1.7}.about-prose{max-width:720px}.about-prose h2{margin-top:var(--space-2xl);margin-bottom:var(--space-md);align-items:center;gap:var(--space-sm);font-size:1.35rem;display:flex}.about-prose h2:before{content:"";background:linear-gradient(180deg, var(--accent), var(--violet));border-radius:2px;flex-shrink:0;width:3px;height:1.1em}.about-prose p{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:1rem;line-height:1.8}.tech-cloud{gap:var(--space-sm);margin-bottom:var(--space-2xl);flex-wrap:wrap;display:flex}.tech-cloud .tech-tag{padding:6px 14px;font-size:.8rem}.location-box{gap:var(--space-md);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);margin-top:var(--space-md);align-items:flex-start;display:flex}.location-box .loc-icon{font-size:1.5rem;line-height:1}.location-box p{color:var(--text-secondary);margin:0;font-size:.95rem;line-height:1.7}@media (width<=640px){.about-card{text-align:center;padding:var(--space-xl);flex-direction:column}.hero-stats{gap:var(--space-xl)}}.link-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));max-width:680px;display:grid}.link-card{align-items:center;gap:var(--space-md);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);color:var(--text-primary);transition:border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s;display:flex}.link-card:hover{border-color:var(--border-hover);color:var(--text-primary);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.link-card .li-icon{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.25rem;display:flex}.link-card .li-label{font-size:.95rem;font-weight:600}.link-card .li-url{color:var(--text-muted);font-size:.8rem;font-family:var(--font-mono);margin-top:2px}.contact-note{margin-top:var(--space-2xl);max-width:560px;padding:var(--space-xl);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);border-left:3px solid var(--accent)}.contact-note h2{margin-bottom:var(--space-sm);font-size:1.15rem}.contact-note p{color:var(--text-secondary);margin:0;font-size:.95rem;line-height:1.75}.page-header{padding:var(--space-3xl) 0 var(--space-2xl);position:relative;overflow:hidden}.page-header:before{content:"";background:radial-gradient(ellipse, var(--accent-glow) 0%, transparent 70%);pointer-events:none;width:600px;height:300px;position:absolute;top:0;left:50%;transform:translate(-50%)}.page-header .container{z-index:1;position:relative}.page-header h1{margin-bottom:var(--space-md)}.page-header p{color:var(--text-secondary);max-width:560px;font-size:1.05rem;line-height:1.7}.footer{border-top:1px solid var(--border);padding:var(--space-xl) 0;z-index:1;background:var(--bg-surface);margin-top:auto;position:relative}.footer-inner{justify-content:space-between;align-items:center;gap:var(--space-lg);flex-wrap:wrap;display:flex}.footer-brand{flex-direction:column;gap:4px;display:flex}.footer-brand .name{letter-spacing:-.02em;font-size:.95rem;font-weight:700}.footer-brand .name span{background:linear-gradient(135deg, var(--accent), var(--violet));-webkit-text-fill-color:transparent;background-clip:text}.footer-copy{color:var(--text-dim);font-size:.8rem}.footer-links{gap:var(--space-lg);flex-wrap:wrap;list-style:none;display:flex}.footer-links a{color:var(--text-muted);font-size:.85rem;transition:color .2s}.footer-links a:hover{color:var(--accent)}@media (width<=640px){.footer-inner{text-align:center;flex-direction:column}.footer-links{justify-content:center}}.legal-content{max-width:700px}.legal-content h2{margin-top:var(--space-2xl);margin-bottom:var(--space-md);color:var(--text-primary);font-size:1.1rem}.legal-content p{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9rem;line-height:1.75}.legal-content strong{color:var(--text-primary);font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.pf-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.pf-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:transform .3s var(--ease), box-shadow .3s var(--ease);overflow:hidden}.pf-card:hover{box-shadow:0 0 0 1px var(--border-hover), var(--shadow-glow);transform:translateY(-3px)}.pf-link{height:100%;color:inherit;flex-direction:column;text-decoration:none;display:flex}.pf-shot{aspect-ratio:16/10;background:var(--bg-elevated);border-bottom:1px solid var(--border);justify-content:center;align-items:center;display:flex;overflow:hidden}.pf-shot img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.pf-placeholder{font-family:var(--font-mono);color:var(--accent);padding:var(--space-lg);text-align:center;font-size:1.05rem}.pf-body{padding:var(--space-lg);gap:var(--space-sm);flex-direction:column;flex:1;display:flex}.pf-body h3{color:var(--text-primary);margin:0;font-size:1.1rem}.pf-body h3 span{color:var(--accent);font-size:.9em}.pf-body p{color:var(--text-secondary);margin:0;font-size:.92rem;line-height:1.6}.pf-body .pf-domain{font-family:var(--font-mono);color:var(--text-muted);font-size:.78rem}.pf-body .tech-tags{padding-top:var(--space-sm);gap:var(--space-xs);flex-wrap:wrap;margin-top:auto;display:flex}.pf-group{margin-bottom:var(--space-3xl);scroll-margin-top:96px}.pf-group-head{margin-bottom:var(--space-lg)}.pf-group-head h2{margin-bottom:var(--space-xs);font-size:1.5rem}.pf-group-head p{color:var(--text-secondary)}.pf-nav{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.pf-nav a{border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:999px;padding:6px 14px;font-size:.85rem;text-decoration:none}.pf-nav a:hover{border-color:var(--border-hover);color:var(--accent)}
