.resume{gap:var(--space-8) var(--space-6);padding-block:var(--space-12);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.resume-index{top:var(--space-6);align-self:start;gap:var(--space-8);grid-column:span 3;display:grid;position:sticky}.resume-index ol,.resume-downloads ul{gap:var(--space-2);margin-top:var(--space-3);padding:0;list-style:none;display:grid}.resume-index ol a{font-family:var(--font-display);font-size:var(--text-sm);text-transform:uppercase;text-decoration:none}.resume-index ol a:before{content:"› ";color:var(--color-ink-muted)}.resume-content{gap:var(--space-16);grid-column:4/-1;min-width:0;display:grid}.resume-section{gap:var(--space-6);scroll-margin-top:var(--space-6);display:grid}.resume-section-title{font-size:var(--text-2xl);padding-bottom:var(--space-3);border-bottom:var(--border)}.resume-hint,.resume-muted{color:var(--color-ink-muted)}.resume-hint{max-width:var(--measure)}.timeline{gap:var(--space-12);margin:0;padding:0;list-style:none;display:grid}.timeline-item{gap:var(--space-6);transition:opacity var(--duration-base) var(--ease-pixel);grid-template-columns:11rem minmax(0,1fr);display:grid;position:relative}.timeline-item:before{content:"";left:calc(11rem + var(--space-3) - 4px);width:var(--grid-cell);height:var(--grid-cell);background:var(--color-ink);position:absolute;top:.45em}.timeline-item:after{content:"";left:calc(11rem + var(--space-3) - .5px);top:calc(.45em + var(--grid-cell) + 4px);bottom:calc(var(--space-12) * -1 + 4px);background:var(--color-line);width:1px;position:absolute}.timeline-item:last-child:after{display:none}.timeline-item:first-child:before{background:var(--color-accent)}.timeline-period{font-family:var(--font-display);font-size:var(--text-sm);text-transform:uppercase;color:var(--color-ink-muted)}.timeline-body{gap:var(--space-3);padding-left:var(--space-6);max-width:var(--measure);display:grid}.timeline-body h3{font-family:var(--font-body);font-size:var(--text-xl);font-weight:600;line-height:1.3}.timeline-company{color:var(--color-ink-muted);font-weight:400}.timeline-context{color:var(--color-ink-muted)}.timeline-highlights{gap:var(--space-2);padding-left:var(--space-4);display:grid}.timeline-highlights li::marker{content:"▪  ";color:var(--color-line-strong)}.resume-tags{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.resume-tags li{padding:2px var(--space-2);border:var(--border);font-family:var(--font-display);font-size:var(--text-xs);text-transform:uppercase;color:var(--color-ink-muted);background:var(--color-bg)}.resume-tags li[data-active]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.resume[data-filtering] [data-match=false]{opacity:.6}.skill-map{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.skill-area{align-content:start;gap:var(--space-3);padding:var(--space-4);border:var(--border);background:var(--color-bg);display:grid}.skill-area-note{text-transform:none;letter-spacing:0}.skill-area ul{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.skill-chip{min-height:calc(var(--grid-cell) * 4);padding:0 var(--space-3);border:1px solid var(--color-line-strong);border-radius:var(--radius);background:var(--color-bg);font-size:var(--text-sm);cursor:pointer}.skill-chip:hover{border-color:var(--color-ink)}.skill-chip[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.skill-status{align-items:center;gap:var(--space-3);min-height:calc(var(--grid-cell) * 4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.skill-clear{text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.resume-projects{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));padding:0;list-style:none;display:grid}.resume-projects>li{align-content:start;gap:var(--space-3);padding-top:var(--space-4);border-top:2px solid var(--color-ink);transition:opacity var(--duration-base) var(--ease-pixel);display:grid}.resume-projects h3{font-size:var(--text-lg)}.resume-projects h3 a{align-items:center;gap:var(--space-2);display:inline-flex}.resume-pair{gap:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.resume-education{gap:var(--space-1);display:grid}.resume-education h3{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600}.resume-languages{gap:var(--space-2);margin:0;display:grid}.resume-languages div{padding-bottom:var(--space-2);border-bottom:var(--border);justify-content:space-between;display:flex}.resume-languages dd{font-family:var(--font-display);margin:0}@media (width<=63.99rem){.resume{grid-template-columns:minmax(0,1fr)}.resume-index{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));position:static}.resume-content{grid-column:1/-1}}@media (width<=47.99rem){.timeline-item{gap:var(--space-2);padding-left:var(--space-6);grid-template-columns:minmax(0,1fr)}.timeline-item:before{left:0}.timeline-item:after{left:3.5px}.timeline-body{padding-left:0}}@media print{.site-header,.site-footer,.skip-link,.resume-index,.resume-hint,.skill-status,.page-intro-aside{display:none!important}body{color:#000;background:#fff}.resume{grid-template-columns:minmax(0,1fr);padding-block:0}.resume-content{gap:var(--space-8);grid-column:1/-1}.resume[data-filtering] [data-match=false]{opacity:1}.skill-chip{border:0;min-height:0;padding:0}}.resume-contact{gap:var(--space-1);text-align:right;padding:0;list-style:none;display:grid}@media (width<=47.99rem){.resume-contact{text-align:left}}
