.matrix{--label-col:13rem;--bar-h:16px;--bar-gap:5px;--lane-h:calc(var(--bar-h) + var(--bar-gap));--step:6.25%;--offset:0%;--terracotta:#9e4e36;--sage:#3e5c49;--cobalt:#294c60}.matrix-controls{flex-wrap:wrap;align-items:center;gap:.5rem 1.75rem;margin-bottom:1rem;display:flex}.picker{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.picker-name{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-faint);margin-inline-end:.15rem;font-size:.656rem}.chip,.wchip{border:1px solid var(--color-border);color:var(--color-ink-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:4px;padding:.15rem .5rem;font-size:.6875rem;line-height:1.5;transition:border-color .14s,color .14s,background .14s}.chip:hover:not([aria-disabled=true]):not([aria-pressed=true]),.wchip:hover:not([aria-pressed=true]){border-color:color-mix(in srgb, var(--color-ink) 30%, transparent);color:var(--color-ink)}.chip[aria-pressed=true],.wchip[aria-pressed=true]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.chip[aria-disabled=true]{opacity:.3;cursor:not-allowed}.matrix-panel{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-paper-warm) 85%, transparent);border-radius:12px;padding:1.1rem 1.25rem 1.25rem}.panel-head{border-bottom:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.9rem;padding-bottom:.7rem;display:flex}.panel-range{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-faint);flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;font-size:.656rem;display:flex}.panel-note{color:var(--color-ink-muted);letter-spacing:.02em;text-transform:none}.window{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.window-name{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-faint);margin-inline-end:.2rem;font-size:.625rem}.wchip{padding:.05rem .4rem;font-size:.625rem}.matrix-surface{overflow-x:auto}.matrix-grid{grid-template-columns:var(--label-col) repeat(var(--cols,1), minmax(0, 1fr));align-items:stretch;display:grid}.matrix-grid[data-mode=matrix]{grid-template-columns:var(--label-col) repeat(var(--cols,1), minmax(6.5rem, 1fr))}.ruler-corner{z-index:6;background:color-mix(in srgb, var(--color-paper-warm) 85%, var(--color-paper));position:sticky;left:0}.ruler-track{block-size:1.5rem;margin-inline-end:.4rem;position:relative}.ruler-year,.ruler-today{font-family:var(--font-mono);color:var(--color-ink-faint);white-space:nowrap;font-size:.625rem;position:absolute;inset-block-end:.35rem}.ruler-year{transform:translate(-50%)}.ruler-today{text-transform:uppercase;letter-spacing:.12em;color:var(--color-ink-muted)}.ruler-year.is-hidden{display:none}.track:after,.cell:after{content:"";z-index:1;border-inline-start:1px dashed color-mix(in srgb, var(--color-ink) 28%, transparent);pointer-events:none;position:absolute;inset-block:0;inset-inline-start:var(--today,100%)}.matrix-grid[data-mode=timeline] .gantt-row{grid-column:1/-1;grid-template-columns:var(--label-col) minmax(0, 1fr);border-block-start:1px solid color-mix(in srgb, var(--color-border) 55%, transparent);display:grid}.row-label{z-index:5;background:color-mix(in srgb, var(--color-paper-warm) 85%, var(--color-paper));color:var(--color-ink);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;align-self:center;align-items:center;gap:.4rem;padding:.5rem .6rem .5rem 0;font-size:.625rem;display:flex;position:sticky;left:0;overflow:hidden}.row-name{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.row-label:before{content:"";background:var(--bar-color,var(--color-ink-faint));border-radius:999px;flex:none;align-self:flex-start;block-size:.35rem;inline-size:.35rem;margin-block-start:.42rem}.matrix [data-accent=cobalt]{--bar-color:var(--cobalt)}.matrix [data-accent=sage]{--bar-color:var(--sage)}.matrix [data-accent=terracotta]{--bar-color:var(--terracotta)}.col-head{writing-mode:vertical-rl;max-inline-size:14rem;color:var(--color-ink-muted);font-family:var(--font-mono);white-space:nowrap;place-self:end center;padding-block:.55rem .4rem;font-size:.6875rem;transform:rotate(180deg)}.col-name{border-inline-start:2px solid var(--head-accent,transparent);padding-inline-start:.3rem}.track,.cell{position:relative;overflow:hidden}.track{min-block-size:calc(var(--lanes,1) * var(--lane-h) + 8px);margin:.2rem .4rem .2rem 0}.cell{min-block-size:calc(var(--lanes,1) * var(--lane-h) + 8px);border-block-start:1px solid color-mix(in srgb, var(--color-border) 45%, transparent);border-inline-start:1px solid color-mix(in srgb, var(--color-border) 45%, transparent);padding-block:4px}.matrix-grid[data-mode=matrix] .row-label{border-block-start:1px solid color-mix(in srgb, var(--color-border) 45%, transparent);padding-block:.6rem}.track:before,.cell:before{content:"";z-index:1;pointer-events:none;background-image:repeating-linear-gradient(to right, color-mix(in srgb, var(--color-border) 80%, transparent) 0 1px, transparent 1px var(--year-step));background-position-x:var(--year-offset);position:absolute;inset:0}.band{inline-size:calc(var(--w) * 1%);z-index:0;background:color-mix(in srgb, var(--bar-color) 7%, transparent);border-radius:3px;position:absolute;inset-block:3px;inset-inline-start:calc(var(--left) * 1%)}.bar{z-index:2;inline-size:max(calc(var(--w) * 1%), 7px);block-size:var(--bar-h);font-family:var(--font-mono);white-space:nowrap;color:#fdfbf8;background:color-mix(in srgb, var(--bar-color) 86%, #fff);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--bar-color) 92%, #000);cursor:pointer;border:0;border-radius:3px;align-items:center;padding:0 .45rem;font-size:.656rem;line-height:1;transition:opacity .14s,background .14s,box-shadow .14s;display:flex;position:absolute;inset-block-start:calc(var(--lane) * var(--lane-h) + 4px);inset-inline-start:calc(var(--left) * 1%);overflow:hidden}.bar:hover,.bar:focus-visible{background:var(--bar-color)}.bar.is-dim{opacity:.22}.bar-label{visibility:hidden;flex:none}.bar.is-labeled .bar-label{visibility:visible}.gantt-row:hover .row-name{color:var(--bar-color)}.gantt-row:hover .band{background:color-mix(in srgb, var(--bar-color) 13%, transparent)}.cell-more{color:var(--color-ink-faint);font-family:var(--font-mono);text-align:start;cursor:pointer;background:0 0;border:0;margin-block-start:calc(var(--lanes,1) * var(--lane-h));margin-inline-start:2px;padding:0;font-size:.625rem;line-height:1.4;display:block}.cell-more:hover{color:var(--color-ink);text-decoration:underline}.matrix-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;margin-top:.85rem;display:flex}.legend{color:var(--color-ink-faint);font-family:var(--font-mono);flex-wrap:wrap;gap:.3rem .9rem;font-size:.625rem;display:flex}.legend li{align-items:center;gap:.32rem;display:flex}.legend-dot{background:var(--bar-color);border-radius:1px;block-size:.4rem;inline-size:.4rem}.matrix-hint{color:var(--color-ink-faint);font-family:var(--font-serif);margin:0;font-size:.8125rem;font-style:italic}.matrix-tip{z-index:60;border:1px solid var(--color-border);background:var(--color-card);pointer-events:none;border-radius:6px;gap:.15rem;max-inline-size:17rem;padding:.6rem .7rem;display:grid;position:fixed;box-shadow:0 8px 24px #1a1a1a17}.matrix-tip[hidden]{display:none}.tip-title{font-family:var(--font-serif);color:var(--color-ink);font-size:.9rem;font-weight:500}.tip-meta{color:var(--color-ink-muted);font-size:.6875rem}.tip-dates{font-family:var(--font-mono);color:var(--color-ink-faint);font-size:.625rem}@media (width<=640px){.matrix{--label-col:8rem;--bar-h:15px}.row-label{letter-spacing:.02em;font-size:.6rem}.matrix-panel{padding:.85rem}.matrix-grid[data-mode=timeline]{min-inline-size:32rem}.matrix-grid[data-mode=matrix]{grid-template-columns:var(--label-col) repeat(var(--cols,1), minmax(7rem, 1fr))}.col-head{text-overflow:ellipsis;max-inline-size:8rem;font-size:.625rem;overflow:hidden}.matrix-foot{flex-direction:column;align-items:flex-start}}.trajectory{gap:2.25rem;display:grid}.company-head{border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1.5rem;margin-bottom:.9rem;padding-bottom:.6rem;display:flex}.company-id{align-items:baseline;gap:.55rem;display:flex}.company-dot{background:var(--accent);border-radius:999px;block-size:.45rem;inline-size:.45rem;transform:translateY(-.1rem)}.company-name{font-family:var(--font-serif);color:var(--color-ink);font-size:1.3rem;font-weight:500}.company-short{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.625rem}.company-meta{font-family:var(--font-mono);color:var(--color-ink-faint);font-size:.625rem}.positions{gap:.75rem;display:grid}.position{border:1px solid var(--color-border);border-inline-start:2px solid color-mix(in srgb, var(--accent) 55%, transparent);background:color-mix(in srgb, var(--color-card) 70%, transparent);border-radius:10px;padding:1.15rem 1.25rem 1.25rem;transition:border-color .16s,background .16s}.position:hover{background:var(--color-card);border-color:color-mix(in srgb, var(--color-ink) 18%, transparent);border-inline-start-color:var(--accent)}.position-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.3rem 1rem;display:flex}.position-title{font-family:var(--font-serif);color:var(--color-ink);font-size:1.02rem;font-weight:500}.position-dates{font-family:var(--font-mono);color:var(--color-ink-muted);align-items:baseline;gap:.5rem;font-size:.625rem;display:inline-flex}.position-duration{color:var(--color-ink-faint)}.position-place{color:var(--color-ink-faint);margin-top:.1rem;font-size:.6875rem}.position-focus{color:var(--color-ink-muted);align-items:center;gap:.45rem;margin-top:.35rem;font-size:.75rem;display:flex}.position-focus:before{content:"";background:var(--accent);border-radius:999px;flex:none;block-size:.3rem;inline-size:.3rem}.position-summary{max-inline-size:46rem;color:var(--color-ink-muted);margin-top:.5rem;font-size:.8125rem;line-height:1.7}.position-hitos{color:var(--color-ink-muted);gap:.25rem;margin-top:.7rem;font-size:.78125rem;line-height:1.6;display:grid}.position-hitos li{padding-inline-start:.85rem;position:relative}.position-hitos li:before{content:"";background:var(--color-ink-faint);block-size:1px;inline-size:.3rem;position:absolute;inset-block-start:.6em;inset-inline-start:0}.position-foot{border-top:1px solid var(--color-border-subtle);gap:.75rem;margin-top:.9rem;padding-top:.8rem;display:grid}@media (width>=768px){.position-foot{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.5rem}}.position-group{align-content:start;gap:.4rem;display:grid}.position-chips{flex-wrap:wrap;gap:.3rem;display:flex}.chip-project{border:1px solid var(--color-border);color:var(--color-ink-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:4px;padding:.08rem .42rem;font-size:.656rem;line-height:1.5;transition:border-color .14s,color .14s,background .14s}.chip-project:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-tint);color:var(--accent)}@media (width<=640px){.position{padding:1rem}}.drawer-backdrop{z-index:40;backdrop-filter:blur(2px);opacity:0;visibility:hidden;background:#1a1a1a2e;transition:opacity .2s,visibility 0s .2s;position:fixed;inset:0}.drawer-backdrop.is-open{opacity:1;visibility:visible;transition:opacity .2s,visibility}.drawer{z-index:50;border-inline-start:1px solid var(--color-border);visibility:hidden;background:#fcfaf7;flex-direction:column;inline-size:min(28rem,100vw);transition:transform .24s,visibility 0s .24s;display:flex;position:fixed;inset-block:0;inset-inline-end:0;transform:translate(101%);box-shadow:-16px 0 40px #1a1a1a14}.drawer.is-open{visibility:visible;transition:transform .24s,visibility;transform:none}.drawer:focus{outline:none}.drawer-head{border-bottom:1px solid var(--color-border);background:var(--color-paper);justify-content:space-between;align-items:flex-start;gap:1rem;padding:2rem 2rem 1.5rem;display:flex}.drawer-meta{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-faint);font-size:.656rem}.drawer-title{font-family:var(--font-serif);color:var(--color-ink);margin-top:.2rem;font-size:1.375rem;font-weight:500;line-height:1.25}.drawer-role{color:var(--color-ink-muted);margin-top:.15rem;font-size:.75rem}.drawer-close{color:var(--color-ink-faint);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;margin:-.35rem -.5rem 0 0;padding:.4rem;transition:color .14s;display:grid}.drawer-close:hover{color:var(--color-ink)}.drawer-close svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;block-size:1.1rem;inline-size:1.1rem}.drawer-body{flex:1;padding:1.75rem 2rem 2rem;overflow-y:auto}.drawer-stack{align-content:start;gap:1.4rem;display:grid}.drawer-text{color:var(--color-ink);font-size:.875rem;line-height:1.7}.drawer-block{gap:.6rem;display:grid}.drawer-list{color:var(--color-ink-muted);gap:.4rem;font-size:.8125rem;line-height:1.6;display:grid}.drawer-list li{padding-inline-start:.9rem;position:relative}.drawer-list li:before{content:"";background:var(--color-ink-faint);block-size:1px;inline-size:.35rem;position:absolute;inset-block-start:.55em;inset-inline-start:0}.drawer-chips{flex-wrap:wrap;gap:.35rem;display:flex}.drawer-picker{gap:.75rem;display:grid}.drawer-picker li{gap:.1rem;display:grid}.drawer-pick{font-family:var(--font-serif);color:var(--color-ink);text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-size:.95rem}.drawer-pick:hover{text-decoration-color:var(--color-ink)}.drawer-pick-meta{font-family:var(--font-mono);color:var(--color-ink-faint);font-size:.656rem}.drawer-foot{border-top:1px solid var(--color-border);background:var(--color-paper);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 2rem;display:flex}.drawer-hint{font-family:var(--font-mono);color:var(--color-ink-faint);font-size:.656rem}.drawer-ok{background:var(--color-ink);color:var(--color-paper);font-family:var(--font-sans);cursor:pointer;border:0;border-radius:4px;padding:.4rem .9rem;font-size:.6875rem;transition:background .14s}.drawer-ok:hover{background:#333}@media (width<=640px){.drawer-head,.drawer-body,.drawer-foot{padding-inline:1.25rem}}.section[data-astro-cid-k4jm4iiu]{display:grid}.education[data-astro-cid-k4jm4iiu]{gap:.9rem;max-inline-size:46rem;display:grid}.education-item[data-astro-cid-k4jm4iiu]{border-bottom:1px solid var(--color-border-subtle);gap:.15rem;padding-bottom:.7rem;display:grid}@media (width>=640px){.education-item[data-astro-cid-k4jm4iiu]{grid-template-columns:6rem minmax(0,1fr);align-items:baseline;gap:1rem}}.education-year[data-astro-cid-k4jm4iiu]{font-family:var(--font-mono);color:var(--color-ink-faint);font-size:.656rem}.education-body[data-astro-cid-k4jm4iiu]{color:var(--color-ink-muted);flex-wrap:wrap;align-items:baseline;gap:.35rem;font-size:.8125rem;display:flex}.education-body[data-astro-cid-k4jm4iiu] strong[data-astro-cid-k4jm4iiu]{color:var(--color-ink);font-weight:500}.education-org[data-astro-cid-k4jm4iiu]:before{content:"— ";color:var(--color-ink-faint)}.closing[data-astro-cid-k4jm4iiu]{border:1px solid var(--color-border);background:var(--color-paper-warm);border-radius:12px;justify-items:start;gap:.8rem;padding:1.75rem 1.9rem;display:grid}.closing[data-astro-cid-k4jm4iiu] p[data-astro-cid-k4jm4iiu]{max-inline-size:38rem;color:var(--color-ink-muted);font-size:.875rem;line-height:1.75}
