:root,[data-theme=dark]{--bg:#0b1117;--surface:#121a22;--raised:#18222c;--text:#e6edf2;--muted:#9aa7b2;--line:#e6edf221;--teal:#38e1d0;--blue:#6fb6ff;--violet:#a862e0;--accent:var(--teal);--action:var(--teal);--on-action:#0b1117;--attn:#7fb2ff;--glow:0 0 60px #a862e029}[data-theme=light]{--bg:#f9f9fb;--surface:#fff;--raised:#f2f2f6;--text:#1d1d1f;--muted:#5c5c66;--line:#0000001f;--teal:#097a8c;--blue:#2f6fd0;--violet:#7a3fc8;--accent:var(--violet);--action:#1d1d1f;--on-action:#fff;--attn:#2f62c4;--glow:0 10px 30px #0000000f}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:24px;--radius-pill:999px;--container:1200px;--measure:720px;--tap-min:44px;--control:48px;--font-display:var(--font-archivo), system-ui, sans-serif;--font-body:var(--font-plex-sans), system-ui, sans-serif;--font-mono:var(--font-plex-mono), ui-monospace, monospace}.ps-page{background:var(--bg);color:var(--text);font:400 17px/1.55 var(--font-body);-webkit-font-smoothing:antialiased;min-height:100%;position:relative}.ps-page *,.ps-page :before,.ps-page :after{box-sizing:border-box}.ps-page :where(h1,h2,h3,p,dl,dd,ul,ol,figure,blockquote){margin:0}.ps-page :where(ul,ol){padding:0;list-style:none}.ps-page :where(a){color:inherit;text-decoration:none}.ps-page :where(a,button):focus-visible{outline:2px solid var(--attn);outline-offset:3px}.ps-page :where(img,video,svg){max-width:100%}.ps-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(20px,5vw,64px)}.ps-section{padding-top:clamp(40px,6vw,var(--space-8))}.ps-stack>*+*{margin-top:var(--space-5)}.ps-muted{color:var(--muted)}.ps-halo{position:relative;overflow:hidden}.ps-halo:before{content:"";pointer-events:none;background:radial-gradient(45% 70% at 85% 0%,color-mix(in srgb,var(--violet) 18%,transparent),transparent 70%), radial-gradient(45% 70% at 10% 0%,color-mix(in srgb,var(--teal) 14%,transparent),transparent 70%);position:absolute;inset:0}[data-theme=light] .ps-halo:before{background:radial-gradient(45% 70% at 85% 0%,color-mix(in srgb,var(--violet) 8%,transparent),transparent 70%), radial-gradient(45% 70% at 10% 0%,color-mix(in srgb,var(--blue) 8%,transparent),transparent 70%)}.ps-halo>*{position:relative}.ps-eyebrow{font:500 11.5px/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ps-eyebrow--accent{color:var(--accent)}.ps-display-xl,.ps-display-lg,.ps-display-md,.ps-h2,.ps-h3{font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:break-word;font-stretch:112%}.ps-display-xl{font-size:clamp(40px,5.6vw,76px);font-weight:700;line-height:1.02}.ps-display-lg{font-size:clamp(34px,4.6vw,58px);font-weight:500;line-height:1.05}.ps-display-md{font-size:clamp(32px,4vw,44px);font-weight:700;line-height:1}.ps-h2{font-size:30px;font-weight:700;line-height:1.05}.ps-h3{letter-spacing:-.02em;font-size:21px;font-weight:700;line-height:1.1}.ps-name{color:var(--accent)}.ps-tagline{font:500 clamp(20px,2.2vw,28px)/1.25 var(--font-display);letter-spacing:-.01em;font-stretch:112%}.ps-lead{color:var(--muted);max-width:56ch;font-size:19px;line-height:1.55}.ps-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-block:20px;display:flex}.ps-mark{width:var(--tap-min);height:var(--tap-min);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font:700 16px/1 var(--font-display);justify-content:center;align-items:center;font-stretch:112%;display:inline-flex}.ps-nav{flex-wrap:wrap;align-items:center;gap:12px 28px;font-size:15px;display:flex}.ps-nav a:not(.ps-btn){color:var(--muted);transition:color .12s}.ps-nav a:not(.ps-btn):hover{color:var(--accent)}.ps-nav a[aria-current=page]{color:var(--text);border-bottom:1px solid var(--accent);padding-bottom:2px}.ps-btn{min-height:var(--control);border-radius:var(--radius-pill);font:600 16px/1.2 var(--font-body);text-align:center;justify-content:center;align-items:center;padding:0 26px;transition:filter .12s,background .12s;display:inline-flex}.ps-btn--primary{background:var(--action);color:var(--on-action)}.ps-btn--primary:hover{filter:brightness(1.08)}.ps-btn--secondary{border:1px solid var(--line);font-weight:500}.ps-btn--secondary:hover{background:var(--raised)}.ps-btn--sm{min-height:var(--tap-min);padding:0 20px;font-size:15px}.ps-actions{flex-wrap:wrap;gap:12px;display:flex}.ps-tags{flex-wrap:wrap;gap:8px;display:flex}.ps-tag{font:500 11.5px/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--accent);padding:5px 12px}.ps-hero__inner{flex-wrap:wrap;align-items:center;gap:32px 56px;padding-block:16px 40px;display:flex}.ps-hero__text{flex:440px;min-width:0}.ps-hero__text>*+*{margin-top:18px}.ps-hero__media{flex:none;width:clamp(190px,22vw,260px)}.ps-portrait{aspect-ratio:4/5;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--raised);overflow:hidden}.ps-portrait img{object-fit:cover;object-position:50% 22%;width:100%;height:100%;display:block}.ps-portrait--empty{justify-content:center;align-items:center;display:flex}.ps-stats{border-block:1px solid var(--line);flex-wrap:wrap;gap:0 40px;display:flex}.ps-stat{flex:260px;align-items:center;gap:16px;min-width:0;padding-block:20px;display:flex}.ps-stat__value{font:500 clamp(34px,3.6vw,46px)/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap;flex:none}.ps-stat__label{color:var(--muted);overflow-wrap:break-word;max-width:28ch;font-size:14.5px;line-height:1.4}.ps-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));display:grid}.ps-grid--wide{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}.ps-card{min-width:0;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);overflow-wrap:break-word}.ps-card--span{grid-column:1/-1}.ps-card__index{font:500 11.5px/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.ps-card__title{margin-top:10px}.ps-card__text{color:var(--muted);margin-top:10px;font-size:15px;line-height:1.5}.ps-media{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.ps-media--4x3{aspect-ratio:4/3}.ps-media :where(img,video){object-fit:cover;width:100%;height:100%;display:block}.ps-media--placeholder{text-align:center;border:1px dashed var(--accent);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.ps-media--placeholder svg{flex:none}.ps-work{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--glow);flex-wrap:wrap;display:flex;overflow:hidden}.ps-work__media{text-align:center;background:var(--raised);border-right:1px solid var(--line);flex-direction:column;flex:420px;justify-content:center;align-items:center;gap:14px;min-width:0;min-height:280px;padding:24px;display:flex}.ps-work__media :where(img,video){object-fit:cover;width:100%;height:100%;display:block}.ps-work__body{flex-direction:column;flex:400px;justify-content:center;gap:14px;min-width:0;padding:clamp(24px,3.5vw,40px);display:flex}.ps-work__title{font-size:clamp(28px,3.4vw,40px)}.ps-work__meta{font:400 13px/1.4 var(--font-mono);color:var(--muted)}.ps-work__link{color:var(--accent);align-self:flex-start;font-weight:600}.ps-ribbon{border-top:1px solid var(--line);font:400 12px/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:10px 28px;padding-block:20px;display:flex}.ps-ribbon a:hover{color:var(--accent)}.ps-row{padding-block:var(--space-8);border-top:1px solid var(--line);flex-wrap:wrap;gap:20px 64px;display:flex}.ps-row__title{flex:240px;min-width:0}.ps-row__body{min-width:0;max-width:var(--measure);flex:3 520px}.ps-row__body>*+*{margin-top:20px}.ps-row__body p{font-size:18px;line-height:1.65}.ps-case{gap:var(--space-7) 72px;flex-wrap:wrap;align-items:flex-start;display:flex}.ps-case__article{min-width:0;max-width:var(--measure);flex:3 520px}.ps-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex:280px;min-width:0;max-width:340px;padding:28px}.ps-panel dl{gap:20px;display:grid}.ps-panel dt{font:500 11.5px/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ps-panel dd{overflow-wrap:break-word;margin-top:6px;font-size:16px}.ps-panel__outcome{border-top:1px solid var(--line);padding-top:20px}.ps-panel__outcome dd{font:500 20px/1.35 var(--font-mono);color:var(--accent)}.ps-back{font:400 12px/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ps-back:hover{color:var(--accent)}.ps-skills{flex-wrap:wrap;gap:28px 40px;display:flex}.ps-skills__group{flex:320px;min-width:0}.ps-skills__title{margin-bottom:12px;font-size:15px;font-weight:600}.ps-chips{flex-wrap:wrap;gap:8px;display:flex}.ps-chip{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);padding:5px 13px;font-size:13.5px;line-height:1.4}.ps-contact{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);padding:clamp(28px,4vw,48px)}.ps-contact__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 48px;display:flex}.ps-contact__text{min-width:0}.ps-contact__text p{max-width:46ch;color:var(--muted);margin-top:12px;font-size:16px}.ps-footer{font:400 12px/1.4 var(--font-mono);letter-spacing:.04em;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:32px 40px;display:flex}.ps-resume__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;padding-block:16px 32px;display:flex}.ps-resume__head>div{min-width:0}.ps-entry{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px 48px;padding-block:28px;display:flex}.ps-entry__when{min-width:0;max-width:220px;font:400 13px/1.5 var(--font-mono);color:var(--muted);flex:180px}.ps-entry__what{flex:3 480px;min-width:0}.ps-entry__org{color:var(--muted);margin-top:4px}.ps-entry__list{gap:8px;margin-top:14px;display:grid}.ps-entry__list li{padding-left:1.1em;font-size:16px;line-height:1.55;position:relative}.ps-entry__list li:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.7em;left:0}.ps-entry__list li>*{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){.ps-page *{transition:none!important}}@media print{.ps-page{--bg:#fff;--surface:#fff;--raised:#fff;--text:#000;--muted:#333;--line:#bbb;--accent:#4b2a86;color:#000;background:#fff}.ps-halo:before,.ps-nav,.ps-btn,.ps-ribbon,.ps-contact{display:none!important}.ps-entry{break-inside:avoid}}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{margin:0}.skip-link{left:var(--space-4);z-index:10;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--action);color:var(--on-action);position:absolute;top:-4rem}.skip-link:focus{top:var(--space-4)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ps-page :where(p,li) a:not(.ps-btn){color:var(--accent);text-underline-offset:.18em;text-decoration:underline}main{padding-bottom:clamp(40px, 6vw, var(--space-8))}main .ps-row:last-child{padding-bottom:0}.ps-feature{container-type:inline-size}.ps-stack>.ps-feature,.ps-stack>.ps-feature+*{margin-top:var(--space-6)}.ps-feature__inner{gap:var(--space-4);display:grid}.ps-feature__inner>*{min-width:0}.ps-feature__media{margin:0}.ps-feature__text>*+*{margin-top:var(--space-4)}.ps-feature__caption{margin-top:var(--space-2);color:var(--muted);overflow-wrap:break-word;font-size:13.5px;line-height:1.4}.ps-feature .ps-media :where(img){object-position:0 0}@container (width>=700px){.ps-feature__inner{gap:var(--space-5);grid-template-columns:1fr 1fr;align-items:center}.ps-feature--flip .ps-feature__media{order:2}}@container (width>=800px){.ps-feature__inner{gap:var(--space-6);grid-template-columns:3fr 2fr}.ps-feature--flip .ps-feature__inner{grid-template-columns:2fr 3fr}}.theme-toggle[data-astro-cid-l6lhmie6]{min-height:var(--tap-min);font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;transition:color .12s}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--accent)}.theme-toggle[data-astro-cid-l6lhmie6]:focus-visible{outline:2px solid var(--attn);outline-offset:3px}@media print{.theme-toggle[data-astro-cid-l6lhmie6]{display:none}}
