@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap";:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading: "Plus Jakarta Sans", var(--font-sans);--font-mono: "JetBrains Mono", monospace;--bg-main: #0b0f17;--bg-surface: #121824;--bg-surface-hover: #182030;--bg-card: #141c2b;--bg-input: #0f1522;--border-color: rgba(255, 255, 255, .08);--border-color-hover: rgba(59, 130, 246, .4);--text-primary: #f3f4f6;--text-secondary: #9ca3af;--text-muted: #6b7280;--accent-blue: #3b82f6;--accent-blue-hover: #2563eb;--accent-blue-glow: rgba(59, 130, 246, .15);--timeline-edge: rgba(59, 130, 246, .55);--accent-cyan: #06b6d4;--accent-mint: #10b981;--accent-amber: #f59e0b;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .6);--shadow-glow: 0 0 25px rgba(59, 130, 246, .2);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--max-width: 1200px;--transition-fast: .15s ease;--transition-normal: .25s ease}[data-theme=light]{--bg-main: #f8fafc;--bg-surface: #ffffff;--bg-surface-hover: #f1f5f9;--bg-card: #ffffff;--bg-input: #f1f5f9;--border-color: rgba(0, 0, 0, .08);--border-color-hover: rgba(37, 99, 235, .4);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--accent-blue-glow: rgba(37, 99, 235, .1);--timeline-edge: rgba(37, 99, 235, .55);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color var(--transition-normal),color var(--transition-normal)}::selection{background-color:var(--accent-blue);color:#fff}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit}ul,ol{list-style:none}img,svg{display:block;max-width:100%}.font-mono{font-family:var(--font-mono)}.font-heading{font-family:var(--font-heading)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.section{padding:5rem 0;border-bottom:1px solid var(--border-color);position:relative}.section-header{margin-bottom:3rem}.section-tag{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.8125rem;font-weight:500;color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem;background:#06b6d414;padding:.25rem .75rem;border-radius:var(--radius-full);border:1px solid rgba(6,182,212,.2)}.section-title{font-family:var(--font-heading);font-size:2.25rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);line-height:1.25;background:linear-gradient(90deg,var(--text-primary) 0%,var(--accent-blue) 50%,var(--accent-cyan) 75%,var(--text-primary) 100%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 8s ease-in-out infinite}.section-subtitle{font-size:1.125rem;color:var(--text-secondary);max-width:680px;margin-top:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background-color:var(--accent-blue);color:#fff;box-shadow:0 4px 14px #3b82f659}.btn-primary:hover{background-color:var(--accent-blue-hover);transform:translateY(-1px);box-shadow:0 6px 20px #3b82f673}.btn-secondary{background-color:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--bg-surface-hover);border-color:var(--border-color-hover);transform:translateY(-1px)}.btn-sm{padding:.5rem 1rem;font-size:.84375rem}.glass-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.75rem;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.glass-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.glow-card{--mouse-x: -200px;--mouse-y: -200px}.glow-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(350px circle at var(--mouse-x) var(--mouse-y),rgba(59,130,246,.1) 0%,rgba(6,182,212,.05) 30%,transparent 70%);opacity:0;transition:opacity .4s ease;pointer-events:none;z-index:0}.glow-card:hover:before{opacity:1}.glow-card>*{position:relative;z-index:1}[data-theme=light] .glow-card:before{background:radial-gradient(350px circle at var(--mouse-x) var(--mouse-y),rgba(37,99,235,.08) 0%,rgba(6,182,212,.04) 30%,transparent 70%)}.badge{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .625rem;font-family:var(--font-mono);font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-secondary)}.badge-placeholder{background:#f59e0b1f;color:var(--accent-amber);border-color:#f59e0b4d}.badge-primary{background:#3b82f61f;color:var(--accent-blue);border-color:#3b82f64d}.badge-mint{background:#10b9811f;color:var(--accent-mint);border-color:#10b9814d}.pulse-dot{width:8px;height:8px;border-radius:50%;background-color:var(--accent-mint);position:relative;display:inline-block}.pulse-dot:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:50%;border:2px solid var(--accent-mint);animation:pulse-ring 2s infinite ease-in-out}@keyframes pulse-ring{0%{transform:scale(.9);opacity:.8}50%{transform:scale(1.8);opacity:0}to{transform:scale(.9);opacity:0}}.header-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#0b0f17d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);transition:all .5s cubic-bezier(.16,1,.3,1)}.header-nav.scrolled{top:.6rem;left:1.5rem;right:1.5rem;border-radius:var(--radius-lg);background:#0b0f17b8;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.15);box-shadow:0 8px 32px #0000004d,0 0 0 1px #ffffff0a inset}[data-theme=light] .header-nav.scrolled{background:#f8fafcb8;border:1px solid rgba(37,99,235,.12);box-shadow:0 8px 32px #00000014,0 0 0 1px #ffffff80 inset}[data-theme=light] .header-nav{background:#f8fafcd9}.nav-container{display:flex;align-items:center;justify-content:space-between;height:4.25rem}.logo-group{display:flex;align-items:center;gap:.75rem;font-family:var(--font-heading);font-weight:700;font-size:1.125rem;color:var(--text-primary)}.logo-badge{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-blue);background:#3b82f61a;padding:.15rem .5rem;border-radius:var(--radius-sm);border:1px solid rgba(59,130,246,.2)}.nav-links{display:flex;align-items:center;gap:1.75rem}.nav-link{font-size:.9375rem;font-weight:500;color:var(--text-secondary);transition:color var(--transition-fast);position:relative}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-link.active:after{content:"";position:absolute;bottom:-.5rem;left:0;right:0;height:2px;background-color:var(--accent-blue);border-radius:var(--radius-full)}.nav-actions{display:flex;align-items:center;gap:.75rem}.theme-toggle{width:2.375rem;height:2.375rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border:1px solid var(--border-color);background:var(--bg-surface);transition:all var(--transition-fast)}.theme-toggle:hover{color:var(--text-primary);border-color:var(--border-color-hover)}.hero-section{padding-top:8rem;padding-bottom:5rem;background:radial-gradient(circle at 70% 30%,rgba(59,130,246,.07) 0%,transparent 60%);position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 340px;gap:3.5rem;align-items:center}.hero-status-pill{display:inline-flex;align-items:center;gap:.625rem;padding:.375rem .875rem;border-radius:var(--radius-full);background:var(--bg-surface);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:.8125rem;color:var(--text-secondary);margin-bottom:1.5rem}.hero-title{font-family:var(--font-heading);font-size:3.5rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--text-primary);margin-bottom:1.25rem}.hero-title .highlight{color:var(--accent-blue);background:linear-gradient(90deg,var(--accent-blue),var(--accent-cyan),#a78bfa,var(--accent-blue));background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 6s ease-in-out infinite}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero-subtitle{font-size:1.25rem;font-weight:500;color:var(--accent-cyan);font-family:var(--font-mono);margin-bottom:1.25rem}.hero-description{font-size:1.125rem;color:var(--text-secondary);line-height:1.7;max-width:640px;margin-bottom:2rem}.hero-cta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.hero-telemetry-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--shadow-md)}.telemetry-item{border-bottom:1px solid var(--border-color);padding-bottom:.875rem}.telemetry-item:last-child{border-bottom:none;padding-bottom:0}.telemetry-label{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.telemetry-value{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--text-primary);margin-top:.2rem}.telemetry-detail{font-size:.8125rem;color:var(--text-secondary)}.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.stack-category-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.35rem;display:flex;align-items:center;gap:.5rem}.stack-category-desc{font-size:.875rem;color:var(--text-muted);margin-bottom:1.25rem}.stack-item-list{display:flex;flex-direction:column;gap:.75rem}.stack-item-row{display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.stack-item-row:hover{border-color:var(--border-color-hover);background:var(--bg-surface-hover)}.stack-item-name{font-size:.9375rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.625rem}.stack-item-level{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-blue);background:#3b82f614;padding:.15rem .5rem;border-radius:var(--radius-sm)}.timeline{--rail-w: 3rem;--gutter-w: 11rem;--node-size: 2.25rem;--node-centre: 1.125rem;--line: rgba(59, 130, 246, .32);list-style:none;max-width:1080px;margin:0}.timeline-entry{position:relative;display:grid;grid-template-columns:var(--gutter-w) var(--rail-w) minmax(0,1fr);padding-bottom:2.25rem}.timeline-entry:last-child{padding-bottom:0}.timeline-rail{grid-column:2;grid-row:1;position:relative;display:flex;justify-content:center}.timeline-rail:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;margin-left:-.5px;background:var(--line)}.timeline-entry:first-child .timeline-rail:before{top:var(--node-centre)}.timeline-entry:last-child .timeline-rail:before{background:linear-gradient(180deg,var(--line) 0%,var(--line) 45%,transparent 100%)}.timeline-node{position:relative;z-index:1;flex-shrink:0;width:var(--node-size);height:var(--node-size);border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border-color-hover);color:var(--accent-blue);box-shadow:0 0 0 4px var(--bg-main);transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}.timeline-meta{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:.2rem;text-align:right;padding-top:.3rem;padding-right:1.25rem}.timeline-period{font-family:var(--font-mono);font-size:.8125rem;font-weight:500;color:var(--text-secondary);overflow-wrap:anywhere;line-height:1.35}.timeline-category{font-family:var(--font-mono);font-size:.6875rem;line-height:1.4;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.timeline-body{grid-column:3;grid-row:1;padding-top:.3rem;padding-left:.25rem}.timeline-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;line-height:1.35;color:var(--text-primary)}.timeline-org{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .625rem;margin-top:.15rem;font-size:.875rem;font-weight:600;color:var(--accent-cyan)}.timeline-tag{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.02em;color:var(--text-muted);padding:.1rem .5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.timeline-description{font-size:.9375rem;color:var(--text-secondary);line-height:1.65;margin-top:.625rem;max-width:72ch}.timeline-toggle{display:inline-flex;align-items:center;gap:.4rem;margin-top:.75rem;padding:.3rem 0;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em;color:var(--text-muted);transition:color var(--transition-fast)}.timeline-toggle:hover,.timeline-toggle:focus-visible{color:var(--accent-blue)}.timeline-chevron{transition:transform var(--transition-normal)}.timeline-entry.is-open .timeline-chevron{transform:rotate(180deg)}.timeline-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-normal)}.timeline-entry.is-open .timeline-panel{grid-template-rows:1fr}.timeline-panel-inner{overflow:hidden;visibility:hidden;list-style:none;display:flex;flex-direction:column;gap:.5rem;transition:visibility var(--transition-normal)}.timeline-entry.is-open .timeline-panel-inner{visibility:visible}.timeline-bullet{position:relative;font-size:.875rem;line-height:1.6;color:var(--text-secondary);padding-left:1rem;max-width:76ch}.timeline-bullet:first-child{margin-top:.75rem}.timeline-bullet:before{content:"";position:absolute;left:0;top:.6rem;width:4px;height:4px;border-radius:50%;background:var(--accent-blue);opacity:.6}.timeline-entry:hover .timeline-node,.timeline-entry.is-open .timeline-node{border-color:var(--accent-blue);background:var(--bg-surface-hover)}.timeline-entry:hover .timeline-period{color:var(--text-primary)}.timeline-entry.is-current .timeline-node{border-color:var(--accent-mint);color:var(--accent-mint)}.timeline-entry.is-current .timeline-title{font-size:1.25rem}.timeline-entry.is-current .timeline-period{color:var(--accent-mint)}.timeline-entry.is-current .timeline-node:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1px solid var(--accent-mint);animation:pulse-ring 3s infinite ease-in-out}@media (max-width: 1024px){.timeline{--gutter-w: 8.5rem;--rail-w: 2.75rem}.timeline-meta{padding-right:1rem}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.75rem}.project-card{display:flex;flex-direction:column;justify-content:space-between;height:100%}.project-category{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-cyan);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.project-title{font-family:var(--font-heading);font-size:1.35rem;font-weight:700;color:var(--text-primary);margin-bottom:.75rem;line-height:1.3}.project-summary{font-size:.9375rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.25rem}.project-tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-footer{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;border-top:1px solid var(--border-color)}.ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.ai-card-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem;display:flex;align-items:center;gap:.625rem}.personal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.personal-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.personal-icon-wrapper{width:2.5rem;height:2.5rem;border-radius:var(--radius-md);background:#3b82f61a;color:var(--accent-blue);display:flex;align-items:center;justify-content:center}.personal-card-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--text-primary)}.personal-card-cat{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-cyan)}.personal-card-desc{font-size:.875rem;color:var(--text-secondary);line-height:1.5;margin-bottom:.875rem}.personal-card-detail{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);padding:.35rem .625rem;background:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .2s ease}.modal-content{background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:850px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);position:relative;padding:2.5rem}.modal-close{position:absolute;top:1.5rem;right:1.5rem;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.modal-close:hover{color:var(--text-primary);background:var(--bg-surface-hover)}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.case-study-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.case-study-title{font-family:var(--font-heading);font-size:2rem;font-weight:800;color:var(--text-primary);margin-top:.5rem;margin-bottom:.75rem}.case-section{margin-bottom:2rem}.case-section-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--accent-blue);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.case-arch-box{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;margin-top:.75rem}.case-arch-step{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;font-size:.9375rem;color:var(--text-secondary)}.case-arch-step:last-child{margin-bottom:0}.case-arch-num{font-family:var(--font-mono);font-weight:700;color:var(--accent-cyan);background:#06b6d41a;padding:.1rem .5rem;border-radius:var(--radius-sm)}.cv-container{font-family:var(--font-sans)}.cv-header{border-bottom:2px solid var(--accent-blue);padding-bottom:1.5rem;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.cv-name{font-family:var(--font-heading);font-size:2.25rem;font-weight:800;color:var(--text-primary)}.cv-role{font-size:1.125rem;font-weight:600;color:var(--accent-blue)}.cv-contact-row{display:flex;gap:1.25rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-secondary);margin-top:.5rem}.cv-section{margin-bottom:2rem}.cv-section-heading{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);padding-bottom:.35rem;margin-bottom:1rem}.cv-item{margin-bottom:1.25rem}.cv-item-title{font-weight:700;font-size:1rem;color:var(--text-primary);display:flex;justify-content:space-between}.cv-item-sub{font-size:.875rem;color:var(--accent-cyan);font-weight:600;margin-bottom:.35rem}.footer-section{background:var(--bg-surface);padding:5rem 0 3rem;border-top:1px solid var(--border-color)}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;margin-bottom:4rem}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-secondary)}.form-input,.form-textarea{width:100%;padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:.9375rem;transition:border-color var(--transition-fast)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #3b82f626}.form-textarea{min-height:120px;resize:vertical}.footer-bottom{border-top:1px solid var(--border-color);padding-top:2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted)}@media (max-width: 900px){.hero-grid,.footer-grid{grid-template-columns:1fr;gap:2.5rem}.hero-title{font-size:2.5rem}.timeline{--rail-w: 2.5rem;--node-size: 2rem;--node-centre: 1rem;max-width:100%}.timeline-entry{grid-template-columns:var(--rail-w) minmax(0,1fr);padding-bottom:1.75rem}.timeline-rail{grid-column:1;grid-row:1 / span 2}.timeline-meta{grid-column:2;grid-row:1;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:.3rem .625rem;text-align:left;padding-top:.25rem;padding-right:0;padding-left:.25rem}.timeline-body{grid-column:2;grid-row:2;padding-top:.35rem}.timeline-description,.timeline-bullet{max-width:none}.timeline-toggle{padding:.5rem 0;min-height:44px}}@media (max-width: 640px){.nav-links{display:none}.hero-title{font-size:2rem}.section-title{font-size:1.75rem}.modal-content{padding:1.5rem}}@media print{body{background:#fff!important;color:#000!important}.header-nav,.modal-close,.btn,.footer-section,.section-header{display:none!important}.modal-overlay{position:static;background:none;padding:0}.modal-content{box-shadow:none;border:none;max-width:100%;padding:0}}.typing-cursor{display:inline-block;width:2px;height:1.2em;background:var(--accent-cyan);margin-left:2px;vertical-align:text-bottom;animation:cursor-blink .8s step-end infinite}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.scramble-text{font-variant-numeric:tabular-nums}.hero-content,.hero-telemetry-card{position:relative;z-index:1}@media (max-width: 640px){.header-nav.scrolled{left:.5rem;right:.5rem;top:.4rem}}@media (prefers-reduced-motion: reduce){.hero-title .highlight,.section-title{animation:none!important;background-size:100% 100%!important}.typing-cursor{animation:none;opacity:1}.glass-card{transition:none}}.journey{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;font-family:var(--font-sans);--accent: #7dd3fc}.journey-vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(125% 92% at 50% 46%,transparent 42%,rgba(2,4,9,.58) 100%),linear-gradient(to bottom,rgba(2,4,9,.45) 0%,transparent 18%,transparent 76%,rgba(2,4,9,.5) 100%)}.journey-scrim{position:absolute;left:0;top:0;opacity:0;background:radial-gradient(closest-side,#02050bcc,#02050b9e 24%,#02050b57 46%,#02050b1f 66%,#02050b00 84%);will-change:transform,opacity}.journey-point{position:absolute;left:0;top:0;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle,#ffffff 0%,var(--accent) 44%,rgba(125,211,252,0) 74%);box-shadow:0 0 7px #ffffff38;opacity:0;will-change:transform,opacity}.journey-ring{position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;border:1px solid var(--accent);opacity:0;will-change:transform,opacity}.journey-link{position:absolute;left:0;top:0;height:1px;transform-origin:0 50%;background:linear-gradient(to right,var(--accent),rgba(125,211,252,0));opacity:0;will-change:transform,width,opacity}.journey-beat{position:absolute;left:0;top:0;opacity:0;will-change:transform,opacity,filter}.jl-detail{opacity:0}@media (max-width: 900px){.story-rail{display:none}}@media (max-width: 640px){.story-nav span{display:none}.story-identity{font-size:.8rem}}@media (prefers-reduced-motion: reduce){.journey-point,.journey-ring,.journey-link{display:none}.timeline-entry.is-current .timeline-node:after{animation:none}.timeline-panel,.timeline-panel-inner,.timeline-chevron{transition:none}}.section{padding:7rem 0;scroll-margin-top:5rem}.section-header{max-width:46rem;margin-bottom:3.5rem}.section-title{font-family:var(--font-heading);font-size:clamp(2rem,4vw,2.85rem);font-weight:700;letter-spacing:-.03em;line-height:1.05;color:var(--text-primary);margin-bottom:1rem}.section-subtitle{font-size:1.0625rem;line-height:1.7;color:var(--text-secondary);max-width:42rem}.hero{padding:clamp(7rem,16vh,11rem) 0 clamp(4rem,9vh,7rem);scroll-margin-top:5rem}.hero-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.8125rem;color:var(--text-secondary);margin-bottom:2rem}.hero-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-mint, #10b981);box-shadow:0 0 0 3px #10b98129;flex-shrink:0}.hero-name{font-family:var(--font-heading);font-size:clamp(2.75rem,8vw,5rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--text-primary);margin:0 0 .5rem}.hero-role{font-size:clamp(1.1rem,2.4vw,1.4rem);color:var(--accent-blue);font-weight:500;letter-spacing:-.01em;margin:0 0 2rem}.hero-positioning{font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.65;color:var(--text-secondary);max-width:40rem;margin:0 0 2.5rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:3rem}.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;padding-top:1.75rem;border-top:1px solid var(--border-color)}.hero-meta-item{display:inline-flex;align-items:center;gap:.45rem;font-size:.875rem;color:var(--text-muted)}.hero-meta-link{text-decoration:none;transition:color var(--transition-fast)}.hero-meta-link:hover{color:var(--text-primary)}.logo-group{font-family:var(--font-heading);font-weight:700;font-size:1rem;letter-spacing:-.02em;color:var(--text-primary);text-decoration:none;white-space:nowrap}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.icon-btn:hover{color:var(--text-primary);border-color:var(--border-color-hover)}.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text-secondary)}.btn-ghost:hover{color:var(--text-primary);border-color:var(--border-color)}.nav-burger{display:none}.nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#03060c99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:90}.nav-scrim.open{opacity:1;pointer-events:auto}.nav-drawer{position:fixed;top:0;right:0;bottom:0;width:min(20rem,84vw);background:var(--bg-surface);border-left:1px solid var(--border-color);padding:5.5rem 1.5rem 2rem;display:flex;flex-direction:column;gap:2rem;transform:translate(100%);transition:transform .26s cubic-bezier(.32,.72,0,1);z-index:95}.nav-drawer.open{transform:translate(0)}.nav-drawer-links{display:flex;flex-direction:column}.nav-drawer-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-bottom:1px solid var(--border-color);text-align:left;padding:1rem 0;font-family:var(--font-heading);font-size:1.15rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast)}.nav-drawer-link:hover,.nav-drawer-link.active{color:var(--text-primary)}.nav-drawer-actions{display:flex;flex-direction:column;gap:.6rem}.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:3rem}.filter-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-size:.8125rem;padding:.45rem .9rem;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.filter-chip:hover{color:var(--text-primary);border-color:var(--border-color-hover)}.filter-chip.active{color:var(--bg-main);background:var(--text-primary);border-color:var(--text-primary)}.work-lead{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:4rem}.work-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2.25rem;transition:border-color var(--transition-normal)}.work-card:hover{border-color:var(--border-color-hover)}.work-category{display:block;font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.75rem}.work-title{font-family:var(--font-heading);font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:700;letter-spacing:-.025em;line-height:1.2;color:var(--text-primary);margin:0 0 .85rem}.work-title-sm{font-size:1.15rem}.work-summary{font-size:1rem;line-height:1.7;color:var(--text-secondary);max-width:52rem;margin:0}.work-decisions{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.25rem 2rem;margin:1.75rem 0;padding:1.5rem 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.work-decision-choice{display:block;font-size:.875rem;font-weight:650;color:var(--text-primary);margin-bottom:.3rem}.work-decision-reason{display:block;font-size:.875rem;line-height:1.6;color:var(--text-secondary)}.work-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem}.tech-list{display:flex;flex-wrap:wrap;gap:.4rem .85rem;list-style:none;padding:0;margin:0}.tech-list li{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.work-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.link-quiet{display:inline-flex;align-items:center;gap:.4rem;font-size:.8125rem;color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast)}.link-quiet:hover{color:var(--text-primary)}.work-subhead{font-family:var(--font-heading);font-size:1.05rem;font-weight:600;letter-spacing:.01em;color:var(--text-secondary);margin-bottom:1.5rem}.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1.25rem}.work-card-sm{padding:1.75rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;height:100%}.work-card-sm .work-summary{font-size:.9375rem;margin-bottom:1rem}.work-card-sm-cta{align-self:flex-start}.empty-note{color:var(--text-muted);font-size:.9375rem;padding:2rem 0}.approach-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:2.5rem 3rem;margin-bottom:5rem}.approach-item-head{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem;color:var(--accent-blue)}.approach-item-head h3{font-family:var(--font-heading);font-size:1.0625rem;font-weight:650;letter-spacing:-.015em;color:var(--text-primary);margin:0}.approach-summary{font-size:.9375rem;line-height:1.65;color:var(--text-secondary);margin:0 0 .9rem}.approach-points{list-style:none;padding:0;margin:0;border-left:1px solid var(--border-color)}.approach-points li{position:relative;padding:0 0 .7rem 1rem;font-size:.875rem;line-height:1.6;color:var(--text-muted)}.approach-points li:last-child{padding-bottom:0}.stack-block{padding-top:3rem;border-top:1px solid var(--border-color)}.stack-block-title{font-family:var(--font-heading);font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin:0 0 .6rem}.stack-block-note{font-size:.9375rem;line-height:1.65;color:var(--text-secondary);max-width:40rem;margin:0 0 2rem}.stack-rows{margin:0}.stack-row{display:grid;grid-template-columns:minmax(12rem,18rem) 1fr;gap:1rem 2.5rem;padding:1.25rem 0;border-top:1px solid var(--border-color)}.stack-row:last-child{border-bottom:1px solid var(--border-color)}.stack-row dt{margin:0}.stack-row-name{display:block;font-weight:650;font-size:.9375rem;color:var(--text-primary);margin-bottom:.2rem}.stack-row-desc{display:block;font-size:.8125rem;line-height:1.55;color:var(--text-muted)}.stack-row dd{margin:0;font-family:var(--font-mono);font-size:.8125rem;line-height:1.9;color:var(--text-secondary)}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(21rem,1fr));gap:2.5rem 3.5rem;margin-bottom:4.5rem}.about-block h3{font-family:var(--font-heading);font-size:1.0625rem;font-weight:650;letter-spacing:-.015em;color:var(--text-primary);margin:0 0 .7rem}.about-block p{font-size:.9688rem;line-height:1.75;color:var(--text-secondary);margin:0}.aside-block{padding-top:3rem;border-top:1px solid var(--border-color)}.aside-title{font-family:var(--font-heading);font-size:1.15rem;font-weight:650;color:var(--text-primary);margin:0 0 1.5rem}.aside-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.5rem 2.5rem;list-style:none;padding:0;margin:0 0 2rem}.aside-list li{display:flex;gap:.75rem;color:var(--text-muted)}.aside-list strong{display:block;font-size:.9375rem;font-weight:650;color:var(--text-primary);margin-bottom:.2rem}.aside-list span{font-size:.875rem;line-height:1.6;color:var(--text-secondary)}.aside-quote{font-size:1.0625rem;line-height:1.6;color:var(--text-secondary);font-style:italic;max-width:34rem;margin:0;padding-left:1.25rem;border-left:2px solid var(--accent-blue)}@media (max-width: 900px){.section{padding:4.5rem 0}.section-header{margin-bottom:2.5rem}.work-card,.work-card-sm{padding:1.5rem}.work-decisions{margin:1.25rem 0;padding:1.25rem 0;gap:1rem}.approach-list{gap:2rem;margin-bottom:3.5rem}.about-grid{gap:2rem;margin-bottom:3rem}.stack-row{grid-template-columns:1fr;gap:.5rem}.stack-block,.aside-block{padding-top:2.25rem}}@media (max-width: 860px){.nav-burger{display:inline-flex}.nav-links{display:none}.nav-story,.nav-cv{display:inline-flex;width:38px;height:38px;padding:0;justify-content:center;flex-shrink:0}.nav-story span,.nav-cv span{display:none}.nav-story{color:var(--accent-blue);border:1px solid var(--border-color-hover)}.nav-container,.nav-actions{gap:.4rem}}@media (max-width: 560px){.hero{padding:6rem 0 3.5rem}.hero-actions{margin-bottom:2.25rem}.hero-actions .btn{width:100%;justify-content:center}.hero-meta{gap:1rem 1.25rem}.work-card-foot{align-items:flex-start;flex-direction:column;gap:1rem}}@media (prefers-reduced-motion: reduce){.nav-drawer,.nav-scrim{transition:none}}.section-title{background:none;-webkit-background-clip:initial;-webkit-text-fill-color:currentColor;animation:none;color:var(--text-primary)}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,26rem);gap:4rem;align-items:center}.hero-copy{max-width:34rem}.hero-inner{max-width:52rem}.hero-panel{display:flex;flex-direction:column;gap:1.25rem}.sysdiag{margin:0;padding:1.25rem 1.25rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.sysdiag-cap{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.sysdiag-cap-title{font-family:var(--font-heading);font-size:.875rem;font-weight:650;color:var(--text-primary)}.sysdiag-cap-sub{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted)}.sysdiag-svg{display:block;width:100%;height:auto}.sysdiag-edges path{fill:none;stroke:var(--border-color);stroke-width:1.25}[data-theme=light] .sysdiag-edges path{stroke:#0f172a24}.sysdiag-packets circle{fill:var(--accent-cyan);filter:drop-shadow(0 0 4px var(--accent-cyan))}.sysdiag-nodes rect{fill:var(--bg-surface);stroke:var(--border-color);stroke-width:1}.sysdiag-nodes .is-accent rect{stroke:var(--accent-blue);fill:#3b82f614}.sysdiag-label{font-family:var(--font-mono);font-size:8.5px;font-weight:600;fill:var(--text-primary);text-anchor:middle}.sysdiag-sub{font-family:var(--font-mono);font-size:7px;fill:var(--text-muted);text-anchor:middle}.hero-facts{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem;margin:0}.hero-fact dt{font-size:.875rem;font-weight:650;color:var(--text-primary);letter-spacing:-.01em;margin-bottom:.15rem}.hero-fact dd{margin:0;font-size:.75rem;line-height:1.45;color:var(--text-muted)}@media (max-width: 1024px){.hero-layout{grid-template-columns:1fr;gap:3rem}.hero-copy{max-width:none}.hero-panel{max-width:30rem}}@media (max-width: 560px){.hero-facts{grid-template-columns:1fr;gap:.85rem}.sysdiag{padding:1rem 1rem .6rem}}@media (min-width: 1025px){.hero-name{font-size:clamp(2.75rem,5.4vw,4.25rem)}}html{overflow-x:clip}
