/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
.resume-page{--font-heading-family:var(--font-mono-family);--font-sans-family:var(--font-mono-family);--font-display-family:var(--font-mono-family);--resume-paper:var(--foreground);--resume-paper-soft:var(--muted-foreground);--resume-paper-muted:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.resume-page{--resume-paper-muted:color-mix(in oklch, var(--muted-foreground) 80%, transparent)}}.resume-page{--resume-strong-color:var(--accent);--resume-italic-color:var(--signal-info);font-family:var(--font-mono-family)}.resume-page :where(.resume-job li,.resume-side-panel p,.resume-education-list p,.resume-recognition p) strong{color:var(--resume-strong-color);font-weight:800}.resume-page :where(.resume-job li,.resume-side-panel p,.resume-education-list p,.resume-recognition p) em{color:var(--resume-italic-color);font-style:italic;font-weight:700}.resume-section-label{color:var(--accent);font-family:var(--font-mono-family);font-size:var(--type-size-xs);letter-spacing:.24em;text-transform:uppercase;align-items:center;gap:.85rem;margin:0;font-weight:700;line-height:1;display:flex}.resume-section-label span{background:var(--accent);width:2rem;height:1px}.resume-hero-shell{isolation:isolate;min-height:clamp(23rem,38vw,31rem);position:relative;overflow:hidden}.resume-hero-shell:before{z-index:-2;background-image:var(--resume-hero-bg);content:"";filter:grayscale()saturate(.22)contrast(1.14);opacity:.64;background-position:66% 42%;background-size:cover;position:absolute;inset:0;transform:scale(1.01)}.resume-hero-shell:after{z-index:-1;background:linear-gradient(90deg, var(--background) 0%, var(--background) 38%, var(--background) 70%, var(--background) 100%), linear-gradient(180deg, var(--background) 0%, var(--background) 52%, var(--background) 100%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.resume-hero-shell:after{background:linear-gradient(90deg, color-mix(in oklch, var(--background) 94%, transparent) 0%, color-mix(in oklch, var(--background) 78%, transparent) 38%, color-mix(in oklch, var(--background) 20%, transparent) 70%, color-mix(in oklch, var(--background) 46%, transparent) 100%), linear-gradient(180deg, color-mix(in oklch, var(--background) 76%, transparent) 0%, color-mix(in oklch, var(--background) 18%, transparent) 52%, var(--background) 100%)}}.resume-hero-shell:after{content:""}.resume-hero-block{align-items:start;gap:clamp(1rem,2.2vw,1.8rem);min-height:clamp(19rem,28vw,24rem);display:grid}.resume-hero-block__copy,.resume-hero-main-copy{max-width:52rem}.resume-hero-title{max-width:13ch;text-shadow:0 .8rem 2.6rem var(--background)}@supports (color:color-mix(in lab, red, red)){.resume-hero-title{text-shadow:0 .8rem 2.6rem color-mix(in oklch, var(--background) 72%, transparent)}}.resume-hero-title{text-wrap:balance}.resume-hero-eyebrow{color:var(--resume-paper-soft);font-family:var(--font-mono-family);font-size:var(--type-size-xs);letter-spacing:.24em;text-transform:uppercase;margin:.82rem 0 0;font-weight:700}@supports (color:color-mix(in lab, red, red)){.resume-hero-eyebrow{color:color-mix(in oklch, var(--resume-paper-soft) 82%, transparent)}}.resume-hero-eyebrow{letter-spacing:.32em}.resume-hero-lede{max-width:48rem;color:var(--resume-paper-soft);margin:1.08rem 0 0}@supports (color:color-mix(in lab, red, red)){.resume-hero-lede{color:color-mix(in oklch, var(--resume-paper-soft) 92%, transparent)}}.resume-hero-lede{font-family:var(--font-sans-family);letter-spacing:-.01em;text-wrap:pretty;font-size:.96rem;font-weight:500;line-height:1.65}.resume-hero-actions{align-items:center}.resume-hero-intro{grid-template-columns:repeat(3,minmax(0,1fr));gap:.68rem;margin:1.05rem 0 0;display:grid}.resume-hero-intro__item{border:1px solid var(--line-subtle)}@supports (color:color-mix(in lab, red, red)){.resume-hero-intro__item{border:1px solid color-mix(in oklch, var(--line-subtle) 82%, transparent)}}.resume-hero-intro__item{background:var(--surface-compact)}@supports (color:color-mix(in lab, red, red)){.resume-hero-intro__item{background:color-mix(in oklch, var(--surface-compact) 86%, transparent)}}.resume-hero-intro__item{padding:.78rem .85rem .82rem}.resume-hero-intro__item dt{color:var(--accent);font-family:var(--font-mono-family);font-size:var(--type-size-xs);letter-spacing:.24em;text-transform:uppercase;letter-spacing:.18em;margin:0 0 .4rem;font-size:.58rem;font-weight:700}.resume-hero-intro__item dd{max-width:28ch;color:var(--resume-paper-soft);margin:0}@supports (color:color-mix(in lab, red, red)){.resume-hero-intro__item dd{color:color-mix(in oklch, var(--resume-paper-soft) 92%, transparent)}}.resume-hero-intro__item dd{text-wrap:pretty;font-size:.84rem;line-height:1.45}@media (width>=768px){.resume-hero-block{grid-template-columns:minmax(10.5rem,15rem) minmax(0,52rem);justify-content:start;align-items:stretch;width:min(100%,72rem);margin-inline-start:clamp(0rem,7vw,6.5rem);padding-top:clamp(1.1rem,3.4vw,2.85rem)}.resume-hero-block .resume-portrait{aspect-ratio:auto;align-self:stretch;width:100%;height:auto;min-height:100%}.resume-hero-title{white-space:nowrap;max-width:none}.resume-hero-intro{grid-column:1/-1;width:min(100%,50.5rem)}}.resume-download-menu{min-width:0;display:inline-flex;position:relative}.resume-action-button{color:var(--foreground);font-family:var(--font-mono-family);font-size:var(--type-size-xs);letter-spacing:.24em;text-transform:uppercase;border:1px solid var(--line-subtle);min-height:3.2rem;transition:all var(--motion-base) var(--motion-ease-standard);letter-spacing:.13em;white-space:nowrap;justify-content:center;align-items:center;gap:.55rem;padding:.85rem 1.15rem;font-size:.68rem;font-weight:700;line-height:1.1;text-decoration:none;display:inline-flex}button.resume-action-button{cursor:pointer}.resume-action-button--primary{background:var(--accent-strong);color:#151515;border:1px solid var(--accent-strong);transition:border-color .22s var(--motion-ease-standard), color .22s var(--motion-ease-standard), box-shadow .26s var(--motion-ease-standard), background-color .22s var(--motion-ease-standard);box-shadow:0 0 #0000}.resume-action-button--primary:hover{background:var(--background);border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.dark .resume-action-button--primary:hover{background:var(--surface-compact)}.resume-action-button--secondary{color:var(--foreground);border:1px solid var(--line-subtle);transition:border-color .22s var(--motion-ease-standard), color .22s var(--motion-ease-standard), box-shadow .26s var(--motion-ease-standard), background-color .22s var(--motion-ease-standard);background:0 0}.resume-action-button--secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--surface-rect);box-shadow:none}.resume-action-button:hover,.resume-action-button:focus-visible{outline:none}.resume-download-menu__chevron{transition:transform .18s}.resume-download-menu__trigger[aria-expanded=true] .resume-download-menu__chevron{transform:rotate(180deg)}.resume-download-menu__panel{background:var(--surface-elevated);border:1px solid var(--line-subtle);box-shadow:var(--shadow-role);z-index:20;transform-origin:0 0;border-radius:0;gap:.22rem;width:min(22rem,100vw - 2rem);padding:.38rem;display:grid;position:absolute;top:calc(100% + .5rem);left:0}.resume-download-menu__item{font-family:var(--font-mono-family);letter-spacing:.24em;text-transform:uppercase;width:100%;min-height:3.45rem;color:var(--resume-paper);opacity:.8;text-align:left;transition:all var(--motion-fast) var(--motion-ease-standard);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:1rem;padding:.68rem .78rem;font-size:.625rem;font-weight:700;text-decoration:none;display:flex}.resume-download-menu__item:hover,.resume-download-menu__item:focus-visible{background:var(--surface-rect);border:1px solid var(--line-subtle);border-color:var(--accent);color:var(--accent);opacity:1;border-radius:0;outline:none;transform:translate(1px)}.resume-download-menu__item span{gap:.18rem;display:grid}.resume-download-menu__item strong{letter-spacing:.13em;text-transform:uppercase;font-size:.64rem;font-weight:900;line-height:1}.resume-download-menu__item small{font-family:var(--font-sans-family);color:var(--muted-foreground);letter-spacing:0;text-transform:none;font-size:.75rem;line-height:1.25}button.resume-download-menu__item{cursor:pointer}.resume-portrait img{object-fit:cover;object-position:50% 50%;filter:contrast(1.02)saturate();width:100%;height:100%;transition:filter .5s var(--motion-ease-standard), transform .5s var(--motion-ease-standard)}.resume-portrait:hover img{filter:contrast(1.04)saturate(1.04);transform:scale(1.03)}.resume-contact a,.resume-contact span{letter-spacing:-.005em;min-height:2.75rem;color:var(--resume-paper);opacity:.9;border-bottom:1px solid var(--line-subtle);align-items:center;gap:.65rem;padding-bottom:.45rem;font-size:.875rem;line-height:1.5;text-decoration:none;display:flex}.resume-contact svg{color:var(--accent)}.resume-proof,.resume-experience,.resume-side-panel{border-block:1px solid var(--line-subtle);background:linear-gradient(180deg, var(--surface-compact), transparent)}@supports (color:color-mix(in lab, red, red)){.resume-proof,.resume-experience,.resume-side-panel{background:linear-gradient(180deg, color-mix(in oklch, var(--surface-compact) 70%, transparent), transparent)}}.resume-proof,.resume-experience,.resume-side-panel{padding:clamp(.95rem,1.8vw,1.35rem) 0}.resume-experience{background:0 0;border-block:0;padding-block:0}.resume-proof-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.5rem);display:grid}.resume-proof-strip article{text-align:left;min-height:6.8rem;padding:0}.resume-side-panel h2,.resume-education-list h2{font-family:var(--font-sans-family);letter-spacing:0;color:var(--resume-paper);margin:.75rem 0 0;font-size:.9rem;font-weight:800;line-height:1.1}.resume-side-panel p,.resume-education-list p,.resume-recognition p{letter-spacing:-.005em;color:var(--resume-paper-muted);margin:.45rem 0 0;font-size:.875rem;line-height:1.5}.resume-body{gap:clamp(1.4rem,2.6vw,2.25rem);display:grid}.resume-panel-head{z-index:2;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;min-width:0;padding-top:0;display:flex;position:relative}.resume-tabs{border:0;border-bottom:1px solid var(--line-subtle);min-height:2.55rem;box-shadow:none;background:0 0;border-radius:0;flex:none;gap:1.2rem;padding:0;display:inline-flex;overflow:visible}.resume-tab-button{font-family:var(--font-mono-family);letter-spacing:.16em;text-transform:uppercase;min-width:0;min-height:2.45rem;color:var(--resume-paper);background:0 0;border:1px solid #0000;border-radius:0;font-size:.68rem;font-weight:700;position:relative;overflow:visible}@supports (color:color-mix(in lab, red, red)){.resume-tab-button{color:color-mix(in oklch, var(--resume-paper) 72%, transparent)}}.resume-tab-button{cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease-standard), background-color var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard), transform var(--motion-fast) var(--motion-ease-standard)}.resume-tab-button__indicator{z-index:0;background:var(--accent);height:2px;box-shadow:0 .45rem 1.2rem var(--accent);position:absolute;bottom:-1px;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.resume-tab-button__indicator{box-shadow:0 .45rem 1.2rem color-mix(in oklch, var(--accent) 22%, transparent)}}.resume-tab-button__label{z-index:1;position:relative}.resume-tab-button:hover,.resume-tab-button:focus-visible{color:var(--foreground);background:0 0;border-color:#0000;outline:none}.resume-tab-button:focus-visible{box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab, red, red)){.resume-tab-button:focus-visible{box-shadow:0 0 0 2px color-mix(in oklch, var(--accent) 30%, transparent)}}.resume-tab-button:active{transform:translateY(1px)}.resume-tab-button[aria-selected=true]{color:var(--accent);border-color:#0000}.resume-tab-panel[hidden]{display:none}.resume-timeline{margin-top:1.1rem;display:grid;position:relative}.resume-timeline:before{content:none}.resume-job{border-bottom:1px solid var(--line-subtle);transition:all var(--motion-base) var(--motion-ease-standard);gap:clamp(.8rem,1.8vw,1.1rem);padding:clamp(1rem,1.8vw,1.35rem) 0 clamp(1rem,1.8vw,1.35rem) 1.1rem;display:grid;position:relative}.resume-job:hover{background:var(--surface-compact)}@supports (color:color-mix(in lab, red, red)){.resume-job:hover{background:color-mix(in oklch, var(--surface-compact) 58%, transparent)}}.resume-job:after{content:"";background:var(--accent);width:2px;height:1.7rem;position:absolute;top:clamp(1.05rem,1.8vw,1.4rem);left:0}@supports (color:color-mix(in lab, red, red)){.resume-job:after{background:color-mix(in oklch, var(--accent) 72%, var(--line-subtle))}}.resume-job:after{z-index:1;opacity:.76;transition:all var(--motion-base) var(--motion-ease-standard)}.resume-job:hover:after{background:var(--accent);opacity:1;height:2.2rem}.resume-job h2{transition:color var(--motion-base) var(--motion-ease-standard)}.resume-job:hover h2{color:var(--accent)}.resume-job header{gap:.65rem;display:grid}.resume-job header>p{font-family:var(--font-mono-family);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.625rem;font-weight:700}.resume-job h2{font-family:var(--font-display-family);letter-spacing:0;text-transform:uppercase;color:var(--resume-paper);text-wrap:balance;margin:0;font-size:clamp(1.35rem,2.35vw,1.9rem);font-weight:700;line-height:.92}.resume-job>p{letter-spacing:-.01em;color:var(--resume-paper-soft);opacity:1;margin-top:.28rem;font-size:1rem;line-height:1.6;display:block}.resume-job ul{gap:.62rem;margin:0;padding:0;list-style:none;display:grid}.resume-job li{letter-spacing:-.005em;color:var(--foreground);padding-left:1.05rem;font-size:.875rem;line-height:1.5;position:relative}@supports (color:color-mix(in lab, red, red)){.resume-job li{color:color-mix(in oklch, var(--foreground) 84%, transparent)}}.resume-job li:before{background:var(--accent);content:"";width:.34rem;height:.34rem;position:absolute;top:.72em;left:0}.resume-extra-experience{border-bottom:1px solid var(--line-subtle);margin-top:.95rem}.resume-extra-experience summary{border:1px solid var(--line-subtle);border-left:2px solid var(--accent);background:var(--surface-rect);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.85rem;min-height:4.35rem;display:grid}@supports (color:color-mix(in lab, red, red)){.resume-extra-experience summary{background:color-mix(in oklch, var(--surface-rect) 74%, transparent)}}.resume-extra-experience summary{color:var(--foreground);cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease-standard), background-color var(--motion-fast) var(--motion-ease-standard), transform var(--motion-fast) var(--motion-ease-standard);padding:.92rem .82rem .92rem 1.05rem;list-style:none}.resume-extra-experience summary:hover,.resume-extra-experience summary:focus-visible{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.resume-extra-experience summary:hover,.resume-extra-experience summary:focus-visible{border-color:color-mix(in oklch, var(--accent) 55%, var(--line-subtle))}}.resume-extra-experience summary:hover,.resume-extra-experience summary:focus-visible{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.resume-extra-experience summary:hover,.resume-extra-experience summary:focus-visible{background:color-mix(in oklch, var(--accent) 9%, var(--surface-rect))}}.resume-extra-experience summary:hover,.resume-extra-experience summary:focus-visible{outline:none}.resume-extra-experience summary:active{transform:translateY(1px)}.resume-extra-experience summary::-webkit-details-marker{display:none}.resume-extra-experience summary:after{content:"+";border:1px solid var(--accent);flex:none;place-items:center;width:2rem;height:2rem;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.resume-extra-experience summary:after{border:1px solid color-mix(in oklch, var(--accent) 45%, var(--line-subtle))}}.resume-extra-experience summary:after{background:var(--background);color:var(--resume-paper);font-family:var(--font-mono-family);transition:background-color var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);font-size:1rem;line-height:1}.resume-extra-experience[open] summary:after{content:"-";background:var(--accent);color:var(--accent-foreground)}.resume-extra-experience__summary-copy{gap:.18rem;min-width:0;display:grid}.resume-extra-experience__summary-copy strong{color:var(--accent);font-family:var(--font-mono-family);font-size:var(--type-size-xs);letter-spacing:.24em;text-transform:uppercase;font-weight:700}.resume-extra-experience__summary-copy small{color:var(--muted-foreground);font-size:.78rem;line-height:1.45}.resume-extra-experience__summary-action{border:1px solid var(--line-subtle);min-height:2rem;color:var(--resume-paper);font-family:var(--font-mono-family);letter-spacing:.12em;text-transform:uppercase;align-items:center;padding:0 .65rem;font-size:.62rem;font-weight:700;display:inline-flex}.resume-extra-experience[open] .resume-extra-experience__summary-action{color:var(--accent)}.resume-extra-experience__items{border-top:1px solid var(--line-subtle)}.resume-extra-experience__items .resume-job:last-child{border-bottom:0}.resume-side{align-content:start;gap:clamp(1rem,2vw,1.5rem);display:grid}.resume-side-panel{background:0 0;position:relative;overflow:hidden}.resume-side-tabs{border-top:0}.resume-skills{gap:.95rem;margin-top:1.15rem;display:grid}.resume-skills>.resume-radar-card:first-child{border-top:0;padding-top:.25rem}.resume-side-panel-stage{z-index:1;min-width:0;position:relative}.resume-side-panel-spotlight{z-index:0;pointer-events:none;opacity:0;position:absolute;inset:0}.resume-radar-card,.resume-skill-block{border-top:1px solid var(--line-subtle);background:0 0}.resume-skills>.resume-radar-card+.resume-skill-block{border-top:0}.resume-radar-card{transform-style:preserve-3d;padding:clamp(.85rem,1.6vw,1rem);position:relative;overflow:hidden}.resume-radar-card__header,.resume-skill-block__header{z-index:1;justify-content:space-between;align-items:start;gap:.8rem;min-width:0;display:flex;position:relative}.resume-skill-block__header h2{font-family:var(--font-mono-family);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-size:.625rem;font-weight:700}.resume-radar-card__header h2{font-family:var(--font-heading-family);letter-spacing:-.02em;text-transform:none;color:var(--foreground);opacity:1;margin:.35rem 0 0;font-size:1.25rem;font-weight:700}.resume-portrait{border:1px solid var(--resume-paper);place-self:center start;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.resume-portrait{border:1px solid color-mix(in oklch, var(--resume-paper) 16%, transparent)}}.resume-portrait{background:var(--surface-compact)}@supports (color:color-mix(in lab, red, red)){.resume-portrait{background:color-mix(in oklch, var(--surface-compact) 72%, transparent)}}.resume-portrait{aspect-ratio:4/5;width:min(6.75rem,36vw);box-shadow:0 1.35rem 3.2rem var(--background)}@supports (color:color-mix(in lab, red, red)){.resume-portrait{box-shadow:0 1.35rem 3.2rem color-mix(in oklch, var(--background) 62%, transparent)}}.resume-radar-chart{z-index:1;aspect-ratio:1.03;min-height:15.75rem;margin-top:.35rem;position:relative}.resume-radar-chart svg{width:100%;height:100%;overflow:visible}.resume-radar-grid polygon{fill:none;stroke:var(--line-subtle);stroke-width:1px;transform-box:fill-box}.resume-radar-grid line{stroke:var(--line-subtle);stroke-width:1px}.resume-radar-fill{fill:var(--accent)}@supports (color:color-mix(in lab, red, red)){.resume-radar-fill{fill:color-mix(in oklch, var(--accent) 12%, transparent)}}.resume-radar-fill{transition:all var(--motion-base) var(--motion-ease-standard);transform-box:fill-box;transform-origin:50%}.resume-radar-stroke{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;vector-effect:non-scaling-stroke;transition:all var(--motion-base) var(--motion-ease-standard);transform-box:fill-box;transform-origin:50%}.resume-radar-node{fill:var(--accent);transition:all var(--motion-base) var(--motion-ease-standard);transform-box:fill-box;transform-origin:50%}.resume-radar-node-pulse{fill:var(--accent);transform-origin:50%;transform-box:fill-box;animation:2.4s cubic-bezier(.16,1,.3,1) infinite radar-node-pulse-scale;display:none}.resume-radar-label{font-family:var(--font-mono-family);text-transform:uppercase;fill:var(--foreground);opacity:.8;letter-spacing:0;transition:all var(--motion-base) var(--motion-ease-standard);transform-box:fill-box;transform-origin:50%;font-size:.625rem;font-weight:700}.resume-radar-sweep{transform-origin:160px 150px;pointer-events:none;animation:7s linear infinite resume-radar-sweep-rotate;display:none}@keyframes resume-radar-sweep-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.resume-radar-card:hover .resume-radar-stroke{stroke-width:1.8px}.resume-radar-card:hover .resume-radar-fill{fill:var(--accent)}@supports (color:color-mix(in lab, red, red)){.resume-radar-card:hover .resume-radar-fill{fill:color-mix(in oklch, var(--accent) 14%, transparent)}}.resume-radar-card:hover .resume-radar-node{transform:scale(1.12)}.resume-radar-card:hover .resume-radar-label{opacity:1;fill:var(--accent)}.resume-skill-block{padding:.78rem}.resume-skill-block__header h2{margin:.35rem 0 0}.resume-skill-rows,.resume-language-list{gap:.42rem;margin-top:.75rem;display:grid}.resume-skill-row,.resume-language-row{border-top:1px solid var(--line-subtle);transition:background-color var(--motion-base) var(--motion-ease-standard), color var(--motion-base) var(--motion-ease-standard);background:0 0}.resume-skill-row:hover,.resume-language-row:hover{background:var(--surface-compact)}.resume-skill-row{grid-template-columns:2.35rem minmax(0,1fr);align-items:center;gap:.62rem;min-height:3.65rem;padding:.5rem;display:grid}.resume-skill-row__icon,.resume-language-row__code{border:1px solid var(--line-subtle);background:var(--surface-rect);width:2.35rem;height:2.35rem;color:var(--accent);transition:all var(--motion-fast) var(--motion-ease-standard);place-items:center;display:grid}.resume-skill-row:hover .resume-skill-row__icon,.resume-language-row:hover .resume-language-row__code{border-color:var(--accent);background:var(--surface-elevated)}.resume-skill-row__copy,.resume-language-row__copy{gap:.13rem;min-width:0;display:grid}.resume-skill-row__copy strong,.resume-tool-card__label,.resume-language-row__copy strong{font-family:var(--font-mono-family);letter-spacing:.12em;text-transform:uppercase;color:var(--resume-paper);font-size:.625rem;font-weight:700}.resume-skill-row__copy small,.resume-language-row__copy small{letter-spacing:-.005em;color:var(--muted-foreground);text-wrap:pretty;font-size:.72rem;line-height:1.5}.resume-tool-card__label{letter-spacing:.075em;overflow-wrap:normal;text-wrap:balance;max-width:100%;line-height:1.24}.resume-skill-tag{font-size:var(--type-size-xs);min-height:1.75rem;padding:.34rem .58rem;font-size:.58rem}.resume-skill-tag:before{content:"";background:var(--accent);flex:none;width:.24rem;height:.24rem}.resume-tool-tabs{border:1px solid var(--line-subtle);background:var(--line-subtle);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:.75rem;display:grid}.resume-tool-tab{color:var(--muted-foreground);font-family:var(--font-mono-family);font-size:var(--type-size-xs);letter-spacing:.24em;text-transform:uppercase;background:var(--background);cursor:pointer;letter-spacing:.14em;min-height:2.35rem;transition:background-color var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);border:0;font-size:.58rem;font-weight:700}.resume-tool-tab:hover,.resume-tool-tab:focus-visible{color:var(--foreground);outline:none}.resume-tool-tab[aria-selected=true]{background:var(--surface-rect);color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.resume-tool-grid{border-top:1px solid var(--line-subtle);background:0 0;flex-wrap:wrap;align-items:start;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.resume-tool-card{transition:border-color .28s var(--motion-ease-standard), background-color .28s var(--motion-ease-standard), box-shadow .4s var(--motion-ease-standard), transform .28s var(--motion-ease-standard), color .2s var(--motion-ease-standard);border:1px solid var(--line-subtle);text-align:center;background:0 0;flex:6.6rem;align-content:center;justify-items:center;gap:.42rem;min-height:4.65rem;padding:.62rem .4rem;display:grid}.resume-tool-card:hover{background:var(--surface-rect)}.resume-tool-card__logo{place-items:center;width:2rem;height:2rem;display:grid}.resume-tool-card__logo-stack{justify-content:center;align-items:center;gap:.24rem;display:flex}.resume-tool-card__logo-stack img{max-width:1.05rem;max-height:1.05rem}.resume-tool-card__logo-stack span,.resume-tool-card__textmark{font-family:var(--font-mono-family);letter-spacing:.24em;text-transform:uppercase;border:1px solid var(--line-subtle);background:var(--surface-rect);min-width:1.6rem;min-height:1.35rem;color:var(--resume-paper);justify-content:center;align-items:center;padding:.16rem .3rem;font-size:.625rem;font-weight:700;display:inline-flex}.resume-tool-card__textmark{min-width:2.35rem;min-height:2rem;color:var(--accent)}.resume-tool-card__iconmark{width:2rem;min-width:2rem;height:2rem;min-height:2rem;color:var(--resume-paper);opacity:.78;transition:color var(--motion-fast) var(--motion-ease-standard), opacity var(--motion-fast) var(--motion-ease-standard), transform var(--motion-fast) var(--motion-ease-standard);place-items:center;padding:0;display:inline-grid}.resume-tool-card__iconmark svg{stroke:currentColor;width:1.55rem;height:1.55rem}.resume-tool-card:hover .resume-tool-card__iconmark{color:var(--accent);opacity:.95;transform:translateY(-1px)}.resume-tool-card img{object-fit:contain;opacity:.78;filter:grayscale(.95)saturate(.35)brightness(1.18);max-width:1.8rem;max-height:1.8rem;transition:all var(--motion-fast) var(--motion-ease-standard)}.resume-tool-card img.is-inverted{opacity:.72;filter:brightness(0)}.dark .resume-tool-card img.is-inverted{opacity:.68;filter:brightness(0)invert()}.resume-tool-card img.is-color-preserved{opacity:.88;filter:none}.resume-tool-card:hover img{opacity:.95;transform:translateY(-1px)scale(1.03)}.resume-tool-card:hover img:not(.is-inverted){filter:grayscale(.15)saturate(.9)brightness()}.resume-tool-card:hover img.is-color-preserved{filter:none}.resume-language-row{grid-template-columns:3.05rem minmax(0,1fr);align-items:center;gap:.72rem;min-height:3.25rem;padding:.56rem .5rem;display:grid}.resume-language-row__code{font-family:var(--font-mono-family);letter-spacing:.08em;text-transform:uppercase;width:3.05rem;color:var(--resume-paper);font-size:.625rem;font-weight:700}.resume-education-list{border-top:1px solid var(--line-subtle);margin-top:1.1rem;display:grid}.resume-education-list>article>h2{font-family:var(--font-display-family);letter-spacing:0;text-transform:uppercase;margin:0;font-size:clamp(1.2rem,2vw,1.65rem);font-weight:700;line-height:.96}.resume-education-list>article>p:first-of-type{letter-spacing:-.01em;color:var(--resume-paper-soft);opacity:1;margin-top:.35rem;font-size:1rem;line-height:1.55}.resume-education-list>article>p:not(:first-of-type){max-width:64rem;color:var(--resume-paper-muted)}.resume-education-list>article>p+p{margin-top:.58rem}.resume-education-list article,.resume-recognition article{border-bottom:1px solid var(--line-subtle);transition:all var(--motion-base) var(--motion-ease-standard);border-left:2px solid #0000;padding:clamp(1rem,2vw,1.25rem) .5rem}.resume-education-list article:hover,.resume-recognition article:hover{background:var(--surface-compact);border-left-color:var(--accent);padding-left:1rem}.resume-education-list article h2,.resume-recognition article h2{transition:color var(--motion-base) var(--motion-ease-standard)}.resume-education-list article:hover h2,.resume-recognition article:hover h2{color:var(--accent)}.resume-education-list article>span,.resume-recognition article span{font-family:var(--font-mono-family);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-top:.65rem;font-size:.625rem;font-weight:700;display:block}.resume-education-skills{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.resume-recognition{border-top:1px solid var(--line-subtle);margin-top:clamp(1.2rem,2.5vw,1.6rem);padding-top:1.1rem}.resume-contact{gap:.5rem;display:grid}.resume-contact a:hover,.resume-contact a:focus-visible{color:var(--accent);outline:none}.resume-contact__cta{color:var(--resume-paper);border:1px solid var(--line-subtle);transition:border-color .22s var(--motion-ease-standard), color .22s var(--motion-ease-standard), box-shadow .26s var(--motion-ease-standard), background-color .22s var(--motion-ease-standard);font-family:var(--font-mono-family);text-transform:uppercase;letter-spacing:.15em;background:0 0;justify-content:center;margin-top:.5rem;font-size:.65rem;font-weight:700}.resume-contact__cta:hover{border-color:var(--accent);color:var(--accent);background:var(--surface-rect);box-shadow:none}@media (width>=640px){.resume-job{grid-template-columns:minmax(12rem,.34fr) minmax(0,1fr)}}@media (width>=900px){.resume-proof-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.resume-hero-block .resume-portrait{width:100%}.resume-portrait{justify-self:start;width:min(100%,11.5rem)}.resume-body{grid-template-columns:minmax(0,1.28fr) minmax(20rem,.58fr)}}@media (width<=639px){.resume-page{gap:.75rem}.resume-page nav[aria-label=Breadcrumb]{margin-bottom:1rem}.resume-body{gap:.75rem}.resume-hero-block{grid-template-columns:minmax(5.7rem,6.6rem) minmax(0,1fr);gap:.85rem 1rem;min-height:0}.resume-hero-block__copy{display:contents}.resume-hero-identity{align-self:center;min-width:0}.resume-hero-title{white-space:normal;font-size:clamp(2rem,13vw,3rem);line-height:.92}.resume-hero-eyebrow{letter-spacing:.16em;margin-top:.58rem;font-size:.52rem;line-height:1.35}.resume-hero-main-copy{grid-column:1/-1}.resume-hero-lede{margin-top:.2rem;font-size:.9rem;line-height:1.58}.resume-download-menu{width:100%;display:grid}.resume-hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;width:100%;display:grid}.resume-action-button--primary,.resume-action-button--secondary{justify-content:center;width:100%}.resume-action-button{letter-spacing:.09em;min-height:3rem;padding:.78rem .6rem;font-size:.58rem}.resume-download-menu__panel{transform-origin:100% 0;width:min(200% + .65rem,100vw - 2rem);margin-top:.5rem;left:auto;right:0}.resume-proof-strip{gap:.65rem}.resume-proof-strip article{border:1px solid var(--line-subtle);min-height:7.25rem}@supports (color:color-mix(in lab, red, red)){.resume-proof-strip article{border:1px solid color-mix(in oklch, var(--line-subtle) 84%, transparent)}}.resume-proof-strip article{background:var(--surface-compact)}@supports (color:color-mix(in lab, red, red)){.resume-proof-strip article{background:color-mix(in oklch, var(--surface-compact) 78%, transparent)}}.resume-proof-strip article{padding:.82rem .78rem}.resume-portrait{width:min(100%,5.8rem)}.resume-hero-intro{grid-template-columns:1fr;gap:.48rem;margin-top:.9rem}.resume-hero-intro__item{padding:.68rem .72rem}.resume-hero-intro__item dd{max-width:none;font-size:.78rem;line-height:1.42}.resume-panel-head{align-items:stretch}.resume-tabs{width:100%}.resume-tab-button{flex:1;min-width:0}.resume-proof,.resume-experience,.resume-side-panel{padding:1rem}.resume-experience{padding:0}.resume-job{gap:.65rem;padding:.85rem 0 .85rem 1.15rem}.resume-job h2{font-size:clamp(1.15rem,4vw,1.45rem)}.resume-job header>p{font-size:.58rem}.resume-job header{gap:.4rem}.resume-job ul{gap:.38rem}.resume-job li{font-size:.82rem;line-height:1.45}.resume-timeline{margin-top:.85rem}.resume-education-list>article>h2{font-size:clamp(.95rem,3.5vw,1.15rem)}.resume-education-list article,.resume-recognition article{padding:.65rem 0}.resume-education-list>article>p:not(:first-of-type){font-size:.78rem;line-height:1.45}.resume-education-skills{gap:.32rem}.resume-recognition{margin-top:.85rem}.resume-skills{gap:.65rem;margin-top:.75rem}.resume-radar-chart{min-height:13rem}.resume-radar-card{padding:.75rem}.resume-skill-block{padding:.65rem}.resume-skill-rows,.resume-language-list{gap:.3rem}.resume-radar-label{letter-spacing:.08em;font-size:.5rem}.resume-skill-row{min-height:3rem;padding:.38rem}.resume-skill-row,.resume-language-row{grid-template-columns:2.35rem minmax(0,1fr)}.resume-language-row{grid-template-columns:2.8rem minmax(0,1fr);min-height:2.6rem;padding:.35rem .42rem}.resume-skill-row__icon,.resume-language-row__code{width:2rem;height:2rem}.resume-tool-grid{gap:.45rem}.resume-tool-card{flex-basis:7.5rem;min-height:4rem;padding:.5rem .35rem}}@media (prefers-reduced-motion:reduce){.resume-page *,.resume-page :before,.resume-page :after{transition-duration:1ms;animation-duration:1ms}.resume-radar-card:after{opacity:0;animation:none}}
