:root{--bg: #0a0c10;--surface: #12151c;--surface-raised: #1a1e28;--border: #252a36;--border-soft: #1e222e;--text-primary: #e8eaf0;--text-secondary: #8a90a0;--text-muted: #555b6e;--accent: #c9a96e;--accent-dim: #c9a96e18;--accent-border: #c9a96e30;--green: #5cc98a;--green-dim: #5cc98a18;--mono: "DM Mono", monospace;--serif: "Instrument Serif", serif;--sans: "Plus Jakarta Sans", sans-serif;--page-max: 1100px;--page-pad: clamp(24px, 5vw, 56px);--section-gap: 0;--nav-h: 64px}[data-theme=light]{--bg: #f5f3ef;--surface: #eae7e1;--surface-raised: #dfdcd5;--border: #d0ccc4;--border-soft: #ddd9d1;--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--text-muted: #8a8780;--accent: #9e7c3a;--accent-dim: #9e7c3a18;--accent-border: #9e7c3a30;--green: #2e8b57;--green-dim: #2e8b5718}[data-theme=light] .noise{opacity:.015}[data-theme=light] #nav.scrolled{background:#f5f3efeb}[data-theme=light] .drawer{background:#f5f3eff7}[data-theme=light] .cert-badge{color:#3d2800}.theme-toggle{position:relative;width:48px;height:26px;border-radius:13px;border:1px solid var(--border);background:var(--surface);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s;flex-shrink:0}.theme-toggle:hover{border-color:var(--accent-border)}.theme-toggle .toggle-track{position:relative;width:100%;height:100%}.theme-toggle .toggle-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--accent);transition:transform .3s ease;display:flex;align-items:center;justify-content:center}[data-theme=light] .theme-toggle .toggle-thumb{transform:translate(22px)}.theme-toggle .toggle-icon{font-size:10px;line-height:1;-webkit-user-select:none;user-select:none}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}body{background:var(--bg);color:var(--text-primary);font-family:var(--sans);font-size:14.5px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}ul{list-style:none}strong{color:var(--text-primary);font-weight:600}.noise{position:fixed;inset:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none;z-index:200}#nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:100;transition:background .3s ease,border-color .3s ease;border-bottom:1px solid transparent}#nav.scrolled{background:#0a0c10e0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:var(--border-soft)}.nav-inner{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-pad);height:100%;display:flex;align-items:center;justify-content:space-between}.nav-mark{font-family:var(--mono);font-size:15px;font-weight:500;letter-spacing:1px;color:var(--text-primary)}.nav-dot{color:var(--accent)}.nav-links{display:flex;gap:36px}.nav-links a{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);transition:color .2s ease}.nav-links a:hover{color:var(--text-primary)}.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.burger span{display:block;width:22px;height:1.5px;background:var(--text-secondary);transition:.2s ease}.burger.open span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}.burger.open span:nth-child(2){opacity:0}.burger.open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}.drawer{position:fixed;top:var(--nav-h);left:0;right:0;background:#0a0c10f5;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);z-index:99;padding:16px var(--page-pad);transform:translateY(-110%);opacity:0;transition:transform .3s ease,opacity .3s ease}.drawer.open{transform:translateY(0);opacity:1}.drawer ul{display:flex;flex-direction:column;gap:2px}.drawer a{display:block;padding:12px 0;font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-soft);transition:color .2s ease}.drawer a:hover{color:var(--accent)}.drawer li:last-child a{border-bottom:none}.page{max-width:var(--page-max);margin:0 auto;padding:calc(var(--nav-h) + 56px) var(--page-pad) 80px;position:relative}[data-fade]{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}[data-fade].visible{opacity:1;transform:translateY(0)}.cv-header{padding-bottom:48px;border-bottom:1px solid var(--border);margin-bottom:0}.cv-header-label{font-family:var(--mono);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:12px;margin-bottom:20px}.cv-header-label:before{content:"";display:block;width:28px;height:1px;background:var(--accent)}.cv-name{font-family:var(--serif);font-size:clamp(40px,6vw,64px);font-weight:400;line-height:1.05;letter-spacing:-.5px;color:var(--text-primary);margin-bottom:14px}.cv-name em{color:var(--accent);font-style:italic}.cv-tagline{font-size:13px;color:var(--text-muted);font-family:var(--mono);letter-spacing:.5px;margin-bottom:28px}.cv-meta{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--border-soft);padding-top:20px}.meta-pair{padding-right:40px;margin-right:0}.meta-key{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);display:block;margin-bottom:3px}.meta-val{font-size:13px;color:var(--text-secondary);font-weight:400}.meta-val a{transition:color .2s}.meta-val a:hover{color:var(--accent)}.cv-section,.cv-section-header{display:grid;grid-template-columns:180px 1fr;border-top:1px solid var(--border-soft);padding:48px 0}.cv-section--last{border-bottom:1px solid var(--border-soft)}.section-rail{padding-right:32px;padding-top:2px}.rail-num{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--accent);margin-bottom:6px}.rail-name{font-family:var(--serif);font-size:19px;font-weight:400;color:var(--text-secondary);line-height:1.3}.section-body{flex:1}.section-body--flush{padding:0}.section-body p{color:var(--text-secondary);line-height:1.78;font-weight:300}.section-body p+p{margin-top:10px}.section-body p.lead{font-size:15.5px;color:var(--text-primary);font-weight:400;margin-bottom:12px;line-height:1.7}.impact-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:32px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--border)}.impact-stat{padding:20px 18px;background:var(--surface);transition:background .25s ease}.impact-stat:hover{background:var(--surface-raised)}.impact-val{display:block;font-family:var(--serif);font-size:28px;color:var(--accent);line-height:1;margin-bottom:6px}.impact-desc{display:block;font-family:var(--mono);font-size:10px;color:var(--text-muted);line-height:1.5;letter-spacing:.3px}.role-block{display:grid;grid-template-columns:180px 1fr;border-top:1px solid var(--border-soft);padding:40px 0;transition:background .2s ease}.role-block:last-of-type{border-bottom:none}.role-rail{padding-right:32px;padding-top:4px;display:flex;flex-direction:column;gap:8px}.role-period{font-family:var(--mono);font-size:10.5px;color:var(--text-muted);letter-spacing:.5px;line-height:1.5}.role-badge{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--green);background:var(--green-dim);border:1px solid var(--green);border-opacity:.3;padding:3px 9px;border-radius:3px;width:fit-content}.role-body{flex:1}.role-org{font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.role-loc{color:var(--text-muted);text-transform:none;letter-spacing:0;font-size:10px;margin-left:6px}.role-title{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--text-primary);margin-bottom:12px;line-height:1.25}.role-level{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--text-muted);margin-left:8px;font-style:normal;vertical-align:middle}.role-summary{font-size:13.5px;color:var(--text-secondary);line-height:1.72;font-weight:300;margin-bottom:18px}.role-bullets{list-style:none;margin-bottom:20px;display:flex;flex-direction:column;gap:10px}.role-bullets li{font-size:13px;color:var(--text-secondary);line-height:1.7;padding-left:18px;position:relative;font-weight:300}.role-bullets li:before{content:"›";position:absolute;left:0;color:var(--text-muted);font-weight:600}.role-tags{display:flex;flex-wrap:wrap;gap:6px}.role-tags span{font-family:var(--mono);font-size:10px;padding:4px 11px;border-radius:4px;background:var(--surface-raised);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.3px;transition:color .2s,border-color .2s}.role-tags span:hover{color:var(--accent);border-color:var(--accent-border)}.edu-row{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--border);border-radius:10px;background:var(--border);overflow:hidden}.edu-block{padding:28px 24px;background:var(--surface)}.edu-degree{font-family:var(--serif);font-size:19px;font-weight:400;color:var(--text-primary);margin-bottom:4px}.edu-inst{font-size:13px;color:var(--accent);margin-bottom:10px;font-family:var(--mono);font-size:11px;letter-spacing:.5px}.edu-meta{display:flex;gap:12px;align-items:baseline}.edu-year{font-family:var(--mono);font-size:10px;color:var(--text-muted);letter-spacing:1px}.edu-note{font-family:var(--mono);font-size:9.5px;color:var(--text-muted);opacity:.7}.skills-grid{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:24px}.skill-row{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid var(--border-soft);background:var(--surface);transition:background .2s ease}.skill-row:last-child{border-bottom:none}.skill-row:hover{background:var(--surface-raised)}.skill-label{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);padding:16px 16px 16px 20px;border-right:1px solid var(--border-soft);display:flex;align-items:center}.skill-items{font-size:13px;color:var(--text-secondary);padding:16px 20px;line-height:1.6;font-weight:300}.certs-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cert-item{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:8px;transition:border-color .2s}.cert-item:hover{border-color:var(--accent-border)}.cert-badge{width:36px;height:36px;min-width:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.5px;background:linear-gradient(135deg,#f90,#fbbf24);color:#1a1200}.cert-badge--g{background:linear-gradient(135deg,#4285f4,#34a853,#fbbc05);color:#fff;font-size:13px}.cert-text{font-size:13px;color:var(--text-secondary);line-height:1.4;font-weight:400}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--border);border-radius:10px;background:var(--border);overflow:hidden}.contact-pair{padding:20px 22px;background:var(--surface);display:flex;flex-direction:column;gap:5px;transition:background .2s}.contact-pair:hover{background:var(--surface-raised)}.contact-key{font-family:var(--mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.contact-val{font-size:14px;color:var(--text-secondary);font-weight:400;transition:color .2s}.contact-val:hover{color:var(--accent)}.contact-val--open{color:var(--green);font-family:var(--mono);font-size:12px;letter-spacing:.5px}.cv-footer{margin-top:56px;padding-top:28px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.footer-left{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.footer-right{display:flex;gap:32px}.footer-stat{text-align:right}.footer-stat-val{font-family:var(--serif);font-size:26px;color:var(--accent);line-height:1;display:block}.footer-stat-label{font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin-top:3px;display:block}@media(max-width:820px){.cv-section,.cv-section-header,.role-block{grid-template-columns:1fr}.section-rail,.role-rail{display:flex;flex-direction:row;align-items:baseline;gap:14px;padding-right:0;padding-bottom:16px;border-bottom:1px solid var(--border-soft);margin-bottom:20px}.rail-name,.role-period{font-size:14px}.impact-row{grid-template-columns:1fr 1fr}.edu-row,.certs-row,.contact-grid,.skill-row{grid-template-columns:1fr}.skill-label{border-right:none;border-bottom:1px solid var(--border-soft);padding:12px 20px 8px}.skill-items{padding:10px 20px 14px}.footer-right{gap:20px}}@media(max-width:540px){.nav-links{display:none}.burger{display:flex}.impact-row{grid-template-columns:1fr}.cv-meta{flex-direction:column;gap:14px}.cv-footer{flex-direction:column;gap:20px;align-items:flex-start}.footer-right{gap:28px}.footer-stat{text-align:left}}
