@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/jetbrains-mono-latin-300-normal-DuMDZskh.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-300-normal-BYcAiAh2.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/jetbrains-mono-latin-300-italic-CmiGynXm.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-300-italic-LqaAyaqP.woff)format("woff")}@font-face{font-family:DM Serif Display;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-serif-display-latin-400-normal-C5_t9oOD.woff2)format("woff2"),url(/assets/dm-serif-display-latin-400-normal-_kVFYEpx.woff)format("woff")}@font-face{font-family:DM Serif Display;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/dm-serif-display-latin-400-italic-DpcbibHm.woff2)format("woff2"),url(/assets/dm-serif-display-latin-400-italic-BgxzcTJK.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/outfit-latin-300-normal-CRYTwY6m.woff2)format("woff2"),url(/assets/outfit-latin-300-normal-AWLfuCom.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2)format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2)format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff)format("woff")}:root{--bg:#090909;--surface:#111;--surface-2:#181818;--border:#1f1f1f;--text:#ccccc4;--text-muted:#4a4a48;--accent:#9dff50;--accent-dim:#9dff500f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:none}html::-webkit-scrollbar{display:none}body{background:var(--bg);color:var(--text);font-family:Outfit,sans-serif;font-weight:300;line-height:1.7;overflow-x:hidden}.nav{z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#090909e0;justify-content:space-between;align-items:center;padding:1.25rem 3rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--accent);letter-spacing:.06em;font-family:JetBrains Mono,monospace;font-size:.8rem;text-decoration:none}.nav-logo span{color:var(--text-muted)}.nav-links{gap:2.5rem;list-style:none;display:flex}.nav-links a{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.68rem;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--accent)}.nav-menu-button{display:none}.section-inner{max-width:1100px;margin:0 auto;padding:7rem 3rem}.section-label{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.75rem;margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:.65rem;display:flex}.section-label:before{content:"";background:var(--accent);flex-shrink:0;width:2rem;height:1px;display:block}#about-section .section-inner{flex-direction:column;justify-content:center;min-height:100vh;padding-top:8rem;display:flex;position:relative}.about-eyebrow{color:var(--text-muted);letter-spacing:.1em;margin-bottom:1.75rem;font-family:JetBrains Mono,monospace;font-size:.7rem}.about-name{color:var(--text);letter-spacing:-.02em;margin-bottom:.375rem;font-family:DM Serif Display,serif;font-size:clamp(3.5rem,8vw,7rem);line-height:1}.about-name em{color:var(--accent);font-style:italic}.cursor{background:var(--accent);vertical-align:baseline;width:.08em;height:.85em;margin-left:.15em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.about-title-row{color:var(--text-muted);align-items:center;gap:1rem;margin-bottom:2.75rem;font-family:JetBrains Mono,monospace;font-size:.82rem;display:flex}.about-title-row:after{content:"";background:var(--border);width:6rem;height:1px;display:block}.about-bio{max-width:54ch;color:var(--text);margin-bottom:3rem;font-size:1rem;line-height:1.9}.about-bio strong{color:var(--text);font-weight:500}.about-cta{flex-wrap:wrap;gap:1rem;display:flex}.btn-primary{letter-spacing:.1em;text-transform:uppercase;background:var(--accent);color:#080808;cursor:pointer;border:none;padding:.75rem 1.75rem;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500;text-decoration:none;transition:opacity .2s;display:inline-block}.btn-primary:hover{opacity:.82}.btn-ghost{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;padding:.75rem 1.75rem;font-family:JetBrains Mono,monospace;font-size:.7rem;text-decoration:none;transition:border-color .2s,color .2s;display:inline-block}.btn-ghost:hover{border-color:var(--text-muted);color:var(--text)}.scroll-hint{align-items:center;gap:1rem;display:flex;position:absolute;bottom:3.5rem;left:0}.scroll-hint-line{background:var(--border);width:3rem;height:1px;position:relative;overflow:hidden}.scroll-hint-line:after{content:"";background:var(--accent);width:100%;height:100%;animation:2.5s ease-in-out infinite slide-right;position:absolute;top:0;left:-100%}@keyframes slide-right{0%{left:-100%}50%{left:100%}to{left:100%}}.scroll-hint-text{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.6rem}#projects-section{border-top:1px solid var(--border)}.projects-list{border:1px solid var(--border);margin-top:3rem}.project-card{border-bottom:1px solid var(--border);padding:2.75rem;transition:background .2s}.project-card:last-of-type{border-bottom:none}.project-card:hover{background:var(--surface)}.project-meta{align-items:center;gap:.875rem;margin-bottom:1.25rem;display:flex}.project-badge{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid #9dff5059;padding:.2rem .65rem;font-family:JetBrains Mono,monospace;font-size:.6rem}.project-index{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.65rem}.project-title{color:var(--text);margin-bottom:.75rem;font-family:DM Serif Display,serif;font-size:1.85rem;line-height:1.15}.project-desc{color:var(--text-muted);max-width:62ch;margin-bottom:1.75rem;font-size:.9rem;line-height:1.75}.project-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.project-tag{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);letter-spacing:.06em;padding:.2rem .65rem;font-family:JetBrains Mono,monospace;font-size:.62rem}.project-links{flex-wrap:wrap;gap:.75rem;margin-bottom:1.75rem;display:flex}.project-link-btn{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;background:0 0;border:1px solid #9dff5059;align-items:center;gap:.55rem;padding:.45rem .95rem;font-family:JetBrains Mono,monospace;font-size:.68rem;text-decoration:none;transition:background-color .2s;display:inline-flex}.project-link-btn:hover{background:var(--accent-dim)}.project-link-arrow{transition:transform .2s}.project-link-btn:hover .project-link-arrow{transform:translate(2px,-2px)}.project-link-icon{filter:invert(.9);width:.85rem;height:.85rem;display:block}.project-trigger{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:0;font-family:JetBrains Mono,monospace;font-size:.68rem;transition:color .2s;display:inline-flex}.project-trigger:hover{color:var(--accent)}.project-trigger-arrow{transition:transform .2s}.project-trigger:hover .project-trigger-arrow{transform:translate(4px)}#project-detail{border-top:1px solid var(--border);background:var(--surface);display:none}#project-detail.htmx-settling,#project-detail:not(:empty){display:block}.detail-panel{grid-template-columns:1fr 1fr;gap:3rem;padding:2.5rem 2.75rem}.detail-group-label{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.875rem;font-family:JetBrains Mono,monospace;font-size:.62rem}.detail-text{color:var(--text);font-size:.9rem;line-height:1.85}.htmx-indicator{color:var(--text-muted);letter-spacing:.08em;padding:1rem 2.75rem;font-family:JetBrains Mono,monospace;font-size:.65rem;display:none}.htmx-request .htmx-indicator{display:block}#stack-section{border-top:1px solid var(--border)}.stack-grid{border:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:0;margin-top:3rem;display:grid}.stack-group{border-right:1px solid var(--border);padding:2rem 1.75rem}.stack-group:last-child{border-right:none}.stack-group-name{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:.875rem;font-family:JetBrains Mono,monospace;font-size:.65rem}.stack-items{flex-direction:column;gap:0;display:flex}.stack-item{color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:.7rem;padding:.5rem 0;font-family:JetBrains Mono,monospace;font-size:.78rem;transition:color .15s;display:flex}.stack-item:last-child{border-bottom:none}.stack-item:hover{color:var(--accent)}.stack-item-dot{background:var(--accent);opacity:.5;flex-shrink:0;width:4px;height:4px;transition:opacity .15s}.stack-item:hover .stack-item-dot{opacity:1}.stack-sub{color:var(--text-muted);letter-spacing:.04em;margin-left:auto;font-size:.58rem}#contact-section{border-top:1px solid var(--border)}.contact-heading{color:var(--text);margin:2rem 0 .75rem;font-family:DM Serif Display,serif;font-size:clamp(2.25rem,5vw,4.5rem);line-height:1.1}.contact-heading em{color:var(--accent);font-style:italic}.contact-sub{color:var(--text-muted);max-width:48ch;margin-bottom:3.5rem;font-size:.9rem}.contact-list{border:1px solid var(--border)}.contact-entry{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;padding:1.5rem 2rem;text-decoration:none;transition:background .2s;display:flex}.contact-entry:last-child{border-bottom:none}.contact-entry:hover{background:var(--surface)}.contact-entry-left{flex-direction:column;gap:.2rem;display:flex}.contact-entry-type{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.6rem}.contact-entry-value{color:var(--text);font-family:Outfit,sans-serif;font-size:.95rem;font-weight:400}.contact-entry-arrow{color:var(--text-muted);flex-shrink:0;transition:color .2s,transform .2s}.contact-entry:hover .contact-entry-arrow{color:var(--accent);transform:translate(3px,-3px)}.footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:2rem 3rem;display:flex}.footer-text{color:var(--text-muted);letter-spacing:.05em;font-family:JetBrains Mono,monospace;font-size:.65rem}.footer-accent{color:var(--accent)}@media (width<=900px){.nav{padding:1rem 1.5rem}.nav-links{gap:1.5rem}.section-inner{padding:5rem 1.5rem}#about-section .section-inner{padding-top:6rem}.stack-grid{grid-template-columns:1fr 1fr}.stack-group{border-bottom:1px solid var(--border)}.stack-group:nth-child(2n){border-right:none}.detail-panel{grid-template-columns:1fr;gap:2rem}.footer{text-align:center;flex-direction:column;gap:.75rem;padding:1.5rem}}@media (width<=540px){.nav-links{display:none}.nav-menu-button{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .2s;display:flex}.nav-menu-button:hover{color:var(--accent)}.nav-mobile{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#090909e0;position:absolute;top:100%;left:0;right:0}.nav-mobile-links{flex-direction:column;list-style:none;display:flex}.nav-mobile-links a{border-bottom:1px solid var(--border);color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;padding:1rem 1.5rem;font-family:JetBrains Mono,monospace;font-size:.68rem;text-decoration:none;transition:color .2s;display:block}.nav-mobile-links li:last-child a{border-bottom:none}.nav-mobile-links a:hover{color:var(--accent)}.stack-grid{grid-template-columns:1fr}.stack-group{border-right:none}.contact-entry{padding:1.25rem 1.5rem}.project-card{padding:2rem 1.5rem}}
