@import "https://fonts.googleapis.com/css2?family=Bebas+Neue&family=IBM+Plex+Mono:ital,wght@0,300;0,400;0,500;0,600;1,300&family=IBM+Plex+Sans:wght@300;400;500&display=swap";:root{--bg:#0e0e0e;--bg-card:#161616;--bg-hover:#1e1e1e;--border:#2a2a2a;--text:#d4c9b8;--text-dim:#6b6355;--accent:#c97b1e;--accent2:#e8a54b;--white:#f0e8db;--red:#c0392b;--font-display:"Bebas Neue", "Impact", sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--font-body:"IBM Plex Sans", sans-serif;--radius:2px;--gap:clamp(1rem, 3vw, 2rem);--max-w:1100px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);min-height:100vh;font-size:clamp(14px,1.5vw,16px);line-height:1.7;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:9999;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.04em;color:var(--white);line-height:1.1}h1{font-size:clamp(3rem,10vw,7rem)}h2{font-size:clamp(2rem,5vw,3.5rem)}h3{font-size:clamp(1.4rem,3vw,2rem)}a{color:var(--accent2);text-decoration:none;transition:color .2s}a:hover{color:var(--white)}code,pre,.mono{font-family:var(--font-mono)}.container{width:min(var(--max-w), 100% - 2 * var(--gap));margin-inline:auto}section{padding-block:clamp(4rem,10vh,8rem)}nav{z-index:100;backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0e0e0ee0;width:100%;position:fixed;top:0}.nav-inner{justify-content:space-between;align-items:center;padding-block:1rem;display:flex}.nav-logo{font-family:var(--font-display);letter-spacing:.08em;color:var(--white);font-size:1.6rem;text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim);font-size:.75rem;transition:color .2s}.nav-links a:hover{color:var(--accent2)}#hero{align-items:center;min-height:100vh;padding-top:5rem;display:flex;position:relative;overflow:hidden}.hero-grid-bg{background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);opacity:.3;background-size:60px 60px;position:absolute;inset:0;mask-image:radial-gradient(80% 80%,#000 30%,#0000 100%)}.hero-content{z-index:1;position:relative}.hero-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.8rem;margin-bottom:1rem;font-size:.75rem;display:flex}.hero-label:before{content:"";background:var(--accent);width:2rem;height:1px;display:block}.hero-title{margin-bottom:1.5rem}.hero-title .line2{color:var(--accent)}.hero-desc{max-width:52ch;color:var(--text);margin-bottom:1.5rem;font-size:1rem;line-height:1.8}.hero-status{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text);border:1px solid var(--border);align-items:center;gap:.6rem;margin-bottom:2.5rem;padding:.5rem .9rem;font-size:.7rem;display:inline-flex}.hero-status-dot{background:#4ade80;border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 0 3px #4ade8033}.hero-cta{flex-wrap:wrap;gap:1rem;display:flex}.btn{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;border-radius:var(--radius);cursor:pointer;border:1px solid;padding:.75rem 2rem;font-size:.75rem;text-decoration:none;transition:all .2s;display:inline-block}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--accent2);border-color:var(--accent2);color:var(--bg)}.btn-outline{border-color:var(--border);color:var(--text);background:0 0}.btn-outline:hover{border-color:var(--accent);color:var(--accent2)}.section-header{align-items:baseline;gap:1.5rem;margin-bottom:3rem;display:flex}.section-header h2{flex-shrink:0}.section-line{background:var(--border);flex:1;height:1px}.section-count{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.1em;font-size:.7rem}.exp-list{border-top:1px solid var(--border);list-style:none}.exp-row{border-bottom:1px solid var(--border);grid-template-columns:11rem 1fr auto;align-items:baseline;gap:1.5rem;padding:1.1rem 0;display:grid}.exp-period{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-dim);white-space:nowrap;font-size:.7rem}.exp-role{color:var(--white);font-size:1rem}.exp-company{color:var(--accent2)}.exp-current{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);vertical-align:middle;margin-left:.75rem;padding:.15rem .5rem;font-size:.58rem}.exp-stack{font-family:var(--font-mono);color:var(--text-dim);text-align:right;font-size:.7rem}.exp-cta{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:1.5rem;font-size:.75rem;text-decoration:none;transition:color .2s;display:inline-block}.exp-cta:hover{color:var(--accent2)}@media (width<=768px){.exp-row{grid-template-columns:1fr;gap:.35rem}.exp-stack{text-align:left}}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem;display:flex}.filter-btn{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:var(--radius);background:0 0;padding:.4rem 1rem;font-size:.7rem;transition:all .2s}.filter-btn:hover,.filter-btn.active{border-color:var(--accent);color:var(--accent2);background:#c97b1e14}.projects-grid{background:var(--border);border:1.5px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5px;display:grid}.project-card{background:var(--bg-card);color:inherit;flex-direction:column;gap:1rem;padding:1.75rem;text-decoration:none;transition:background .2s;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .3s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:hover{background:var(--bg-hover)}.project-card:hover:before{transform:scaleX(1)}.card-meta{justify-content:space-between;align-items:center;display:flex}.card-category{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);background:#c97b1e1a;border-radius:1px;padding:.25rem .6rem;font-size:.65rem}.card-year{font-family:var(--font-mono);color:var(--text-dim);font-size:.65rem}.card-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--white);font-size:1.5rem;line-height:1.2}.card-desc{color:var(--text);flex:1;font-size:.875rem;line-height:1.6}.card-tags{flex-wrap:wrap;gap:.4rem;display:flex}.tag{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-dim);border:1px solid var(--border);border-radius:1px;padding:.2rem .5rem;font-size:.6rem}.card-footer{border-top:1px solid var(--border);font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.08em;justify-content:space-between;align-items:center;padding-top:.75rem;font-size:.7rem;display:flex}.card-arrow{color:var(--accent);font-size:1rem;transition:transform .2s}.project-card:hover .card-arrow{transform:translate(4px)}.project-hero{border-bottom:1px solid var(--border);padding-top:8rem;padding-bottom:4rem}.back-link{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.5rem;margin-bottom:2rem;font-size:.7rem;transition:color .2s;display:flex}.back-link:hover{color:var(--accent2)}.project-meta-grid{border:1px solid var(--border);background:var(--bg-card);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-top:2rem;padding:1.5rem;display:grid}.meta-item label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.25rem;font-size:.6rem;display:block}.meta-item span{color:var(--white);font-size:.875rem}.prose{margin-top:3rem;max-width:72ch;margin-inline:auto}.prose h2,.prose h3{font-family:var(--font-display);margin-top:2.5rem;margin-bottom:.75rem}.prose p{color:var(--text);margin-bottom:1.25rem;font-size:.975rem;line-height:1.85}.prose ul,.prose ol{color:var(--text);margin-bottom:1.25rem;padding-left:1.5rem}.prose li{margin-bottom:.4rem}.prose code{background:var(--bg-card);border:1px solid var(--border);color:var(--accent2);padding:.15em .4em;font-size:.85em}.prose pre{background:var(--bg-card);border:1px solid var(--border);margin-bottom:1.5rem;padding:1.25rem;overflow-x:auto}.prose pre code{color:var(--text);background:0 0;border:none;padding:0}.prose img{border:1px solid var(--border);width:100%;margin-block:1.5rem}.prose a{color:var(--accent2)}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-dim);margin-block:1.5rem;padding-left:1.25rem;font-style:italic}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:4rem;display:grid}@media (width<=768px){.about-grid{grid-template-columns:1fr;gap:2rem}}.skills-group{margin-bottom:1.25rem}.skills-group-title{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);font-size:.62rem}.skills-list{grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem;list-style:none;display:grid}.skills-list li{font-family:var(--font-mono);color:var(--text-dim);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.4rem 0;font-size:.75rem;display:flex}.skills-list li:before{content:"▸";color:var(--accent);font-size:.6rem}#contact{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.contact-inner{text-align:center;max-width:600px;margin-inline:auto}.contact-inner p{color:var(--text-dim);margin-block:1.5rem}.contact-links{flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:2rem;display:flex}.contact-link{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.5rem;font-size:.75rem;transition:color .2s;display:flex}.contact-link:hover{color:var(--accent2)}footer{border-top:1px solid var(--border);padding-block:2rem}.footer-inner{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-dim);justify-content:space-between;align-items:center;font-size:.65rem;display:flex}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-up{opacity:0;animation:.6s forwards fadeUp}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.25s}.delay-3{animation-delay:.4s}.delay-4{animation-delay:.55s}@media (width<=640px){.nav-links{display:none}.about-grid{grid-template-columns:1fr}.footer-inner{text-align:center;flex-direction:column;gap:.5rem}}.lang-switcher{font-family:var(--font-mono);letter-spacing:.12em;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);align-items:center;gap:.25rem;margin-left:1rem;padding:.3rem .7rem;font-size:.7rem;text-decoration:none;transition:all .2s;display:flex}.lang-switcher:hover{border-color:var(--accent);color:var(--white)}.lang-active{color:var(--accent2);font-weight:600}.lang-sep{color:var(--border)}.lang-other{color:var(--text-dim)}.project-toc{border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius);margin:2rem 0;overflow:hidden}.toc-header{border-bottom:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);padding:.75rem 1.25rem;font-size:.65rem}.toc-list{margin:0;padding:0;list-style:none}.toc-item{border-bottom:1px solid var(--border)}.toc-item:last-child{border-bottom:none}.toc-link{color:var(--text);align-items:center;gap:1rem;padding:.9rem 1.25rem;text-decoration:none;transition:background .15s;display:flex}.toc-link:hover{background:var(--bg-hover);color:var(--white)}.toc-icon{text-align:center;flex-shrink:0;width:1.5rem;font-size:1rem}.toc-num{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;min-width:1.5rem;font-size:.6rem}.toc-info{flex:1}.toc-title{color:var(--white);margin-bottom:.1rem;font-size:.9rem}.toc-desc{color:var(--text-dim);font-size:.75rem;font-family:var(--font-mono)}.toc-arrow{color:var(--text-dim);font-size:.8rem;transition:transform .2s,color .2s}.toc-link:hover .toc-arrow{color:var(--accent);transform:translate(3px)}.chapter-layout{min-height:100vh;width:min(var(--max-w), 100% - 2 * var(--gap));grid-template-columns:260px 1fr;gap:0;margin-inline:auto;padding-top:4rem;display:grid}@media (width<=900px){.chapter-layout{width:100%;padding-inline:var(--gap);grid-template-columns:1fr}.chapter-sidebar{display:none}}.chapter-sidebar{border-right:1px solid var(--border);background:0 0;align-self:start;height:calc(100vh - 4rem);padding:2rem 0;position:sticky;top:4rem;overflow-y:auto}.sidebar-project-title{border-bottom:1px solid var(--border);margin-bottom:1rem;padding:0 1.5rem 1rem}.sidebar-project-title a{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.4rem;font-size:.65rem;text-decoration:none;display:block}.sidebar-project-title a:hover{color:var(--accent2)}.sidebar-project-title span{font-family:var(--font-display);color:var(--white);letter-spacing:.04em;font-size:1.1rem}.sidebar-chapter-list{padding:0;list-style:none}.sidebar-chapter-item a{color:var(--text);border-left:2px solid var(--border);align-items:center;gap:.75rem;padding:.75rem 1.5rem;font-size:.85rem;text-decoration:none;transition:all .15s;display:flex}.sidebar-chapter-item a:hover{color:var(--white);background:var(--bg-hover);border-left-color:var(--accent)}.sidebar-chapter-item.active a{color:var(--accent2);border-left-color:var(--accent);background:#c97b1e1a;font-weight:500}.sidebar-num{font-family:var(--font-mono);color:var(--accent);min-width:1.2rem;font-size:.6rem}.sidebar-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);padding:1rem 1.5rem .5rem;font-size:.6rem;display:block}.chapter-content{max-width:900px;padding:3rem clamp(1.5rem,5vw,4rem)}.project-inline-header{margin-bottom:2rem}.project-inline-badges{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.project-inline-meta{font-family:var(--font-mono);color:var(--text-dim);font-size:.65rem}.project-inline-title{margin-bottom:.75rem;font-size:clamp(2rem,4vw,3rem)}.project-inline-desc{color:var(--text);max-width:60ch;margin-bottom:1.25rem;font-size:1rem;line-height:1.8}.project-inline-divider{border-top:1px solid var(--border);margin:2rem 0}.chapter-header{border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-bottom:2rem}.chapter-header-title{margin-bottom:.6rem;font-size:clamp(1.8rem,3.5vw,2.8rem)}.chapter-header-desc{color:var(--text);max-width:60ch;font-size:.975rem;line-height:1.7}.breadcrumb{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:2.5rem;font-size:.65rem;display:flex}.breadcrumb a{color:var(--text-dim);text-decoration:none;transition:color .2s}.breadcrumb a:hover{color:var(--accent2)}.breadcrumb-sep{color:var(--border)}.breadcrumb-current{color:var(--accent)}.chapter-nav{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:2rem;display:flex}.chapter-nav-link{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;flex:1;gap:.3rem;max-width:48%;padding:1rem 1.25rem;text-decoration:none;transition:all .2s;display:flex}.chapter-nav-link:hover{border-color:var(--accent);background:#c97b1e0d}.chapter-nav-link.next{text-align:right}.nav-dir{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);font-size:.6rem}.nav-chapter-title{color:var(--white);font-size:.875rem;font-family:var(--font-display);letter-spacing:.04em}
