@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg: #10100f;--bg-soft: #161614;--panel: #1b1b19;--panel-strong: #20201d;--accent: #f04d31;--accent-soft: rgba(240, 77, 49, .18);--text: #f2f1eb;--muted: #aaa79f;--line: rgba(255, 255, 255, .14);--line-soft: rgba(255, 255, 255, .08);--font-sans: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "IBM Plex Mono", monospace;--fs-display: clamp(2.4rem, 6vw, 5.4rem);--fs-lede: clamp(1.04rem, 2.1vw, 1.32rem);--fs-h2: clamp(.95rem, 1.2vw, 1.08rem);--fs-h3: clamp(.96rem, 1.14vw, 1.04rem);--fs-body: .96rem;--fs-meta: .73rem;--fs-micro: .68rem;--lh-tight: 1.08;--lh-body: 1.62;--tracking-caps: .11em}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:400;background:linear-gradient(180deg,#111110,#0f0f0e);overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,.012) 3px,rgba(255,255,255,.012) 6px);opacity:.36;z-index:-1}a{color:inherit;text-decoration:none}#root{width:100%}.app-shell{width:100%;padding:clamp(1rem,2.5vw,2rem)}.layout-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.05rem;align-items:start;grid-auto-flow:row dense}@media (min-width: 1081px){.layout-grid{grid-auto-rows:8px}}.hero,.section,.footer{border:1px solid var(--line-soft);background:linear-gradient(120deg,var(--panel),var(--panel-strong))}.hero{grid-column:1 / -1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.2rem;padding:clamp(1.2rem,2.4vw,2.2rem)}.hero-copy{grid-column:span 7}.hero-side{grid-column:span 5;display:grid;align-content:start;gap:1.05rem}.hero-kicker{margin:0;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-caps);font-size:var(--fs-micro);color:var(--muted)}.hero-title{margin:.5rem 0 0;font-size:var(--fs-display);line-height:var(--lh-tight);font-weight:700;letter-spacing:-.015em;text-transform:uppercase}.hero-lede{margin:1rem 0 0;max-width:58ch;font-size:var(--fs-lede);line-height:1.5;font-weight:500;color:#d5d1c8}.hero-summary{margin-top:1rem;display:grid;gap:.35rem}.hero-summary p{margin:0;color:var(--muted);font-size:var(--fs-body);line-height:var(--lh-body)}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.2rem}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.55rem 1rem;border:1px solid var(--accent);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:var(--tracking-caps);background:var(--accent-soft);transition:transform .25s ease,background .25s ease}.button-link:hover{transform:translateY(-2px);background:#f04d3142}.button-link--ghost{background:transparent;border-color:var(--line)}.hero-location{margin:0;font-family:var(--font-mono);text-transform:uppercase;font-size:var(--fs-meta);color:#cecbc3;letter-spacing:var(--tracking-caps)}.badge-row{display:flex;flex-wrap:wrap;gap:.45rem}.hero-badges{margin-top:.2rem}.badge{display:inline-flex;padding:.28rem .6rem;border:1px solid var(--line-soft);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;font-weight:500;text-transform:uppercase;color:#d8d4cc;background:#ffffff05}.metrics-grid{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.metrics-grid li{border:1px solid var(--line-soft);padding:.55rem .5rem;background:#0003}.metrics-grid span{display:block;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;color:var(--muted);text-transform:uppercase}.metrics-grid strong{display:block;margin-top:.2rem;font-size:1.04rem;font-weight:600}.hero-signal{border:1px solid var(--line-soft);background:#0000002e;min-height:150px;display:grid;place-items:center}.hero-signal svg{width:100%;height:100%;min-height:130px}.route-edge{fill:none;stroke-linecap:round}.route-edge--initial{stroke-dasharray:1.4 2.2}.route-edge--optimized{stroke-dasharray:none;opacity:0}.signal-dot{fill:#d7d2c7}.tsp-city-label{fill:#ffffffad;font-family:var(--font-mono);font-size:2.5px}.section{padding:1.08rem;display:grid;gap:.95rem;align-content:start;align-self:start;height:fit-content}.section-header{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"index title" "meta meta";gap:.75rem;align-items:center;border-bottom:1px solid var(--line-soft);padding-bottom:.65rem}.section-index{grid-area:index;font-family:var(--font-mono);font-size:var(--fs-micro);color:#f04d31eb;letter-spacing:.12em;text-transform:uppercase;font-weight:600}.section-header h2{grid-area:title;margin:0;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.07em;font-size:var(--fs-h2);font-weight:600;min-width:0;line-height:1.15}.section-meta{grid-area:meta;font-family:var(--font-mono);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:normal;overflow-wrap:anywhere;line-height:1.35}.section-experience .timeline-item{grid-template-columns:minmax(200px,230px) 1fr}.timeline{position:relative;display:grid;gap:.7rem;padding-left:.95rem}.timeline:before{content:"";position:absolute;left:.14rem;top:0;bottom:0;width:1px;background:var(--line-soft)}.timeline-progress{position:absolute;left:.08rem;top:0;width:2px;height:100%;background:linear-gradient(to bottom,#f04d31d9,#f04d3133);transform:scaleY(0);transform-origin:top;pointer-events:none}.timeline-item{position:relative;border:1px solid var(--line-soft);display:grid;grid-template-columns:minmax(160px,210px) minmax(0,1fr);gap:clamp(.6rem,1.2vw,.95rem);padding:.8rem;background:#00000029;transition:border-color .25s ease,transform .25s ease;min-width:0}.timeline-item:before{content:"";position:absolute;left:-1.24rem;top:.92rem;width:.56rem;height:.56rem;border-radius:50%;border:1px solid var(--line);background:#151513;transition:background .22s ease,transform .22s ease,border-color .22s ease}.timeline-item:hover{border-color:var(--line);transform:translate(2px)}.timeline-item.is-active{border-color:#f04d3180;box-shadow:inset 0 0 0 1px #f04d3138}.timeline-item.is-active:before{background:var(--accent);border-color:#f04d31f2;transform:scale(1.18)}.timeline-meta{font-family:var(--font-mono);font-size:var(--fs-micro);text-transform:uppercase;color:var(--muted);letter-spacing:.06em}.timeline-body h3{margin:0;font-family:var(--font-sans);font-size:var(--fs-h3);line-height:1.4;font-weight:600;overflow-wrap:anywhere;word-break:break-word}.timeline-company{margin:0;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.28;color:#b6b1a8;overflow-wrap:anywhere}.timeline-body p{margin:.42rem 0 0;color:#cac6bc;font-size:var(--fs-body);line-height:var(--lh-body);overflow-wrap:anywhere}.timeline-body{min-width:0;display:grid;gap:.38rem}.timeline-tags{margin-top:.45rem}.stack-layout,.education-layout,.awards-list,.association-list{display:grid;gap:.7rem}.card{border:1px solid var(--line-soft);background:#00000029;padding:.8rem;transition:transform .25s ease,border-color .25s ease}.card:hover{transform:translateY(-1px);border-color:var(--line)}.card h3{margin:.2rem 0 0;font-family:var(--font-sans);font-size:var(--fs-h3);line-height:1.4;font-weight:600}.card-copy{margin:.45rem 0 0;color:var(--muted);font-size:var(--fs-body);line-height:var(--lh-body)}.card-badges{margin-top:.85rem}.language-list,.education-list{margin:.75rem 0 0;padding:0;list-style:none;display:grid;gap:.48rem}.language-list li{display:flex;justify-content:space-between;gap:.5rem;padding-bottom:.35rem;border-bottom:1px solid var(--line-soft);font-family:var(--font-mono);font-size:var(--fs-meta)}.language-list li span:last-child{color:var(--muted)}.education-list{list-style:square;padding-left:1rem}.education-list li{color:var(--muted);font-size:.92rem;line-height:1.5}.association-role{margin:.4rem 0 0;font-family:var(--font-mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.08em;color:#d2cdc3}.footer{padding:clamp(1.1rem,2.4vw,1.8rem);grid-column:1 / -1;display:grid;gap:1rem;color:var(--text);min-height:220px}.footer-title{margin:0;font-family:var(--font-sans);font-size:clamp(2rem,6vw,4.3rem);line-height:.96;letter-spacing:-.015em;text-transform:uppercase}.linked-search{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:.55rem;min-height:56px;padding:.8rem 1rem;border:1px solid var(--line-soft);background:#0003;overflow:hidden}.search-cursor{position:absolute;top:0;left:0;width:11px;height:11px;border-radius:50%;border:1px solid rgba(240,77,49,.95);background:#f04d3147;transform:translate(-50%,-50%);box-shadow:0 0 16px #f04d3159;pointer-events:none;opacity:0}.list-node{position:relative;z-index:1;padding:.42rem .72rem;border:1px solid var(--line-soft);background:#10100eeb;font-family:var(--font-mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.08em;color:#cbc7be;white-space:nowrap;opacity:.56;transition:border-color .2s ease,background-color .2s ease,color .2s ease,opacity .2s ease}.list-arrow{font-family:var(--font-mono);font-size:.9rem;color:#ffffff6b;-webkit-user-select:none;user-select:none}.footer-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-family:var(--font-mono);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.footer a{color:var(--text)}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.span-5{grid-column:span 5}.span-7{grid-column:span 7}@media (max-width: 1080px){.hero-copy,.hero-side,.span-8,.span-6,.span-4,.span-3,.span-5,.span-7{grid-column:span 12}.hero{gap:.8rem}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1240px){.section-experience .timeline-item{grid-template-columns:1fr}.section-experience .timeline-aside{display:flex;flex-wrap:wrap;gap:.35rem .8rem}}@media (max-width: 900px){.app-shell{padding:.85rem}.layout-grid{gap:.8rem}.hero,.section,.footer{padding:.9rem}.hero{gap:.9rem}.hero-title{font-size:clamp(2rem,8.2vw,3.4rem)}.hero-lede{font-size:1rem}.hero-summary p{font-size:.92rem}.hero-actions{width:100%}.button-link{flex:1 1 180px}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-header{gap:.55rem;padding-bottom:.55rem}.section-index{font-size:.64rem}.section-header h2{font-size:.95rem}.section-meta{font-size:.62rem}.timeline-item{grid-template-columns:1fr;gap:.55rem}.section-experience .timeline-item{grid-template-columns:1fr}.timeline-aside,.section-experience .timeline-aside{display:flex;flex-wrap:wrap;gap:.45rem .8rem}.timeline-item:before{top:.88rem}.footer-title{font-size:clamp(1.55rem,9vw,2.6rem)}.linked-search{min-height:50px;padding:.65rem .75rem}.list-node{padding:.35rem .58rem;font-size:.66rem}}@media (max-width: 700px){.app-shell{padding:.65rem}.layout-grid{gap:.65rem}.hero,.section,.footer{padding:.8rem}.hero-signal{min-height:128px}.hero-signal svg{min-height:116px}.badge{font-size:.62rem;padding:.24rem .48rem}.linked-search{flex-wrap:wrap;gap:.4rem;overflow:visible;min-height:auto}.linked-search::-webkit-scrollbar{display:none}.search-cursor,.list-arrow{display:none}.list-node{flex:1 1 auto;text-align:center}.metrics-grid,.timeline-item,.section-experience .timeline-item{grid-template-columns:1fr}.timeline{padding-left:.7rem}.timeline-item:before{left:-.99rem}.section-header{grid-template-columns:auto 1fr;grid-template-areas:"index title" "meta meta";gap:.5rem}.section-meta{line-height:1.3}.footer-meta{flex-direction:column;align-items:flex-start;gap:.2rem}}@media (max-width: 480px){.hero-title{font-size:clamp(1.72rem,10vw,2.35rem);line-height:1}.hero-kicker{letter-spacing:.08em}.button-link{min-height:38px;padding:.48rem .7rem;font-size:.66rem}.timeline{padding-left:.58rem}.timeline:before{left:.05rem}.timeline-progress{left:0}.timeline-item:before{left:-.86rem;width:.48rem;height:.48rem}.card-copy,.timeline-body p,.education-list li{font-size:.88rem}}
