*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fdfaf3;--bg2:#f6ede0;--bg3:#ede0cf;--surface:#f9f2e7;--ink:#1c140c;--ink2:#4a3725;--muted:#826d57;--subtle:#e0d2c1;--border:#d8c6b2;--accent:#d9650b;--accent2:#b45309;--accent3:#eab308;--cert:#d9650b;--cert-ink:#fff;--accfg:#fff}.dark{--bg:#0e0b08;--bg2:#16120d;--bg3:#1e1913;--surface:#18130e;--ink:#fbf6ec;--ink2:#ded2be;--muted:#948472;--subtle:#251e17;--border:rgba(245,158,11,.16);--accent:#f59e0b;--accent2:#f97316;--accent3:#fbbf24;--cert:#f59e0b;--cert-ink:#0e0b08;--accfg:#0e0b08}html{scroll-behavior:smooth}body{background:#fdfaf3;background:var(--bg);color:#1c140c;color:var(--ink);font-family:IBM Plex Mono,monospace;overflow-x:hidden;transition:background .3s,color .3s}*,:after,:before{cursor:none!important}a{color:inherit;text-decoration:none}#scroll-progress{background:#d9650b;background:var(--accent);height:2px;left:0;top:0;transition:width .08s linear;width:0;z-index:200}#scroll-progress,#xhair{pointer-events:none;position:fixed}#xhair{height:18px;left:-200px;top:-200px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:-webkit-transform .08s;transition:transform .08s;transition:transform .08s,-webkit-transform .08s;width:18px;z-index:9999}#xhair:after,#xhair:before{background:#d9650b;background:var(--accent);content:"";position:absolute;transition:background .2s}#xhair:before{height:18px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:1px}#xhair:after{height:1px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:18px}#xhair.big{opacity:.45;-webkit-transform:translate(-50%,-50%) scale(2.2);transform:translate(-50%,-50%) scale(2.2)}nav{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fdfaf3;background:var(--bg);background:color-mix(in srgb,#fdfaf3 85%,transparent);background:color-mix(in srgb,var(--bg) 85%,transparent);border-bottom:1px solid #d8c6b2;border-bottom:1px solid var(--border);display:flex;left:0;padding:14px 40px;position:fixed;right:0;top:0;transition:background .3s,border-color .3s;z-index:100}.nav-quote{color:#1c140c;color:var(--ink);flex:1 1;font-family:Fraunces,serif;font-size:14px;font-style:italic;font-weight:700;letter-spacing:.2px;overflow:hidden;padding:0 24px;text-align:center;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.nav-quote:before{margin-right:3px}.nav-quote:after,.nav-quote:before{color:#d9650b;color:var(--accent);content:'"'}.nav-quote:after{margin-left:3px}.nav-id{align-items:center;cursor:pointer;display:flex;gap:10px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.logo-at,.nav-id{color:#1c140c;color:var(--ink)}.logo-at{font-family:Fraunces,serif;font-size:20px;font-style:italic;font-weight:700;letter-spacing:-1px;line-height:1;transition:color .25s}.logo-dot,.nav-id:hover .logo-at{color:#d9650b;color:var(--accent)}.logo-dot{font-size:14px;line-height:1;margin:0 2px 2px}.logo-tag{color:#826d57;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:8.5px;font-style:normal;letter-spacing:1.2px;text-transform:uppercase;vertical-align:middle}@media (max-width:640px){.logo-dot,.logo-tag{display:none}}.nav-r{align-items:center;display:flex;gap:18px}.nav-link{color:#826d57;color:var(--muted);font-size:10px;letter-spacing:1.5px;position:relative;text-transform:uppercase;transition:color .2s}.nav-link.active,.nav-link:hover{color:#d9650b;color:var(--accent)}.nav-link.active:after{bottom:-4px;content:"";height:1px;left:0;position:absolute;right:0}.nav-link.active:after,.nav-resume{background:#d9650b;background:var(--accent)}.nav-resume{align-items:center;border:1px solid #d9650b;border:1px solid var(--accent);color:#fff;color:var(--accfg);cursor:pointer;display:inline-flex;font-size:9.5px;gap:6px;letter-spacing:1.5px;padding:7px 12px 7px 10px;text-transform:uppercase;transition:background .2s,border-color .2s,-webkit-transform .15s;transition:background .2s,border-color .2s,transform .15s;transition:background .2s,border-color .2s,transform .15s,-webkit-transform .15s}.nav-resume svg{flex-shrink:0;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s}.nav-resume:hover{background:#1c140c;background:var(--ink);border-color:#1c140c;border-color:var(--ink);color:#fdfaf3;color:var(--bg)}.nav-resume:hover svg{-webkit-transform:translateY(2px);transform:translateY(2px)}.nav-resume:active{-webkit-transform:scale(.96);transform:scale(.96)}@media (max-width:820px){.nav-resume span{display:none}.nav-resume{padding:7px 9px}}.toggle-wrap{align-items:center;display:flex;gap:8px}.toggle-label{color:#826d57;color:var(--muted);font-size:9px;letter-spacing:1.5px;min-width:28px;text-transform:uppercase;transition:color .3s}.toggle-label.active{color:#d9650b;color:var(--accent)}.switch{cursor:pointer;height:22px;position:relative;width:40px}.switch input{height:0;opacity:0;position:absolute;width:0}.switch-track{background:#ede0cf;background:var(--bg3);border:1px solid #d8c6b2;border:1px solid var(--border);border-radius:11px;inset:0;position:absolute;transition:background .3s,border-color .3s}.switch input:checked~.switch-track{background:#d9650b;background:var(--accent);border-color:#d9650b;border-color:var(--accent)}.switch-thumb{background:#1c140c;background:var(--ink);border-radius:50%;height:14px;left:3px;position:absolute;top:3px;transition:background .3s,-webkit-transform .25s;transition:transform .25s,background .3s;transition:transform .25s,background .3s,-webkit-transform .25s;width:14px}.switch input:checked~.switch-track .switch-thumb{background:#0e0b08;-webkit-transform:translateX(18px);transform:translateX(18px)}#bg-canvas{inset:0;z-index:0}#bg-canvas,.burst-p{pointer-events:none;position:fixed}.burst-p{background:#d9650b;background:var(--accent);-webkit-transform-origin:center center;transform-origin:center center;width:2px;will-change:transform,opacity;z-index:9996}#hero,.ticker,footer,section{position:relative;z-index:1}#hero{align-items:center;display:flex;justify-content:flex-start;min-height:100vh;padding:100px 40px 60px}.hero-l{margin:0;max-width:640px;position:relative;text-align:left;z-index:2}.hero-eyebrow{align-items:center;color:#826d57;color:var(--muted);display:flex;font-size:9px;gap:10px;letter-spacing:3px;margin-bottom:20px;text-transform:uppercase}.hero-eyebrow:before{background:#d9650b;background:var(--accent);content:"";height:1px;width:28px}.hero-name{color:#1c140c;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(52px,6vw,84px);font-weight:700;letter-spacing:-2px;line-height:.94;margin-bottom:4px}.hero-name em{color:#d9650b;color:var(--accent);display:block;font-style:italic}.hero-title{border-left:2px solid #d9650b;border-left:2px solid var(--accent);color:#826d57;color:var(--muted);font-size:10px;letter-spacing:2.5px;line-height:2;margin:20px 0 28px;padding-left:12px;text-transform:uppercase}.hero-desc{color:#4a3725;color:var(--ink2);font-size:14px;line-height:1.9;margin-bottom:36px;max-width:520px}.hero-desc strong{color:#1c140c;color:var(--ink);font-weight:500}.hero-btns{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.btn-a{background:#d9650b;background:var(--accent);border:none;color:#fff;color:var(--accfg);cursor:pointer;display:inline-block;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:2px;padding:12px 24px;text-transform:uppercase;transition:background .2s}.btn-a:hover{background:#1c140c;background:var(--ink);color:#fdfaf3;color:var(--bg)}.btn-b{background:none;border:1px solid #d8c6b2;border:1px solid var(--border);color:#1c140c;color:var(--ink);cursor:pointer;display:inline-block;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:2px;padding:12px 24px;text-transform:uppercase;transition:border-color .2s}.btn-b:hover{border-color:#1c140c;border-color:var(--ink)}.btn-c{align-items:center;background:none;border:1px dashed #d9650b;border:1px dashed var(--accent);color:#1c140c;color:var(--ink);cursor:pointer;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:10px;gap:8px;letter-spacing:2px;padding:12px 18px 12px 14px;text-transform:uppercase;transition:background .2s,color .2s,border-style .2s}.btn-c svg{transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s}.btn-c:hover{background:#d9650b;background:var(--accent);border-style:solid;color:#fff;color:var(--accfg)}.btn-c:hover svg{-webkit-transform:translate(2px,-2px);transform:translate(2px,-2px)}.ticker{background:#f6ede0;background:var(--bg2);overflow:hidden;padding:10px 0;transition:background .3s}.ticker-inner{-webkit-animation:tick 20s linear infinite;animation:tick 20s linear infinite;display:flex;gap:48px;white-space:nowrap;will-change:transform}.ticker-inner span{color:#826d57;color:var(--muted);font-size:10px;letter-spacing:2px;text-transform:uppercase}.ticker-inner .hi{color:#d9650b;color:var(--accent)}@-webkit-keyframes tick{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@keyframes tick{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}section{border-top:1px solid #d8c6b2;border-top:1px solid var(--border);padding:90px 40px;transition:border-color .3s}.sec-label{align-items:center;color:#826d57;color:var(--muted);display:flex;font-size:9px;gap:14px;letter-spacing:3px;margin-bottom:56px;text-transform:uppercase}.sec-num{color:#d9650b;color:var(--accent);font-weight:500}.edu-list{display:flex;flex-direction:column;gap:1px}.edu-item{border-bottom:1px solid #d8c6b2;border-bottom:1px solid var(--border);display:grid;grid-template-columns:200px 1fr;padding:32px 0;transition:background .2s}.edu-item:first-child{border-top:1px solid #d8c6b2;border-top:1px solid var(--border)}.edu-item:hover{background:color-mix(in srgb,#f6ede0 60%,transparent);background:color-mix(in srgb,var(--bg2) 60%,transparent)}.edu-date{color:#826d57;color:var(--muted);font-size:9px;letter-spacing:1.5px;margin-bottom:8px;text-transform:uppercase}.edu-inst{color:#1c140c;color:var(--ink);font-size:13px;font-weight:500;margin-bottom:3px}.edu-loc{color:#826d57;color:var(--muted);font-size:10px}.edu-degree{color:#1c140c;color:var(--ink);font-family:Fraunces,serif;font-style:italic;font-weight:300;line-height:1.2;margin-bottom:10px}.edu-detail{color:#4a3725;color:var(--ink2);font-size:11px;line-height:1.8}.edu-tag{background:#b45309;background:var(--accent2);color:#fff;color:var(--accfg);display:inline-block;font-size:8px;letter-spacing:2px;margin-top:10px;padding:2px 7px;text-transform:uppercase}@media (max-width:768px){.edu-item{gap:10px;grid-template-columns:1fr}}.skills-outer{grid-gap:64px;display:grid;gap:64px;grid-template-columns:220px 1fr}.skills-intro{color:#1c140c;color:var(--ink);font-family:Fraunces,serif;font-size:26px;font-style:italic;line-height:1.35}.skills-intro em{color:#d9650b;color:var(--accent);font-style:italic}.skills-cols{display:flex;flex-direction:column;gap:1px}.sk-row{border:1px solid #d8c6b2;border:1px solid var(--border);border-bottom:none;display:grid;grid-template-columns:130px 1fr;transition:border-color .2s}.sk-row:last-child{border-bottom:1px solid #d8c6b2;border-bottom:1px solid var(--border)}.sk-row:hover{border-color:#d9650b;border-color:var(--accent)}.sk-cat{align-items:center;border-right:1px solid #d8c6b2;border-right:1px solid var(--border);color:#826d57;color:var(--muted);display:flex;font-size:9px;letter-spacing:2px;padding:14px 18px;text-transform:uppercase;transition:all .2s}.sk-row:hover .sk-cat{border-color:#d9650b;border-color:var(--accent);color:#d9650b;color:var(--accent)}.sk-tags{align-items:center;display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px}.sk-tag{background:#f9f2e7;background:var(--surface);border:1px solid #e0d2c1;border:1px solid var(--subtle);color:#4a3725;color:var(--ink2);font-size:10px;padding:3px 9px;transition:all .2s}.sk-tag:hover{border-color:#d9650b;border-color:var(--accent);color:#d9650b;color:var(--accent)}.exp{grid-gap:0;border-bottom:1px solid #d8c6b2;border-bottom:1px solid var(--border);display:grid;gap:0;grid-template-columns:1fr;padding:40px 0}.exp:first-child{border-top:1px solid #d8c6b2;border-top:1px solid var(--border)}.exp-meta-line{align-items:center;color:#826d57;color:var(--muted);display:flex;flex-wrap:wrap;font-size:9px;letter-spacing:1.5px;margin-bottom:14px;text-transform:uppercase}.exp-meta-sep{color:#d9650b;color:var(--accent)}.exp-tag-inline{background:#d9650b;background:var(--accent);color:#fff;color:var(--accfg);display:inline-block;font-size:8px;letter-spacing:2px;padding:2px 7px;text-transform:uppercase}.exp-main h3{color:#1c140c;color:var(--ink);font-family:Fraunces,serif;font-size:24px;font-style:italic;font-weight:300;line-height:1.2;margin-bottom:20px}.exp-kpis{display:flex;gap:1px;margin-bottom:24px}.kpi{background:#ede0cf;background:var(--bg3);flex:1 1;padding:14px 16px;transition:background .3s}.kpi-val{color:#d9650b;color:var(--accent);font-family:Fraunces,serif;font-size:22px;font-weight:700;line-height:1}.kpi-lab{color:#826d57;color:var(--muted);font-size:8px;letter-spacing:1.5px;margin-top:4px;text-transform:uppercase}.exp-pts{display:flex;flex-direction:column;list-style:none}.exp-pts li{border-bottom:1px solid #e0d2c1;color:#4a3725;color:var(--ink2);cursor:default;display:flex;font-size:12.5px;gap:14px;padding:8px 0;transition:color .2s}.exp-pts li:last-child{border-bottom:none}.exp-pts li:hover{color:#1c140c;color:var(--ink)}.exp-pts li:before{color:#d9650b;color:var(--accent);content:"//";flex-shrink:0;font-size:10px;margin-top:2px}.proj-grid{grid-gap:1px;background:#d8c6b2;background:var(--border);display:grid;gap:1px;grid-template-columns:repeat(2,1fr)}.proj-card{background:#f9f2e7;background:var(--surface);cursor:pointer;overflow:hidden;padding:36px;position:relative;transition:background .3s}.proj-card:hover{background:color-mix(in srgb,#f9f2e7 80%,#ede0cf);background:color-mix(in srgb,var(--surface) 80%,var(--bg3))}.proj-card:before{bottom:-8px;color:#d8c6b2;color:var(--border);content:attr(data-num);font-family:Fraunces,serif;font-size:80px;font-style:italic;font-weight:700;line-height:1;pointer-events:none;position:absolute;right:14px;transition:color .3s}.proj-card:hover:before{color:#e0d2c1;color:var(--subtle)}.proj-status{align-items:center;color:#826d57;color:var(--muted);display:flex;font-size:8px;gap:8px;letter-spacing:2px;margin-bottom:14px;text-transform:uppercase}.proj-dot{-webkit-animation:blink 2.4s ease-in-out infinite;animation:blink 2.4s ease-in-out infinite;background:#d9650b;background:var(--accent);border-radius:50%;cursor:pointer;height:5px;width:5px}.proj-dot.wip{-webkit-animation:blink 1.1s ease-in-out infinite;animation:blink 1.1s ease-in-out infinite;background:#eab308;background:var(--accent3)}@-webkit-keyframes blink{0%,to{opacity:1}50%{opacity:.25}}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.proj-title{color:#1c140c;color:var(--ink);font-family:Fraunces,serif;font-size:24px;font-weight:700;line-height:1.1;margin-bottom:12px}.proj-desc{color:#4a3725;color:var(--ink2);font-size:13px;line-height:1.85;margin-bottom:20px}.proj-desc-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.proj-desc-item{color:#4a3725;color:var(--ink2);font-size:13px;line-height:1.75;padding-left:18px;position:relative}.proj-desc-item:before{content:"▸";left:0;position:absolute;top:0}.proj-desc-item:before,.proj-star-tag{color:#d9650b;color:var(--accent);font-weight:700}.proj-star-tag{background:color-mix(in srgb,#d9650b 12%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,#d9650b 26%,transparent);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);border-radius:3px;display:inline-block;font-size:9.5px;letter-spacing:.8px;line-height:1.5;margin-right:8px;padding:1px 7px;text-transform:uppercase;vertical-align:baseline}.proj-stack{display:flex;flex-wrap:wrap;gap:6px}.proj-chip{background:#f9f2e7;background:var(--surface);border:1px solid #e0d2c1;border:1px solid var(--subtle);color:#826d57;color:var(--muted);font-size:9px;letter-spacing:1.5px;padding:3px 8px;text-transform:uppercase;transition:background .3s}.proj-card--linked{color:inherit;display:block;text-decoration:none}.proj-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;position:relative;z-index:2}.proj-btn{align-items:center;cursor:pointer;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;gap:7px;letter-spacing:1.5px;line-height:1;padding:8px 14px;text-decoration:none;text-transform:uppercase;transition:all .2s ease}.proj-btn--repo{background:#f9f2e7;background:var(--surface);border:1px solid #d8c6b2;border:1px solid var(--border);color:#1c140c;color:var(--ink)}.proj-btn--repo:hover{background:#1c140c;background:var(--ink);border-color:#1c140c;border-color:var(--ink);color:#fdfaf3;color:var(--bg)}.proj-btn--live{background:#d9650b;background:var(--accent);border:1px solid #d9650b;border:1px solid var(--accent);color:#fff;color:var(--accfg)}.proj-btn--live:hover{background:#1c140c;background:var(--ink);border-color:#1c140c;border-color:var(--ink);color:#fdfaf3;color:var(--bg)}.proj-live-indicator{-webkit-animation:pulse-dot 1.6s infinite;animation:pulse-dot 1.6s infinite;background:currentColor;border-radius:50%;display:inline-block;height:6px;width:6px}@-webkit-keyframes pulse-dot{0%{opacity:.8;-webkit-transform:scale(.85);transform:scale(.85)}50%{box-shadow:0 0 5px currentColor;opacity:1;-webkit-transform:scale(1.25);transform:scale(1.25)}to{opacity:.8;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes pulse-dot{0%{opacity:.8;-webkit-transform:scale(.85);transform:scale(.85)}50%{box-shadow:0 0 5px currentColor;opacity:1;-webkit-transform:scale(1.25);transform:scale(1.25)}to{opacity:.8;-webkit-transform:scale(.85);transform:scale(.85)}}.proj-btn-arrow{font-size:11px;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.proj-btn:hover .proj-btn-arrow{-webkit-transform:translate(2px,-2px);transform:translate(2px,-2px)}.contact-grid{grid-gap:80px;align-items:start;display:grid;gap:80px;grid-template-columns:1fr 1fr}.contact-big{color:#1c140c;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(32px,4vw,52px);font-style:italic;font-weight:300;line-height:1.15;margin-bottom:24px}.contact-big strong{color:#d9650b;color:var(--accent);display:block;font-weight:700}.contact-note{color:#826d57;color:var(--muted);font-size:11px;line-height:1.9}.contact-links{display:flex;flex-direction:column}.c-link{align-items:center;border-bottom:1px solid #d8c6b2;border-bottom:1px solid var(--border);cursor:pointer;display:flex;justify-content:space-between;padding:20px 0;transition:all .2s}.c-link:first-child{border-top:1px solid #d8c6b2;border-top:1px solid var(--border)}.c-link:hover .c-link-arrow{-webkit-transform:translateX(5px);transform:translateX(5px)}.c-link:hover .c-link-arrow,.c-link:hover .c-link-label{color:#d9650b;color:var(--accent)}.c-link-l{display:flex;flex:1 1;flex-direction:column;gap:3px;min-width:0}.c-link-type{color:#826d57;color:var(--muted);font-size:8px;letter-spacing:2px;text-transform:uppercase}.c-link-label{color:#1c140c;color:var(--ink);font-size:12px;overflow-wrap:anywhere;transition:color .2s}.c-link-arrow{color:#826d57;color:var(--muted);flex-shrink:0;font-size:14px;transition:color .2s,-webkit-transform .2s;transition:transform .2s,color .2s;transition:transform .2s,color .2s,-webkit-transform .2s}@-webkit-keyframes vibrate{0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}10%{-webkit-transform:translate(-2px,-1px) rotate(-2deg);transform:translate(-2px,-1px) rotate(-2deg)}20%{-webkit-transform:translate(2px,1px) rotate(2deg);transform:translate(2px,1px) rotate(2deg)}30%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}40%{-webkit-transform:translate(2px,-2px) rotate(2deg);transform:translate(2px,-2px) rotate(2deg)}50%{-webkit-transform:translate(-2px,1px) rotate(-2deg);transform:translate(-2px,1px) rotate(-2deg)}60%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}70%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}80%{-webkit-transform:translate(2px,1px) rotate(2deg);transform:translate(2px,1px) rotate(2deg)}90%{-webkit-transform:translate(-1px,-1px) rotate(-1deg);transform:translate(-1px,-1px) rotate(-1deg)}}@keyframes vibrate{0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}10%{-webkit-transform:translate(-2px,-1px) rotate(-2deg);transform:translate(-2px,-1px) rotate(-2deg)}20%{-webkit-transform:translate(2px,1px) rotate(2deg);transform:translate(2px,1px) rotate(2deg)}30%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}40%{-webkit-transform:translate(2px,-2px) rotate(2deg);transform:translate(2px,-2px) rotate(2deg)}50%{-webkit-transform:translate(-2px,1px) rotate(-2deg);transform:translate(-2px,1px) rotate(-2deg)}60%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}70%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}80%{-webkit-transform:translate(2px,1px) rotate(2deg);transform:translate(2px,1px) rotate(2deg)}90%{-webkit-transform:translate(-1px,-1px) rotate(-1deg);transform:translate(-1px,-1px) rotate(-1deg)}}.c-link-icon{align-items:center;border:1px solid #d8c6b2;border:1px solid var(--border);color:#826d57;color:var(--muted);display:flex;flex-shrink:0;height:36px;justify-content:center;margin-right:16px;transition:border-color .2s,color .2s;width:36px}.c-link:hover .c-link-icon{-webkit-animation:vibrate .25s linear infinite;animation:vibrate .25s linear infinite;border-color:#d9650b;border-color:var(--accent);color:#d9650b;color:var(--accent)}footer{align-items:center;background:#f6ede0;background:var(--bg2);border-top:1px solid #d8c6b2;border-top:1px solid var(--border);color:#826d57;color:var(--muted);display:flex;flex-wrap:wrap;font-size:9px;gap:12px;justify-content:space-between;letter-spacing:1px;padding:26px 40px;text-transform:uppercase;transition:border-color .3s,background .3s}.footer-sig{font-family:Fraunces,serif;font-size:13px;font-style:italic;letter-spacing:0;text-transform:none}#konami,.footer-sig{color:#1c140c;color:var(--ink)}#konami{align-items:center;background:#fdfaf3;background:var(--bg);display:none;flex-direction:column;font-family:IBM Plex Mono,monospace;inset:0;justify-content:center;padding:40px;position:fixed;text-align:center;transition:background .3s;z-index:9999}#konami h2{color:#d9650b;color:var(--accent);font-family:Fraunces,serif;font-size:38px;font-style:italic;margin-bottom:16px}#konami p{color:#826d57;color:var(--muted);font-size:12px;line-height:2.1;max-width:440px}#konami .k-note{color:#eab308;color:var(--accent3);font-size:11px;margin-top:20px}#konami .close-k{background:none;border:1px solid #d8c6b2;border:1px solid var(--border);color:#826d57;color:var(--muted);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:2px;margin-top:32px;padding:8px 20px;text-transform:uppercase;transition:all .2s}#konami .close-k:hover{border-color:#d9650b;border-color:var(--accent);color:#d9650b;color:var(--accent)}.reveal{opacity:0;-webkit-transform:translateY(22px);transform:translateY(22px);transition:opacity .55s ease,-webkit-transform .55s ease;transition:opacity .55s ease,transform .55s ease;transition:opacity .55s ease,transform .55s ease,-webkit-transform .55s ease}.revealed{opacity:1;-webkit-transform:none;transform:none}@media (max-width:1024px){.exp-with-pipeline{grid-template-columns:1fr}.exp-pipeline{display:none}}@media (max-width:768px){nav{padding:14px 20px}.nav-link,.nav-quote{display:none}#hero{padding:88px 20px 50px}section{padding:56px 20px}.exp,.skills-outer{grid-template-columns:1fr}.exp{gap:16px}.contact-grid,.proj-grid{grid-template-columns:1fr}.contact-grid{gap:36px}footer{flex-direction:column;padding:18px 20px;text-align:center}}body.intro-locked{height:100vh;overflow:hidden!important}body.intro-locked #root #scroll-progress,body.intro-locked #root .ticker,body.intro-locked #root footer,body.intro-locked #root nav,body.intro-locked #root section,body.intro-locked>#scroll-progress,body.intro-locked>.ticker,body.intro-locked>footer,body.intro-locked>nav,body.intro-locked>section{opacity:0;transition:opacity .9s ease .05s}body.intro-revealing #root #scroll-progress,body.intro-revealing #root .ticker,body.intro-revealing #root footer,body.intro-revealing #root nav,body.intro-revealing #root section,body.intro-revealing>#scroll-progress,body.intro-revealing>.ticker,body.intro-revealing>footer,body.intro-revealing>nav,body.intro-revealing>section{opacity:1}#intro{color:var(--ink);font-family:IBM Plex Mono,monospace;inset:0;overflow:hidden;pointer-events:auto;position:fixed;transition:opacity .9s ease;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:300}#intro.hidden{opacity:0;pointer-events:none}.intro-bg{background:transparent}.intro-bg,.intro-grid{inset:0;position:absolute}.intro-grid{background-image:linear-gradient(90deg,hsla(40,7%,44%,.08) 1px,transparent 0),linear-gradient(180deg,hsla(40,7%,44%,.08) 1px,transparent 0);background-image:linear-gradient(to right,color-mix(in srgb,var(--ink) 6%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--ink) 6%,transparent) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);opacity:.55}.intro-hud{color:var(--ink2);font-size:11px;font-weight:400;letter-spacing:.08em;line-height:1.8;position:absolute;text-transform:uppercase}.intro-hud .dim,.intro-hud .hud-line .dim{color:var(--muted)}.hud-tl{left:28px;top:22px}.hud-tr{right:28px;text-align:right;top:22px}.hud-bl{bottom:82px;left:28px}.hud-br{bottom:82px;right:28px;text-align:right}.intro-hud .hud-line{white-space:pre}.intro-hud span[id^=hud-]{color:var(--accent)}.intro-scene{align-items:center;box-sizing:border-box;display:flex;inset:0;justify-content:center;opacity:0;padding:120px 0 110px;pointer-events:none;position:absolute;transition:opacity .25s ease}.intro-scene.on{opacity:1}.term-window{background:#1f1a15;background:color-mix(in srgb,var(--ink) 96%,var(--accent));border-radius:8px;box-shadow:0 40px 80px -20px rgba(0,0,0,.5),0 0 0 1px rgba(0,0,0,.8);box-shadow:0 40px 80px -20px color-mix(in srgb,var(--ink) 60%,transparent),0 0 0 1px color-mix(in srgb,var(--ink) 100%,transparent);color:#ede8de;font-size:14px;max-height:calc(100vh - 230px);overflow:hidden;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);transition:opacity .4s ease,-webkit-transform .4s ease;transition:transform .4s ease,opacity .4s ease;transition:transform .4s ease,opacity .4s ease,-webkit-transform .4s ease;width:min(720px,90%)}.dark .term-window{background:#100d0a;border:1px solid rgba(245,158,11,.24);color:#fbf6ec}.term-head{align-items:center;background:#181310;background:color-mix(in srgb,#000 35%,var(--ink));border-bottom:1px solid color-mix(in srgb,#fff 8%,transparent);display:flex;gap:8px;padding:10px 14px}.term-head .dot{border-radius:50%;height:10px;width:10px}.term-head .dot.r{background:#ff5f56}.term-head .dot.y{background:#ffbd2e}.term-head .dot.g{background:#34d399}.term-head .term-title{color:#c4b5a3;flex:1 1;font-size:11px;letter-spacing:.1em;text-align:center;text-transform:uppercase}.term-body{color:#f4ece1;font-size:13px;line-height:1.7;max-height:calc(100vh - 260px);min-height:min(320px,35vh);overflow-y:auto;padding:20px 26px 24px}.t-line{opacity:0;-webkit-transform:translateY(2px);transform:translateY(2px);transition:opacity .18s ease,-webkit-transform .18s ease;transition:opacity .18s ease,transform .18s ease;transition:opacity .18s ease,transform .18s ease,-webkit-transform .18s ease}.t-line.visible{opacity:1;-webkit-transform:none;transform:none}.t-line .pr{color:var(--accent);margin-right:8px}.t-line .ok{color:#f59e0b;margin-right:8px}.t-line .dim{color:#7c6f62}.t-line .cur{-webkit-animation:cur-blink 1s steps(2) infinite;animation:cur-blink 1s steps(2) infinite;color:var(--accent);display:inline-block;margin-left:2px;width:.55em}@-webkit-keyframes cur-blink{50%{opacity:0}}@keyframes cur-blink{50%{opacity:0}}.term-niche-hint{color:var(--accent);font-size:11.5px;letter-spacing:.08em;margin:10px 0 6px;opacity:.92}.term-cli-line{align-items:center;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);border-radius:4px;display:flex;gap:8px;margin-top:8px;padding:5px 8px}.term-cli-input{background:transparent;border:none;caret-color:var(--accent);color:#ede8de;flex:1 1;font-family:IBM Plex Mono,monospace;font-size:13px;margin:0;outline:none;padding:0}.term-history-entry{margin:4px 0}.term-history-cmd{color:#ede8de}.term-history-res{color:#a8a296;font-size:12px;margin-top:2px;padding-left:14px}.glyph-wrap{text-align:center;-webkit-transform-origin:center;transform-origin:center;will-change:transform,opacity}.glyph-meta{color:var(--muted);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.glyph-meta.top{margin-bottom:22px}.glyph-meta.bot{margin-top:18px}.glyph-at{align-items:baseline;color:var(--ink);display:inline-flex;font-family:Fraunces,serif;font-size:clamp(120px,22vw,260px);font-weight:700;gap:.12em;letter-spacing:-.06em;line-height:.9}.glyph-at,.glyph-at em{font-style:italic}.glyph-at .glyph-dot{color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:.35em;font-weight:400;-webkit-transform:translateY(-.7em);transform:translateY(-.7em)}.glyph-tag{color:var(--ink2);font-size:13px;letter-spacing:.1em;margin-top:14px}.glyph-rule{background:var(--accent);height:1px;margin:18px auto 0;width:48px}.scene-pipe{flex-direction:column;gap:18px}.pipe-title{color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.pipe-title .lbl-ok{color:#4fb357}.pipe-svg{color:var(--ink2);height:auto;width:min(1160px,94%)}.pipe-rules .rule{stroke:var(--border);stroke-width:1;stroke-dasharray:2 6;opacity:.7}.pipe-rules .lane-label,.pipe-years text{fill:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.pipe-years .yr{opacity:0;transition:opacity .3s ease}.pipe-years .yr.on{opacity:1}.pipe-nodes.airflow g.node rect{fill:var(--surface);stroke:var(--border);stroke-width:1;opacity:0;transform-box:fill-box;-webkit-transform-origin:left center;transform-origin:left center;transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease;transition:opacity .3s ease,transform .3s ease,-webkit-transform .3s ease}.pipe-nodes.airflow g.node text{fill:var(--ink);text-anchor:start;font-family:IBM Plex Mono,monospace;font-size:12px;opacity:0;transition:opacity .3s ease .08s}.pipe-nodes.airflow g.node circle.status{opacity:0;transition:opacity .3s ease .1s}.pipe-nodes.airflow g.node.ok circle.status{fill:#4fb357}.pipe-nodes.airflow g.node.run circle.status{fill:var(--accent);-webkit-animation:dot-pulse 1.2s ease-in-out infinite;animation:dot-pulse 1.2s ease-in-out infinite}.pipe-nodes.airflow g.node.pending circle.status{fill:none;stroke:var(--muted);stroke-width:1.2;stroke-dasharray:2 2}.pipe-nodes.airflow g.node.run rect{stroke:var(--accent)}.pipe-nodes.airflow g.node.pending rect{stroke-dasharray:3 3;opacity:1}.pipe-nodes.airflow g.node.on rect{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.pipe-nodes.airflow g.node.on circle.status,.pipe-nodes.airflow g.node.on text{opacity:1}.pipe-nodes.airflow g.node:not(.on) rect{-webkit-transform:scale(.94);transform:scale(.94)}@-webkit-keyframes dot-pulse{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:center;transform-origin:center}50%{opacity:.4;-webkit-transform:scale(.7);transform:scale(.7)}}@keyframes dot-pulse{0%,to{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:center;transform-origin:center}50%{opacity:.4;-webkit-transform:scale(.7);transform:scale(.7)}}.pipe-edges line.edge{stroke-dasharray:80;stroke-dashoffset:80;opacity:.65;transition:stroke-dashoffset .35s ease}.pipe-edges line.edge.on{stroke-dashoffset:0}.packet{fill:var(--accent);-webkit-filter:drop-shadow(0 0 6px var(--accent));filter:drop-shadow(0 0 6px var(--accent));opacity:0}.pipe-legend{color:var(--ink2);display:flex;flex-wrap:wrap;font-size:10px;gap:20px;justify-content:center;letter-spacing:.14em;padding:0 16px;text-transform:uppercase}.pipe-legend .muted{color:var(--muted)}.pipe-legend .lg{align-items:center;display:inline-flex;gap:7px}.pipe-legend .lg-dot{border-radius:50%;height:8px;width:8px}.pipe-legend .lg-dot.ok{background:#4fb357}.pipe-legend .lg-dot.run{background:var(--accent)}.pipe-legend .lg-dot.pending{background:transparent;border:1px dashed var(--muted)}.intro-progress{bottom:36px;left:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:min(560px,70vw)}.intro-progress-bar{background:hsla(40,7%,44%,.3);background:color-mix(in srgb,var(--ink) 14%,transparent);height:2px;overflow:hidden;position:relative}.intro-progress-bar:after{background:var(--accent);content:"";inset:0 auto 0 0;position:absolute;transition:width .1s linear;width:0;width:var(--p,0)}.intro-progress-ticks{height:6px;margin-top:2px;position:relative}.intro-progress-ticks .tick{background:hsla(40,7%,44%,.4);background:color-mix(in srgb,var(--ink) 30%,transparent);height:6px;position:absolute;top:0;width:1px}.intro-progress-labels{display:flex;justify-content:space-between;letter-spacing:.18em;margin-top:6px}.intro-hint,.intro-progress-labels{color:var(--muted);font-size:10px;text-transform:uppercase}.intro-hint{bottom:150px;letter-spacing:.25em;position:absolute;right:28px;text-align:right;transition:opacity .3s}.intro-hint.fade{opacity:0}.hint-chev{align-items:flex-end;color:var(--accent);display:flex;flex-direction:column;font-size:14px;gap:2px;margin-bottom:6px}.hint-chev span{-webkit-animation:chev 1.6s ease-in-out infinite;animation:chev 1.6s ease-in-out infinite;opacity:0}.hint-chev span:first-child{-webkit-animation-delay:0s;animation-delay:0s}.hint-chev span:nth-child(2){-webkit-animation-delay:.18s;animation-delay:.18s}.hint-chev span:nth-child(3){-webkit-animation-delay:.36s;animation-delay:.36s}@-webkit-keyframes chev{0%,to{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}40%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes chev{0%,to{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}40%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}body.intro-locked #xhair{display:none}body.intro-locked *,body.intro-locked :after,body.intro-locked :before{cursor:default!important}.hero-btns,.hero-desc,.hero-eyebrow,.hero-title{opacity:0;-webkit-transform:translateY(18px);transform:translateY(18px);transition:opacity .6s ease,-webkit-transform .6s ease;transition:opacity .6s ease,transform .6s ease;transition:opacity .6s ease,transform .6s ease,-webkit-transform .6s ease}.hero-animated .hero-eyebrow{opacity:1;-webkit-transform:none;transform:none;transition-delay:.05s}.hero-animated .hero-title{opacity:1;-webkit-transform:none;transform:none;transition-delay:.48s}.hero-animated .hero-desc{opacity:1;-webkit-transform:none;transform:none;transition-delay:.6s}.hero-animated .hero-btns{opacity:1;-webkit-transform:none;transform:none;transition-delay:.72s}.hero-name{cursor:pointer;-webkit-user-select:none;-ms-user-select:none;user-select:none}.hero-first-name{display:block}.hero-char{display:inline-block;-webkit-filter:blur(4px);filter:blur(4px);opacity:0;-webkit-transform:translateY(26px) rotateX(-20deg);transform:translateY(26px) rotateX(-20deg);transition:opacity .6s ease,color .2s ease,text-shadow .25s ease,-webkit-transform .7s cubic-bezier(.16,1,.3,1),-webkit-filter .5s ease;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .6s ease,filter .5s ease,color .2s ease,text-shadow .25s ease;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .6s ease,filter .5s ease,color .2s ease,text-shadow .25s ease,-webkit-transform .7s cubic-bezier(.16,1,.3,1),-webkit-filter .5s ease;transition-delay:calc(.12s + var(--i)*35ms);will-change:transform,opacity,filter}.hero-animated .hero-char{-webkit-filter:blur(0);filter:blur(0);opacity:1;-webkit-transform:translateY(0) rotateX(0deg);transform:translateY(0) rotateX(0deg)}.hero-char:hover{color:var(--accent)!important;text-shadow:0 10px 24px color-mix(in srgb,var(--accent) 50%,transparent);-webkit-transform:translateY(-9px) scale(1.14) rotate(-2deg)!important;transform:translateY(-9px) scale(1.14) rotate(-2deg)!important;transition:color .15s,text-shadow .2s,-webkit-transform .18s cubic-bezier(.34,1.56,.64,1)!important;transition:transform .18s cubic-bezier(.34,1.56,.64,1),color .15s,text-shadow .2s!important;transition:transform .18s cubic-bezier(.34,1.56,.64,1),color .15s,text-shadow .2s,-webkit-transform .18s cubic-bezier(.34,1.56,.64,1)!important;transition-delay:0s!important}@-webkit-keyframes charWave{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}35%{color:var(--accent);text-shadow:0 12px 28px color-mix(in srgb,var(--accent) 60%,transparent);-webkit-transform:translateY(-16px) scale(1.18) rotate(-4deg);transform:translateY(-16px) scale(1.18) rotate(-4deg)}70%{-webkit-transform:translateY(3px) scale(.96) rotate(1deg);transform:translateY(3px) scale(.96) rotate(1deg)}to{-webkit-transform:translateY(0) scale(1) rotate(0);transform:translateY(0) scale(1) rotate(0)}}@keyframes charWave{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}35%{color:var(--accent);text-shadow:0 12px 28px color-mix(in srgb,var(--accent) 60%,transparent);-webkit-transform:translateY(-16px) scale(1.18) rotate(-4deg);transform:translateY(-16px) scale(1.18) rotate(-4deg)}70%{-webkit-transform:translateY(3px) scale(.96) rotate(1deg);transform:translateY(3px) scale(.96) rotate(1deg)}to{-webkit-transform:translateY(0) scale(1) rotate(0);transform:translateY(0) scale(1) rotate(0)}}.hero-char.char-wave{-webkit-animation:charWave .62s cubic-bezier(.2,.8,.2,1)!important;animation:charWave .62s cubic-bezier(.2,.8,.2,1)!important}.hero-name em{-webkit-animation:heroAmberGlow 4s ease-in-out infinite alternate;animation:heroAmberGlow 4s ease-in-out infinite alternate}@-webkit-keyframes heroAmberGlow{0%{-webkit-filter:drop-shadow(0 0 0 transparent);filter:drop-shadow(0 0 0 transparent)}50%{-webkit-filter:drop-shadow(0 0 14px color-mix(in srgb,var(--accent) 35%,transparent));filter:drop-shadow(0 0 14px color-mix(in srgb,var(--accent) 35%,transparent))}to{-webkit-filter:drop-shadow(0 0 22px color-mix(in srgb,var(--accent2) 45%,transparent));filter:drop-shadow(0 0 22px color-mix(in srgb,var(--accent2) 45%,transparent))}}@keyframes heroAmberGlow{0%{-webkit-filter:drop-shadow(0 0 0 transparent);filter:drop-shadow(0 0 0 transparent)}50%{-webkit-filter:drop-shadow(0 0 14px color-mix(in srgb,var(--accent) 35%,transparent));filter:drop-shadow(0 0 14px color-mix(in srgb,var(--accent) 35%,transparent))}to{-webkit-filter:drop-shadow(0 0 22px color-mix(in srgb,var(--accent2) 45%,transparent));filter:drop-shadow(0 0 22px color-mix(in srgb,var(--accent2) 45%,transparent))}}.sec-label{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px);transition:opacity .45s ease,-webkit-transform .45s ease;transition:opacity .45s ease,transform .45s ease;transition:opacity .45s ease,transform .45s ease,-webkit-transform .45s ease}.sec-label.label-in{opacity:1;-webkit-transform:none;transform:none}.sk-tag{opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px);transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease;transition:opacity .3s ease,transform .3s ease,-webkit-transform .3s ease}.skills-revealed .sk-tag{opacity:1;-webkit-transform:none;transform:none}.kpi-val.kpi-counting{color:var(--accent);transition:color .8s ease}.proj-card{-webkit-transform:perspective(800px) rotateX(0deg) rotateY(0deg) translateY(0);transform:perspective(800px) rotateX(0deg) rotateY(0deg) translateY(0);-webkit-transform-style:preserve-3d;transform-style:preserve-3d;transition:box-shadow .25s ease,border-color .25s ease,-webkit-transform .08s linear;transition:box-shadow .25s ease,border-color .25s ease,transform .08s linear;transition:box-shadow .25s ease,border-color .25s ease,transform .08s linear,-webkit-transform .08s linear;will-change:transform}.proj-card:not(:hover){transition:box-shadow .4s ease,border-color .4s ease,-webkit-transform .45s ease;transition:box-shadow .4s ease,border-color .4s ease,transform .45s ease;transition:box-shadow .4s ease,border-color .4s ease,transform .45s ease,-webkit-transform .45s ease}.c-link{opacity:0;-webkit-transform:translateX(-14px);transform:translateX(-14px);transition:opacity .35s ease,padding .2s,border-color .2s,-webkit-transform .35s ease;transition:opacity .35s ease,transform .35s ease,padding .2s,border-color .2s;transition:opacity .35s ease,transform .35s ease,padding .2s,border-color .2s,-webkit-transform .35s ease}.contact-revealed .c-link{opacity:1;-webkit-transform:none;transform:none}.sec-num{display:inline-block;min-width:2ch;transition:color .3s}#hero{overflow:hidden}#hero .hero-l{will-change:transform}nav{z-index:200}#hero{padding-top:120px}.hero-btns{position:relative;z-index:1}.nav-link{font-size:11px}.nav-quote{font-size:13px}.hero-eyebrow{font-size:11px;letter-spacing:2.5px}.hero-name{font-size:clamp(62px,7.5vw,100px)}.hero-title{font-size:13px;letter-spacing:2px;line-height:2.1}.hero-desc{font-size:16px;line-height:2}.sec-label{letter-spacing:2px;margin-bottom:48px}.sec-label,.sec-num{font-size:13px}.skills-intro{font-size:24px;margin-bottom:32px}.sk-row{gap:0 24px;grid-template-columns:150px 1fr}.sk-cat{align-self:start;font-size:12px;letter-spacing:1.5px;padding:4px 16px}.sk-tag{font-size:12px;letter-spacing:.5px;padding:7px 16px}.sk-tags{gap:10px;padding:4px 18px}.exp-meta-line{font-size:12px;gap:10px;margin-bottom:18px}#experience h3{font-size:clamp(20px,2.5vw,30px);margin-bottom:20px}.exp-kpis{gap:2px;margin-bottom:32px}.kpi{padding:20px 22px}.kpi-val{font-size:clamp(30px,4vw,48px)}.kpi-lab{font-size:11px;margin-top:6px}.exp-pts{gap:0}.exp-pts li{border-bottom:1px solid var(--subtle);font-size:15px;line-height:1.85;padding:14px 0 14px 28px}.exp-pts li:before{font-size:11px;margin-top:3px}.edu-date{font-size:11px}.edu-inst{font-size:16px}.edu-degree{font-size:20px}.edu-detail{font-size:14px;line-height:2}.edu-tag{font-size:10px}.proj-title{font-size:clamp(22px,3vw,32px)}.proj-desc{font-size:14px;line-height:1.95}.proj-chip{font-size:10px;letter-spacing:1px;padding:5px 11px}.proj-status{font-size:10px;letter-spacing:1.5px}.contact-big{font-size:clamp(28px,3.5vw,48px)}.contact-note{font-size:13px;line-height:2}.c-link-type{font-size:9px}.c-link-label{font-size:14px}footer{font-size:10px;letter-spacing:1.2px}.footer-sig{font-size:15px}.intro-theme-btn{align-items:center;background:color-mix(in srgb,var(--ink) 8%,transparent);border:1px solid var(--border);color:var(--muted);cursor:pointer;display:flex;font-family:IBM Plex Mono,monospace;font-size:10px;gap:10px;left:50%;letter-spacing:.15em;padding:7px 16px;position:absolute;text-transform:uppercase;top:64px;-webkit-transform:translateX(-50%);transform:translateX(-50%);transition:border-color .2s,color .2s,background .2s;-webkit-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;z-index:10}.intro-theme-btn:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:var(--accent);color:var(--accent)}.intro-theme-btn .tb-icon{font-size:12px;opacity:.7}@media (min-width:1400px){nav{padding:16px 64px}#hero{padding:130px 64px 80px}section{padding:100px 64px}}@media (max-width:1280px){.nav-quote{font-size:12px;max-width:220px}}@media (max-width:1024px){nav{padding:14px 28px}#hero{padding:110px 28px 60px}section{padding:72px 28px}.skills-outer{gap:32px}.exp-with-pipeline,.skills-outer{grid-template-columns:1fr}.exp-pipeline{display:none}.contact-grid{gap:48px}.pipe-svg{width:min(900px,92%)}}@media (max-width:768px){nav{padding:12px 20px}.nav-r{gap:12px;margin-left:auto}.nav-link,.nav-quote{display:none}#hero{min-height:auto;padding:88px 20px 50px}.hero-l{max-width:100%}.hero-name{font-size:clamp(48px,12vw,72px);letter-spacing:-1.5px}.hero-desc{font-size:14px}.hero-btns{align-items:stretch;flex-direction:column;gap:10px}.btn-a,.btn-b{display:block;text-align:center;width:100%}.btn-c{justify-content:center;width:100%}section{padding:56px 20px}.sec-label{margin-bottom:28px}.skills-outer{gap:24px;grid-template-columns:1fr}.sk-row{grid-template-columns:1fr}.sk-cat,.sk-row{border-bottom:1px solid var(--border);border-right:none}.sk-cat{padding:10px 14px}.sk-tags{padding:10px 14px 14px}.exp-kpis{flex-wrap:wrap}.kpi{flex-basis:calc(50% - 2px);flex-grow:1;flex-shrink:1;min-width:0}.edu-item{gap:12px}.edu-item,.proj-grid{grid-template-columns:1fr}.proj-card{padding:24px}.contact-grid{gap:32px;grid-template-columns:1fr}footer{align-items:center;flex-direction:column;gap:8px;padding:18px 20px;text-align:center}.hud-bl,.hud-br{display:none}.hud-tl,.hud-tr{font-size:9px;line-height:1.6}.pipe-svg{width:100%}.glyph-at{font-size:clamp(80px,22vw,160px)}.term-body{font-size:12px;min-height:180px;padding:16px 18px 20px}.intro-progress{width:min(90%,420px)}.intro-theme-btn{font-size:9px;padding:6px 12px;top:18px}.intro-scene{padding:66px 0 96px}}@media (max-width:640px){.hero-eyebrow{font-size:8px;letter-spacing:.5px;overflow:hidden;white-space:nowrap}.pipe-svg{display:none}.scene-pipe .pipe-title{font-size:10px}}@media (max-width:480px){nav{padding:10px 16px}.logo-dot,.logo-tag,.toggle-label{display:none}.nav-resume{padding:7px 9px}.nav-resume span{display:none}.nav-r{gap:10px}#hero{padding:76px 16px 40px}.hero-eyebrow{font-size:7.5px;letter-spacing:.3px}.hero-name{font-size:clamp(38px,13vw,58px);letter-spacing:-1px}.hero-title{font-size:10px;letter-spacing:1.5px;line-height:1.85}.hero-desc{font-size:13px;line-height:1.85;margin-bottom:28px}.hero-btns{gap:8px}.btn-a,.btn-b{font-size:9px;padding:11px 20px}.btn-c{font-size:9px;padding:11px 16px}section{padding:44px 16px}.sec-label{font-size:10px;margin-bottom:20px}.exp-pts li{font-size:13px;padding:10px 0 10px 18px}.kpi{padding:14px 12px}.kpi-val{font-size:clamp(22px,8vw,36px)}#experience h3{font-size:clamp(18px,5vw,24px)}.exp-meta-line{gap:6px}.proj-card{padding:20px}.proj-title{font-size:20px}.proj-card:before{bottom:-4px;font-size:60px}.c-link{padding:14px 0}.c-link-icon{height:30px;margin-right:12px;width:30px}footer{gap:6px;padding:14px 16px}.hud-tr{display:none}.term-window{width:95%}.term-body{font-size:11px;min-height:150px;padding:12px 14px 16px}.glyph-at{font-size:clamp(60px,20vw,100px)}.glyph-tag{font-size:11px}.intro-progress{bottom:24px;width:88%}.intro-hint{bottom:110px;right:14px}.intro-theme-btn{font-size:8px;letter-spacing:.1em;padding:5px 10px}.scene-pipe .pipe-legend{font-size:9px;gap:12px}}@media (max-width:360px){nav{padding:8px 12px}.logo-at{font-size:16px}#hero{padding:68px 12px 32px}.hero-eyebrow{font-size:7px;letter-spacing:0}.hero-name{font-size:clamp(32px,14vw,46px)}section{padding:36px 12px}.btn-a,.btn-b,.btn-c{font-size:8.5px;padding:10px 14px}.kpi{padding:10px 8px}.kpi-val{font-size:clamp(18px,9vw,30px)}.kpi-lab{font-size:9px}.proj-card{padding:16px}.proj-title{font-size:18px}footer{padding:12px}}@media (max-width:900px){.scene-pipe{padding:0 8px}.pipe-svg{overflow-x:auto}}.term-modal-backdrop{align-items:center;-webkit-animation:termFadeIn .2s ease-out;animation:termFadeIn .2s ease-out;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:rgba(0,0,0,.72);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9990}@-webkit-keyframes termFadeIn{0%{opacity:0}to{opacity:1}}@keyframes termFadeIn{0%{opacity:0}to{opacity:1}}.term-modal-window{-webkit-animation:termScaleIn .22s cubic-bezier(.16,1,.3,1);animation:termScaleIn .22s cubic-bezier(.16,1,.3,1);background:#100d0a;border:1px solid rgba(245,158,11,.22);border-radius:8px;box-shadow:0 30px 90px rgba(0,0,0,.9),0 0 0 1px rgba(245,158,11,.16);display:flex;flex-direction:column;font-family:IBM Plex Mono,monospace;height:min(640px,86vh);overflow:hidden;width:min(840px,94vw)}@-webkit-keyframes termScaleIn{0%{opacity:0;-webkit-transform:scale(.96) translateY(10px);transform:scale(.96) translateY(10px)}to{opacity:1;-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes termScaleIn{0%{opacity:0;-webkit-transform:scale(.96) translateY(10px);transform:scale(.96) translateY(10px)}to{opacity:1;-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}.term-modal-window .term-modal-head{align-items:center;background:#17130e;border-bottom:1px solid rgba(245,158,11,.12);display:flex;padding:10px 14px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.term-modal-window .term-dots{display:flex;gap:7px}.term-modal-window .term-dots .dot{border-radius:50%;cursor:pointer;height:11px;transition:opacity .15s,-webkit-transform .15s;transition:transform .15s,opacity .15s;transition:transform .15s,opacity .15s,-webkit-transform .15s;width:11px}.term-modal-window .term-dots .dot:hover{opacity:.85;-webkit-transform:scale(1.15);transform:scale(1.15)}.term-modal-window .term-dots .dot.r{background:#ff5f56}.term-modal-window .term-dots .dot.y{background:#ffbd2e}.term-modal-window .term-dots .dot.g{background:#27c93f}.term-modal-window .term-modal-title{color:#9c9589;flex:1 1;font-size:11px;letter-spacing:.12em;text-align:center;text-transform:uppercase}.term-modal-window .term-modal-esc{border:1px solid hsla(0,0%,100%,.08);border-radius:3px;color:#6d675e;cursor:pointer;font-size:10px;letter-spacing:.08em;padding:2px 6px;transition:color .15s,border-color .15s}.term-modal-window .term-modal-esc:hover{border-color:hsla(0,0%,100%,.25);color:#fbf6ec}.term-modal-window .term-pills-bar{align-items:center;background:#130f0b;border-bottom:1px solid rgba(245,158,11,.1);display:flex;gap:6px;overflow-x:auto;padding:8px 16px;scrollbar-width:none}.term-modal-window .term-pills-bar::-webkit-scrollbar{display:none}.term-modal-window .pills-label{color:#948472;font-size:9.5px;letter-spacing:.12em;margin-right:4px}.term-modal-window .term-pill-btn{background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.18);border-radius:4px;color:#ded2be;cursor:pointer;font-family:inherit;font-size:11px;padding:3px 8px;transition:all .18s ease;white-space:nowrap}.term-modal-window .term-pill-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--accfg);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.term-modal-window .term-modal-body{color:#fbf6ec;flex:1 1;font-size:12.5px;line-height:1.65;overflow-y:auto;padding:16px 20px;scrollbar-color:rgba(245,158,11,.25) transparent;scrollbar-width:thin}.term-modal-window .term-modal-body::-webkit-scrollbar{width:6px}.term-modal-window .term-modal-body::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.15);border-radius:3px}.term-modal-window .term-entry{margin-bottom:14px}.term-modal-window .term-entry.banner{color:var(--accent);font-size:11.5px;line-height:1.4;opacity:.95;white-space:pre-wrap}.term-modal-window .term-entry.cmd-echo{align-items:center;display:flex;gap:8px;margin-bottom:8px;margin-top:10px}.term-modal-window .prompt-lead{color:var(--accent);flex-shrink:0;font-weight:500}.term-modal-window .cmd-text{color:#fbf6ec;font-weight:600}.term-modal-window .entry-hdr{border-bottom:1px dashed hsla(0,0%,100%,.1);color:#ffbd2e;font-size:12px;font-weight:600;letter-spacing:.08em;margin-bottom:8px;padding-bottom:4px}.term-modal-window .help-box .help-hdr{color:#ffbd2e;font-weight:600;margin-bottom:6px}.term-modal-window .help-box .help-row{color:#b8b2a6;font-size:12px;padding-left:6px}.term-modal-window .skills-box .skill-row{margin-bottom:8px;padding-left:4px}.term-modal-window .skill-cat{color:var(--accent);display:inline-block;font-weight:600;min-width:130px}.term-modal-window .skill-val{color:#fbf6ec}.term-modal-window .tmodal-work-card{background:hsla(0,0%,100%,.02);border:1px solid hsla(0,0%,100%,.06);border-radius:5px;margin-bottom:10px;padding:10px 14px}.term-modal-window .tmodal-work-title{color:#fbf6ec;font-size:13px}.term-modal-window .tmodal-work-title .role{color:var(--accent)}.term-modal-window .tmodal-work-title .idx{color:#ffbd2e;margin-right:4px}.term-modal-window .tmodal-work-meta{color:#857f74;font-size:11px;margin:3px 0 6px}.term-modal-window .tmodal-work-bullets{list-style:none;margin:0;padding:0}.term-modal-window .tmodal-work-bullets li{color:#c4bfb4;font-size:12px;margin-bottom:4px;padding-left:14px;position:relative}.term-modal-window .tmodal-work-bullets li:before{color:var(--accent);content:"▸";left:0;position:absolute}.term-modal-window .tmodal-proj-card{background:hsla(0,0%,100%,.02);border:1px solid hsla(0,0%,100%,.06);border-radius:5px;margin-bottom:10px;padding:10px 14px}.term-modal-window .tmodal-proj-title{color:#fbf6ec;font-size:13px}.term-modal-window .tmodal-proj-title .idx{color:#ffbd2e;margin-right:4px}.term-modal-window .tmodal-proj-stack{color:#857f74;font-size:11px;margin:2px 0 5px}.term-modal-window .tmodal-proj-desc{color:#c4bfb4;font-size:12px;margin-bottom:6px}.term-modal-window .t-link{color:var(--accent);font-size:11.5px;text-decoration:underline;text-underline-offset:3px;transition:color .15s}.term-modal-window .t-link:hover{color:#ffbd2e}.term-modal-window .tmodal-edu-card{margin-bottom:8px;padding-left:4px}.term-modal-window .tmodal-edu-school{color:#fbf6ec}.term-modal-window .tmodal-edu-degree{color:#c4bfb4;font-size:12px}.term-modal-window .tmodal-edu-meta{color:#857f74;font-size:11px}.term-modal-window .tmodal-edu-meta .grade{color:#4fb357;font-weight:600}.term-modal-window .tmodal-contact-row{margin-bottom:6px;padding-left:4px}.term-modal-window .c-label{color:var(--accent);display:inline-block;font-weight:500;min-width:100px}.term-modal-window .c-val{color:#fbf6ec}.term-modal-window .text-box{color:#b8b2a6;padding-left:4px}.term-modal-window .error-box{color:#ff5f56;padding-left:4px}.term-modal-window .term-active-line{align-items:center;border-top:1px solid hsla(0,0%,100%,.05);display:flex;gap:8px;margin-top:10px;padding-top:6px}.term-modal-window .term-modal-input{background:transparent;border:none;caret-color:var(--accent);color:#fbf6ec;flex:1 1;font-family:IBM Plex Mono,monospace;font-size:13px;margin:0;outline:none;padding:0}.term-modal-window .term-modal-input::-webkit-input-placeholder{color:hsla(0,0%,100%,.22)}.term-modal-window .term-modal-input:-ms-input-placeholder{color:hsla(0,0%,100%,.22)}.term-modal-window .term-modal-input::placeholder{color:hsla(0,0%,100%,.22)}.term-modal-window .term-cursor{-webkit-animation:termBlink 1s steps(2) infinite;animation:termBlink 1s steps(2) infinite;color:var(--accent)}@-webkit-keyframes termBlink{50%{opacity:0}}@keyframes termBlink{50%{opacity:0}}.nav-terminal-btn{align-items:center;background:transparent;border:1px solid var(--border);color:var(--ink);cursor:pointer;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:9.5px;gap:6px;letter-spacing:1.5px;padding:6px 10px;text-transform:uppercase;transition:all .2s ease;-webkit-user-select:none;-ms-user-select:none;user-select:none}.nav-terminal-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.nav-terminal-btn .term-icon-svg{color:var(--accent);transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.nav-terminal-btn:hover .term-icon-svg{-webkit-transform:scale(1.15);transform:scale(1.15)}@media (max-width:768px){.nav-terminal-btn span{display:none}.nav-terminal-btn{padding:6px 8px}}
/*# sourceMappingURL=main.7903a361.css.map*/