@font-face{font-family:Montserrat;src:url(/assets/fonts/Montserrat-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/fonts/Montserrat-Italic-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-style:italic;font-display:swap}:root{--bg-color: #0a0a0a;--surface-color: #111111;--surface-hover: #1a1a1a;--text-primary: #e0e0e0;--text-secondary: #dbdbdb;--accent-color: #00ff9d;--border-color: #333333;--font-main: "Montserrat", sans-serif;--font-mono: "SF Mono", "Fira Code", "Roboto Mono", monospace;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--spacing-xl: 4rem;--max-width: 900px}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-main);font-weight:500;line-height:1.6;-webkit-font-smoothing:antialiased;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px}h1,h2,h3{font-family:var(--font-mono);font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-md)}h1{font-size:2.5rem;letter-spacing:-.05em}h2{font-size:1.5rem;margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-sm);display:inline-block}h3{font-size:1.1rem;color:var(--accent-color)}p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--accent-color);transition:opacity .2s}a:hover{opacity:.8}.container{max-width:var(--max-width);margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}section{margin-bottom:6rem}.hero{padding-top:4rem}.hero-tagline{font-family:var(--font-mono);color:var(--accent-color);font-size:.9rem;margin-bottom:var(--spacing-sm);display:block}.hero-description{max-width:600px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg)}.card{background:var(--surface-color);border:1px solid var(--border-color);padding:var(--spacing-lg);transition:transform .2s,background-color .2s,border-color .2s;height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden}.card .card-header,.card p,.card .card-tech{position:relative;z-index:2}.card:hover{background:var(--surface-hover);transform:translateY(-2px);border-color:var(--accent-color)}.card:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(17,17,17,.9) 0%,transparent 40%,transparent 60%,rgba(17,17,17,.9) 100%);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:1}.card:hover:before{opacity:1}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.card-tech{font-family:var(--font-mono);font-size:.75rem;color:var(--text-secondary);margin-top:auto;padding-top:var(--spacing-md)}.card-link{text-decoration:none;border:none;display:block;height:100%}.card-link:hover{opacity:1}.skills-list{display:flex;flex-wrap:wrap;gap:var(--spacing-md);list-style:none}.skill-item{font-family:var(--font-mono);font-size:.9rem;background:var(--surface-color);border:1px solid var(--border-color);padding:.5rem 1rem;color:var(--text-primary)}footer{border-top:1px solid var(--border-color);padding-top:var(--spacing-lg);margin-top:var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.8rem;color:var(--text-secondary)}.contact-links a{margin-left:var(--spacing-md);border:none}.contact-links a:hover{color:var(--accent-color)}.back-link{font-family:var(--font-mono);font-size:.9rem;display:inline-block;margin-bottom:var(--spacing-lg)}.project-header{margin-bottom:var(--spacing-xl)}.sketchfab-container{width:100%;aspect-ratio:16 / 9;background:var(--surface-color);border:1px solid var(--border-color);margin-bottom:var(--spacing-lg)}.sketchfab-container iframe{width:100%;height:100%;border:none}.project-details{max-width:700px}.project-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.gallery-item{background:var(--surface-color);border:1px solid var(--border-color);overflow:hidden}.gallery-item img{width:100%;height:auto;display:block;transition:transform .3s ease}.gallery-item:hover img{transform:scale(1.02)}.gallery-item figcaption{font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);padding:var(--spacing-md);border-top:1px solid var(--border-color)}.gallery-image{cursor:pointer}.gallery-link{display:block;border:none}.gallery-link:hover{opacity:1}.lightbox{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;cursor:pointer}.lightbox.active{opacity:1;visibility:visible}.lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain;transform:scale(.9);transition:transform .3s ease}.lightbox.active .lightbox-image{transform:scale(1)}.btn-primary{display:inline-block;font-family:var(--font-mono);font-size:.9rem;background:transparent;color:var(--accent-color);border:1px solid var(--accent-color);padding:.75rem 1.5rem;text-decoration:none;transition:background-color .2s,color .2s}.btn-primary:hover{background:var(--accent-color);color:var(--bg-color);opacity:1}.btn-primary--filled{display:inline-flex;align-items:center;padding:.75rem 1.5rem;background-color:#000;color:#fff;text-decoration:none;border-radius:6px;font-weight:600;transition:opacity .2s}.btn-primary--filled:hover{opacity:.8}.terminal-body .prompt{color:#27c93f}.terminal-body .cmd{color:#fff;font-weight:700}.terminal-body .dim{color:#666}.terminal-body .file{color:#4ec9b0}.terminal-body .highlight,.terminal-body .string{color:#ce9178}.terminal-body .success{color:#27c93f}.terminal-body .xml-tag{color:#569cd6}.terminal-body .xml-attr{color:#9cdcfe}@media(max-width:600px){h1{font-size:2rem}.container{padding:var(--spacing-lg) var(--spacing-md)}section{margin-bottom:4rem}.project-gallery{grid-template-columns:1fr}.gallery-image{cursor:default}.lightbox{display:none}}.contact-links[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.contact-link[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted, currentColor);text-decoration:none;font-size:.9rem}.contact-link[data-astro-cid-sz7xmlte]:hover{color:var(--accent-color)}.contact-link-icon[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center}.contact-link[data-astro-cid-sz7xmlte] svg{flex-shrink:0}
