:root{--color-charcoal-brown:#43413e;--color-warm-ivory:#ebe4da;--color-taupe-mist:#c2bcb4;--color-warm-gray:#99958e;--color-driftwood-gray:#706d68;--background-color:var(--color-warm-ivory);--foreground-color:var(--color-charcoal-brown);--font-sans:"Plus Jakarta Sans", "Inter", Arial, sans-serif;--font-bold:700;--tracking-tight:-3.5%}*{box-sizing:border-box}html{margin:0;padding:0}body{background-color:var(--background-color);min-height:100vh;color:var(--foreground-color);font-family:var(--font-sans);background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.20'/></svg>");flex-direction:column;margin:0;padding:0;display:flex}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);color:var(--color-charcoal-brown);margin:0}p,ul{margin:0}.container{width:clamp(320px,90% - 1.5rem,1024px);margin:0 auto;padding-left:clamp(.25rem,.0545rem + 1.4773vw,1rem);padding-right:clamp(.25rem,.0545rem + 1.4773vw,1rem)}.muted{color:var(--color-warm-gray)}footer{color:var(--color-taupe-mist);text-align:center;margin-top:auto;padding:.5rem 0 2rem;font-size:.75rem}.about-me{flex-direction:column;gap:2rem;display:flex}.about-me h1{margin-top:0;margin-bottom:1rem;font-size:24pt}.about-me-metadata{flex-direction:column;gap:.75rem;display:flex}.icon-data{color:var(--color-driftwood-gray)}.icon-data,.about-me-socials li{gap:10px;font-size:11pt;display:flex}.icon-data svg,.about-me-socials li svg{width:20px;height:20px}.icon-data p,.about-me-socials li p{font-variant-numeric:tabular-nums;margin:0}.about-me-socials{flex-direction:row;gap:1rem;padding-left:0;display:flex}.about-me-socials li{list-style-type:none}.about-me-socials a{color:var(--color-driftwood-gray);text-decoration:none;position:relative}.about-me-socials a:hover{color:var(--color-charcoal-brown)}.about-me-socials a:before{content:" ";background-color:var(--color-driftwood-gray);width:0;height:2px;transition:all .3s;position:absolute;bottom:-5px;left:0}.about-me-socials a:hover:before{width:100%}.about-me-socials-btn{cursor:pointer;font:inherit;color:var(--color-driftwood-gray);background:0 0;border:none;align-items:center;gap:10px;padding:0;font-size:11pt;text-decoration:none;display:flex;position:relative}.about-me-socials-btn:hover{color:var(--color-charcoal-brown)}.about-me-socials-btn:before{content:" ";background-color:var(--color-driftwood-gray);width:0;height:2px;transition:all .3s;position:absolute;bottom:-5px;left:0}.about-me-socials-btn:hover:before{width:100%}.mail-dialog{border:1px solid var(--color-taupe-mist);background:var(--color-warm-ivory);border-radius:12px;width:min(420px,90vw);padding:0;box-shadow:0 12px 40px #43413e2e}.mail-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#43413e59}.mail-dialog-content{padding:20px 24px}.mail-dialog-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.mail-dialog-title{color:var(--color-charcoal-brown);margin:0;font-size:1rem;font-weight:600}.mail-dialog-close{cursor:pointer;color:var(--color-driftwood-gray);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:background-color .15s,color .15s;display:flex}.mail-dialog-close:hover{color:var(--color-charcoal-brown);background-color:#63544214}.mail-dialog-body{flex-direction:column;gap:12px;display:flex}.mail-dialog-hint{color:var(--color-driftwood-gray);margin:0;font-size:.875rem}.mail-dialog-email-row{border:1px solid var(--color-taupe-mist);background:#6354420f;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.mail-dialog-email-link{color:var(--color-charcoal-brown);flex:1;font-size:.9rem;font-weight:500;text-decoration:none}.mail-dialog-email-link:hover{text-decoration:underline}.mail-dialog-copy{border:1px solid var(--color-taupe-mist);cursor:pointer;color:var(--color-driftwood-gray);white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:.75rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.mail-dialog-copy:hover{color:var(--color-charcoal-brown);background-color:#63544214}.skills-filter{flex-direction:column;gap:.75rem;display:flex}.skills-filter-header{justify-content:space-between;align-items:center;display:flex}.skills-filter-label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-warm-gray);font-size:.7rem;font-weight:700}.skills-filter-clear{cursor:pointer;font:inherit;color:var(--color-driftwood-gray);background:0 0;border:none;padding:0;font-size:.72rem;text-decoration:underline}.skills-filter-clear:hover{color:var(--color-charcoal-brown)}.skills-filter-chips{flex-wrap:wrap;gap:5px;display:flex}.skills-chip{border:1px solid var(--color-taupe-mist);cursor:pointer;font:inherit;color:var(--color-driftwood-gray);background:0 0;border-radius:4px;padding:3px 9px;font-size:.72rem;font-weight:500;transition:background-color .12s,color .12s,border-color .12s}.skills-chip:hover{color:var(--color-charcoal-brown);background-color:#63544214}.skills-chip--selected{background-color:var(--color-charcoal-brown);border-color:var(--color-charcoal-brown);color:var(--color-warm-ivory)}.skills-chip--selected:hover{background-color:var(--color-charcoal-brown);color:var(--color-warm-ivory)}.skills-filter-more{cursor:pointer;font:inherit;color:var(--color-warm-gray);background:0 0;border:none;padding:3px 4px;font-size:.72rem;font-weight:500;text-decoration:underline}.skills-filter-more:hover{color:var(--color-charcoal-brown)}.resume-section{margin-bottom:3rem}.resume-section-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-warm-gray);margin-bottom:2rem;font-size:.7rem;font-weight:700}.company-chip-container{display:inline-block;position:relative}.company-chip{color:var(--color-driftwood-gray);align-items:center;gap:6px;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s;display:inline-flex}.company-chip:hover,.company-chip--current{color:var(--color-charcoal-brown)}.company-chip-logo{align-items:center;width:16px;height:16px;display:flex}.company-chip-logo svg{width:100%;height:100%}.company-tooltip:before{content:"";height:8px;position:absolute;top:-8px;left:0;right:0}.company-tooltip{background-color:var(--color-warm-ivory);border:1px solid var(--color-taupe-mist);opacity:0;pointer-events:none;z-index:100;border-radius:10px;min-width:230px;padding:12px 14px;transition:opacity .16s,transform .16s;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-4px);box-shadow:0 6px 20px #43413e24}.company-chip-container:hover .company-tooltip{opacity:1;pointer-events:auto;transform:translateY(0)}.company-tooltip-description{color:var(--color-driftwood-gray);margin-bottom:8px;font-size:.8rem;line-height:1.5}.company-tooltip-link{color:var(--color-charcoal-brown);font-size:.75rem;font-weight:600;text-decoration:none}.company-tooltip-link:hover{text-decoration:underline}.employment-list{flex-direction:column;display:flex;position:relative}.employment-list:before{content:"";background-color:var(--color-taupe-mist);width:1px;position:absolute;top:9px;bottom:9px;left:10px}.employment-group{grid-template-columns:20px 1fr;gap:0 1.25rem;padding-bottom:2.5rem;display:grid}.employment-group--last{padding-bottom:0}.employment-group--dim{opacity:.25;transition:opacity .2s}.employment-group{transition:opacity .2s}.employment-group-indicator{padding-top:4px}.employment-dot{background-color:var(--color-taupe-mist);z-index:1;border-radius:50%;width:9px;height:9px;margin:0 auto;position:relative}.employment-dot--current{background-color:var(--color-charcoal-brown)}.employment-group-body{flex-direction:column;gap:.75rem;display:flex}.employment-roles{flex-direction:column;gap:1rem;display:flex}.employment-role{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.employment-role-body{flex-direction:column;gap:.15rem;display:flex}.employment-role-title{color:var(--color-charcoal-brown);font-size:.95rem;font-weight:700}.employment-role-meta{color:var(--color-warm-gray);font-size:.825rem}.employment-role-date{flex-shrink:0;align-items:flex-start;padding-top:1px;display:flex}.employment-role-range{color:var(--color-warm-gray);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.825rem}.employment-badge-current{color:var(--color-charcoal-brown);letter-spacing:.04em;white-space:nowrap;background-color:#6354421a;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.employment-badge-dot{background-color:var(--color-charcoal-brown);border-radius:50%;flex-shrink:0;width:5px;height:5px}.employment-group-technologies{flex-wrap:wrap;gap:4px;display:flex}.tech-chip{color:var(--color-driftwood-gray);background-color:#63544212;border-radius:4px;align-items:center;gap:5px;padding:2px 7px;font-size:.72rem;font-weight:500;display:inline-flex}.tech-chip-logo{align-items:center;width:12px;height:12px;display:flex}.tech-chip-logo svg{width:100%;height:100%}.tech-chip-more{cursor:pointer;font:inherit;color:var(--color-warm-gray);background:0 0;border:none;padding:2px 4px;font-size:.72rem;font-weight:500;text-decoration:underline}.tech-chip-more:hover{color:var(--color-charcoal-brown)}.education-list{flex-direction:column;display:flex;position:relative}.education-list:before{content:"";background-color:var(--color-taupe-mist);width:1px;position:absolute;top:10px;bottom:10px;left:10px}.education-group{grid-template-columns:20px 1fr;gap:0 1.25rem;padding-bottom:2.5rem;display:grid}.education-group:last-child{padding-bottom:0}.education-group-indicator{padding-top:7px}.education-group-body{flex-direction:column;gap:.75rem;display:flex}.education-dot{background-color:var(--color-taupe-mist);z-index:1;border-radius:50%;width:9px;height:9px;margin:0 auto;position:relative}.education-dot--current{background-color:var(--color-charcoal-brown)}.publications-list{flex-direction:column;gap:.75rem;display:flex}.publication-card{border:1px solid var(--color-taupe-mist);border-radius:12px;align-items:center;gap:1rem;padding:1rem 1.25rem;text-decoration:none;transition:background-color .15s,border-color .15s;display:flex}.publication-card:hover{border-color:var(--color-driftwood-gray);background-color:#6354420a}.publication-card-body{flex-direction:column;flex:1;gap:.25rem;display:flex}.publication-card-title{color:var(--color-charcoal-brown);font-size:.9rem;font-weight:600;line-height:1.4}.publication-card-meta{color:var(--color-driftwood-gray);font-size:.8rem}.publication-card-icon{width:1.1rem;height:1.1rem;color:var(--color-taupe-mist);flex-shrink:0}.publication-card:hover .publication-card-icon{color:var(--color-driftwood-gray)}.key-copier{flex-direction:column;gap:.75rem;display:flex}.key-copier-buttons{gap:1rem;display:flex}.key-copier-btn{cursor:pointer;font:inherit;color:var(--color-driftwood-gray);background:0 0;border:none;align-items:center;gap:10px;padding:0;font-size:11pt;transition:color .15s;display:flex}.key-copier-btn:hover{color:var(--color-charcoal-brown)}.key-copier-hint{color:var(--color-warm-gray);margin:0;font-size:.72rem;line-height:1.5}.key-copier-hint code{font-size:inherit;color:var(--color-driftwood-gray)}.key-dialog{border:1px solid var(--color-taupe-mist);background:var(--color-warm-ivory);border-radius:12px;width:min(600px,90vw);padding:0;box-shadow:0 12px 40px #43413e2e}.key-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#43413e59}.key-dialog-content{padding:20px 24px}.key-dialog-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.key-dialog-header-actions{align-items:center;gap:6px;display:flex}.key-dialog-title{color:var(--color-charcoal-brown);margin:0;font-size:1rem;font-weight:600}.key-dialog-close{cursor:pointer;color:var(--color-driftwood-gray);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:background-color .15s,color .15s;display:flex}.key-dialog-close:hover{color:var(--color-charcoal-brown);background-color:#63544214}.key-dialog-body{flex-direction:column;gap:12px;display:flex}.key-dialog-hint{color:var(--color-driftwood-gray);margin:0;font-size:.875rem}.key-dialog-hint code{font-size:inherit;color:var(--color-charcoal-brown);font-weight:500}.key-dialog-content-block{border:1px solid var(--color-taupe-mist);color:var(--color-charcoal-brown);white-space:pre-wrap;word-break:break-all;background:#6354420f;border-radius:8px;max-height:240px;margin:0;padding:12px 14px;font-size:.78rem;line-height:1.5;overflow:hidden}.key-dialog-content-block--fade{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 24px),#0000 100%)}.key-dialog-copy{border:1px solid var(--color-taupe-mist);cursor:pointer;color:var(--color-driftwood-gray);white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:.75rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.key-dialog-copy:hover{color:var(--color-charcoal-brown);background-color:#63544214}.cmdk-dialog{border:1px solid var(--color-taupe-mist);background:var(--color-warm-ivory);width:min(520px,100% - 32px);max-height:70vh;color:var(--color-charcoal-brown);font-family:var(--font-sans);border-radius:12px;margin-top:12vh;padding:0;box-shadow:0 12px 40px #43413e2e}.cmdk-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#43413e59}.cmdk-input{border:none;border-bottom:1px solid var(--color-taupe-mist);width:100%;color:inherit;background:0 0;outline:none;padding:14px 16px;font-family:inherit;font-size:15px}.cmdk-input::placeholder{color:var(--color-warm-gray)}.cmdk-list{max-height:50vh;margin:0;padding:6px;list-style:none;overflow-y:auto}.cmdk-section{margin-top:4px}.cmdk-section:first-child{margin-top:0}.cmdk-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-warm-gray);padding:6px 12px 4px;font-size:11px;font-weight:600}.cmdk-section-commands{margin:0;padding:0;list-style:none}.cmdk-row{cursor:pointer;width:100%;color:var(--color-charcoal-brown);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-family:inherit;font-size:14px;transition:background-color .1s;display:flex}.cmdk-row:hover,.cmdk-row--active{background:var(--color-taupe-mist)}.cmdk-row--disabled{opacity:.35;cursor:default;pointer-events:none}.cmdk-row-icon{color:var(--color-driftwood-gray);flex-shrink:0;align-items:center;display:flex}.cmdk-row-hint{color:var(--color-warm-gray);margin-left:auto;font-size:12px}.cmdk-empty{text-align:center;color:var(--color-warm-gray);padding:16px;font-size:13px}.cmdk-toast{text-align:center;color:var(--color-charcoal-brown);border-top:1px solid var(--color-taupe-mist);padding:8px 16px;font-size:13px}.split-layout{grid-template-columns:320px auto;align-items:start;gap:2rem;display:grid}.layout-spacing{padding-top:6rem;padding-bottom:2rem}.sidebar{flex-direction:column;gap:3.5rem;display:flex;position:sticky;top:3rem}@media (width<=768px){.split-layout{grid-template-columns:1fr;padding-top:3rem;padding-bottom:1rem}.sidebar{gap:2rem;position:static}}
