@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);font-size:clamp(14px,1.5vw,16px);line-height:1.7;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;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");pointer-events:none;z-index:9999;opacity:.4}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{position:fixed;top:0;width:100%;z-index:100;background:#0e0e0ee0;backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;padding-block:1rem}.nav-logo{font-family:var(--font-display);font-size:1.6rem;letter-spacing:.08em;color:var(--white);text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-dim);transition:color .2s}.nav-links a:hover{color:var(--accent2)}#hero{min-height:100vh;display:flex;align-items:center;padding-top:5rem;position:relative;overflow:hidden}.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 30%,transparent 100%);opacity:.3}.hero-content{position:relative;z-index:1}.hero-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;display:flex;align-items:center;gap:.8rem}.hero-label:before{content:"";display:block;width:2rem;height:1px;background:var(--accent)}.hero-title{margin-bottom:1.5rem}.hero-title .line2{color:var(--accent)}.hero-desc{max-width:52ch;color:var(--text);font-size:1rem;margin-bottom:2.5rem;line-height:1.8}.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}.btn{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;padding:.75rem 2rem;border:1px solid;border-radius:var(--radius);cursor:pointer;transition:all .2s;text-decoration:none;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{background:transparent;border-color:var(--border);color:var(--text)}.btn-outline:hover{border-color:var(--accent);color:var(--accent2)}.section-header{margin-bottom:3rem;display:flex;align-items:baseline;gap:1.5rem}.section-header h2{flex-shrink:0}.section-line{flex:1;height:1px;background:var(--border)}.section-count{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);letter-spacing:.1em}.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2.5rem}.filter-btn{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.4rem 1rem;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;border-radius:var(--radius);transition:all .2s}.filter-btn:hover,.filter-btn.active{border-color:var(--accent);color:var(--accent2);background:#c97b1e14}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5px;background:var(--border);border:1.5px solid var(--border)}.project-card{background:var(--bg-card);padding:1.75rem;display:flex;flex-direction:column;gap:1rem;transition:background .2s;text-decoration:none;color:inherit;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.project-card:hover{background:var(--bg-hover)}.project-card:hover:before{transform:scaleX(1)}.card-meta{display:flex;align-items:center;justify-content:space-between}.card-category{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);background:#c97b1e1a;padding:.25rem .6rem;border-radius:1px}.card-year{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim)}.card-title{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.04em;color:var(--white);line-height:1.2}.card-desc{font-size:.875rem;color:var(--text);line-height:1.6;flex:1}.card-tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;color:var(--text-dim);border:1px solid var(--border);padding:.2rem .5rem;border-radius:1px}.card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);letter-spacing:.08em}.card-arrow{color:var(--accent);font-size:1rem;transition:transform .2s}.project-card:hover .card-arrow{transform:translate(4px)}.project-hero{padding-top:8rem;padding-bottom:4rem;border-bottom:1px solid var(--border)}.back-link{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);display:flex;align-items:center;gap:.5rem;margin-bottom:2rem;transition:color .2s}.back-link:hover{color:var(--accent2)}.project-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-top:2rem;padding:1.5rem;border:1px solid var(--border);background:var(--bg-card)}.meta-item label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);display:block;margin-bottom:.25rem}.meta-item span{font-size:.875rem;color:var(--white)}.prose{max-width:72ch;margin-top:3rem;margin-inline:auto}.prose h2,.prose h3{margin-top:2.5rem;margin-bottom:.75rem;font-family:var(--font-display)}.prose p{color:var(--text);margin-bottom:1.25rem;font-size:.975rem;line-height:1.85}.prose ul,.prose ol{color:var(--text);padding-left:1.5rem;margin-bottom:1.25rem}.prose li{margin-bottom:.4rem}.prose code{background:var(--bg-card);border:1px solid var(--border);padding:.15em .4em;font-size:.85em;color:var(--accent2)}.prose pre{background:var(--bg-card);border:1px solid var(--border);padding:1.25rem;overflow-x:auto;margin-bottom:1.5rem}.prose pre code{background:none;border:none;padding:0;color:var(--text)}.prose img{width:100%;border:1px solid var(--border);margin-block:1.5rem}.prose a{color:var(--accent2)}.prose blockquote{border-left:3px solid var(--accent);padding-left:1.25rem;color:var(--text-dim);margin-block:1.5rem;font-style:italic}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}@media(max-width:768px){.about-grid{grid-template-columns:1fr;gap:2rem}}.skills-list{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;list-style:none;margin-top:1rem}.skills-list li{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);padding:.4rem 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.5rem}.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{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;margin-top:2rem}.contact-link{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);display:flex;align-items:center;gap:.5rem;transition:color .2s}.contact-link:hover{color:var(--accent2)}footer{padding-block:2rem;border-top:1px solid var(--border)}.footer-inner{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;color:var(--text-dim)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .6s ease forwards;opacity:0}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.25s}.delay-3{animation-delay:.4s}.delay-4{animation-delay:.55s}@media(max-width:640px){.nav-links{display:none}.about-grid{grid-template-columns:1fr}.footer-inner{flex-direction:column;gap:.5rem;text-align:center}}.lang-switcher{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;display:flex;align-items:center;gap:.25rem;padding:.3rem .7rem;border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text-dim);transition:all .2s;margin-left:1rem}.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{margin:2rem 0;border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius);overflow:hidden}.toc-header{padding:.75rem 1.25rem;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.toc-list{list-style:none;padding:0;margin:0}.toc-item{border-bottom:1px solid var(--border)}.toc-item:last-child{border-bottom:none}.toc-link{display:flex;align-items:center;gap:1rem;padding:.9rem 1.25rem;text-decoration:none;color:var(--text);transition:background .15s}.toc-link:hover{background:var(--bg-hover);color:var(--white)}.toc-icon{font-size:1rem;flex-shrink:0;width:1.5rem;text-align:center}.toc-num{font-family:var(--font-mono);font-size:.6rem;color:var(--accent);min-width:1.5rem;letter-spacing:.1em}.toc-info{flex:1}.toc-title{font-size:.9rem;color:var(--white);margin-bottom:.1rem}.toc-desc{font-size:.75rem;color:var(--text-dim);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{display:grid;grid-template-columns:260px 1fr;gap:0;min-height:100vh;padding-top:4rem;width:min(var(--max-w),100% - 2 * var(--gap));margin-inline:auto}@media(max-width:900px){.chapter-layout{grid-template-columns:1fr;width:100%;padding-inline:var(--gap)}.chapter-sidebar{display:none}}.chapter-sidebar{border-right:1px solid var(--border);position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto;padding:2rem 0;background:transparent;align-self:start}.sidebar-project-title{padding:0 1.5rem 1rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.sidebar-project-title a{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);text-decoration:none;display:block;margin-bottom:.4rem}.sidebar-project-title a:hover{color:var(--accent2)}.sidebar-project-title span{font-family:var(--font-display);font-size:1.1rem;color:var(--white);letter-spacing:.04em}.sidebar-chapter-list{list-style:none;padding:0}.sidebar-chapter-item a{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;font-size:.85rem;color:var(--text);text-decoration:none;transition:all .15s;border-left:2px solid var(--border)}.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);background:#c97b1e1a;border-left-color:var(--accent);font-weight:500}.sidebar-num{font-family:var(--font-mono);font-size:.6rem;color:var(--accent);min-width:1.2rem}.sidebar-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);padding:1rem 1.5rem .5rem;display:block}.chapter-content{padding:3rem clamp(1.5rem,5vw,4rem);max-width:900px}.project-inline-header{margin-bottom:2rem}.project-inline-badges{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.project-inline-meta{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim)}.project-inline-title{font-size:clamp(2rem,4vw,3rem);margin-bottom:.75rem}.project-inline-desc{color:var(--text);font-size:1rem;max-width:60ch;margin-bottom:1.25rem;line-height:1.8}.project-inline-divider{border-top:1px solid var(--border);margin:2rem 0}.chapter-header{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}.chapter-header-title{font-size:clamp(1.8rem,3.5vw,2.8rem);margin-bottom:.6rem}.chapter-header-desc{color:var(--text);font-size:.975rem;max-width:60ch;line-height:1.7}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;color:var(--text-dim);margin-bottom:2.5rem;flex-wrap:wrap}.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{display:flex;justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border)}.chapter-nav-link{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:all .2s;flex:1;max-width:48%}.chapter-nav-link:hover{border-color:var(--accent);background:#c97b1e0d}.chapter-nav-link.next{text-align:right}.nav-dir{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim)}.nav-chapter-title{font-size:.875rem;color:var(--white);font-family:var(--font-display);letter-spacing:.04em}
