*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #131313;--card: #181818;--border: #252525;--border-lt: #2e2e2e;--accent: #00c896;--accent-dim: rgba(0, 200, 150, .08);--accent-mid: rgba(0, 200, 150, .2);--text: #e2e2e2;--text-sub: #a0a0a0;--muted: #606060;--sub: #3a3a3a;--mono: "JetBrains Mono", monospace;--sans: "Inter", sans-serif}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;height:58px;background:#0d0d0ded;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.nav-logo{font-family:var(--mono);font-size:14px;color:var(--accent);letter-spacing:.03em}.nav-links{display:flex;gap:36px;list-style:none}.nav-links a{font-family:var(--mono);font-size:13px;color:var(--muted);text-decoration:none;letter-spacing:.05em;transition:color .18s}.nav-links a:hover{color:var(--accent)}main{width:100%;max-width:1200px;margin:0 auto;padding:0 5vw}section{padding:100px 0 0}section:last-child{padding-bottom:100px}.label{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:44px;display:flex;align-items:center;gap:14px}.label:after{content:"";flex:1;height:1px;background:var(--border)}#hero{padding-top:58px;min-height:100vh;display:flex;align-items:center}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;width:100%}.hero-left{display:flex;flex-direction:column}.hero-right .about-text p{color:var(--text-sub);font-size:15px;line-height:1.8;margin-bottom:16px;font-weight:300}.hero-right .about-text p strong{color:var(--text);font-weight:500}.hero-right .trait-list{margin-top:24px}@media (max-width: 768px){.hero-grid{grid-template-columns:1fr;gap:40px}}.cursor-blink{display:inline-block;width:10px;height:16px;background:var(--accent);animation:blink 1s step-end infinite;vertical-align:middle;margin-left:3px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}h1{font-family:var(--mono);font-size:clamp(44px,6vw,76px);font-weight:700;letter-spacing:-.03em;line-height:1.05;color:var(--text);margin-bottom:14px}.hero-title{font-family:var(--mono);font-size:clamp(15px,1.6vw,19px);color:var(--muted);font-weight:400;margin-bottom:28px}.hero-tagline{font-size:clamp(17px,1.8vw,21px);color:var(--text-sub);max-width:640px;line-height:1.7;margin-bottom:44px;font-weight:300}.hero-tagline strong{color:var(--text);font-weight:500}.cta-row{display:flex;gap:14px;flex-wrap:wrap}.btn-primary{font-family:var(--mono);font-size:13px;padding:13px 30px;background:var(--accent);color:#000;text-decoration:none;font-weight:700;letter-spacing:.04em;transition:opacity .18s,transform .15s}.btn-primary:hover{opacity:.82;transform:translateY(-1px)}.btn-ghost{font-family:var(--mono);font-size:13px;padding:13px 30px;border:1px solid var(--border-lt);color:var(--muted);text-decoration:none;letter-spacing:.04em;transition:border-color .18s,color .18s}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.about-grid{display:grid;grid-template-columns:3fr 2fr;gap:64px;align-items:start}.about-text p{color:var(--text-sub);font-size:16px;line-height:1.8;margin-bottom:18px;font-weight:300}.about-text p strong{color:var(--text);font-weight:500}.trait-list{list-style:none;display:flex;flex-direction:column;gap:13px;border-left:1px solid var(--border);padding-left:24px}.trait-list li{font-family:var(--mono);font-size:13px;color:var(--muted);display:flex;align-items:flex-start;gap:10px;line-height:1.5}.trait-list li:before{content:">";color:var(--accent);flex-shrink:0}.project-card{border:1px solid var(--border);background:var(--card);margin-bottom:24px;transition:border-color .22s}.project-card:hover{border-color:var(--border-lt)}.project-header{padding:26px 32px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.project-name{font-family:var(--mono);font-size:17px;font-weight:700;color:var(--text);margin-bottom:5px}.project-sub{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.04em}.project-badges{display:flex;gap:7px;flex-wrap:wrap;flex-shrink:0}.badge{font-family:var(--mono);font-size:10px;padding:4px 10px;letter-spacing:.07em;text-transform:uppercase}.badge-accent{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-mid)}.badge-muted{background:transparent;color:var(--sub);border:1px solid var(--border)}.project-body{padding:28px 32px}.project-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:26px}.img-placeholder{aspect-ratio:16/9;background:var(--surface);border:1px dashed var(--border-lt);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:border-color .18s,background .18s;position:relative;overflow:hidden}.img-placeholder:hover{border-color:var(--accent);background:var(--accent-dim)}.img-placeholder input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.img-placeholder svg{width:22px;height:22px;stroke:var(--muted)}.img-placeholder span{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.06em;text-align:center}.img-placeholder img.preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.project-role{font-size:15px;color:var(--text-sub);line-height:1.75;margin-bottom:22px}.project-role strong{color:var(--text);font-weight:500}.callout{border-left:2px solid var(--accent);background:var(--accent-dim);padding:16px 20px;margin-bottom:22px}.callout-label{font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}.callout p{font-size:14px;color:var(--text-sub);line-height:1.65}.callout p strong{color:var(--text);font-weight:500}.callout code{font-family:var(--mono);font-size:12px;background:#00c8961f;padding:1px 5px;color:var(--accent)}.feature-list{list-style:none;display:flex;flex-direction:column;gap:9px}.feature-list li{font-family:var(--mono);font-size:13px;color:var(--muted);display:flex;align-items:flex-start;gap:10px;line-height:1.55}.feature-list li:before{content:"//";color:var(--sub);flex-shrink:0;font-size:11px;margin-top:1px}.feature-list li span{color:#888}.project-links{margin-top:20px;display:flex;gap:18px}.project-link{font-family:var(--mono);font-size:12px;color:var(--accent);text-decoration:none;letter-spacing:.05em;border-bottom:1px solid var(--accent-mid);padding-bottom:1px;transition:border-color .18s}.project-link:hover{border-color:var(--accent)}.stack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}.stack-group{background:var(--card);padding:26px 28px}.stack-group-label{font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px}.stack-items{display:flex;flex-direction:column;gap:9px}.stack-item{font-family:var(--mono);font-size:14px;color:var(--text-sub)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border)}.contact-row{display:flex;align-items:center;gap:0;background:var(--card);padding:22px 28px;text-decoration:none;transition:background .18s}.contact-row:hover{background:var(--accent-dim)}.contact-key{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.08em;width:80px;flex-shrink:0}.contact-val{font-family:var(--mono);font-size:14px;color:var(--text-sub)}footer{border-top:1px solid var(--border);padding:26px 5vw;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;max-width:100%}.footer-copy{font-family:var(--mono);font-size:12px;color:var(--text-sub)}.footer-copy span{color:var(--accent)}.fade-in{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}.fade-in.visible{opacity:1;transform:translateY(0)}@media (max-width: 900px){.about-grid{grid-template-columns:1fr;gap:36px}.trait-list{border-left:none;padding-left:0}.stack-grid{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr}.project-imgs{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.nav-links{display:none}.project-header{flex-direction:column}.stack-grid,.project-imgs{grid-template-columns:1fr}}
