.pv{--pv-bg:#ffffff;--pv-text:#151833;--pv-muted:#5a5e80;--pv-card:#f6f6fb;--pv-border:#e6e7f2;--pv-width:860px;--pv-gutter:20px;--pv-ink:var(--pv-ink-light);--pv-solid:var(--pv-ink-light);container-type:inline-size;display:grid;align-content:start;padding-bottom:24px;background:var(--pv-bg);color:var(--pv-text);border-radius:14px;box-shadow:var(--shadow);overflow:clip;font-family:var(--font-body),sans-serif;line-height:1.6;overflow-wrap:anywhere}.pv-mode-dark{--pv-bg:#121638;--pv-text:#eef0ff;--pv-muted:#b0b5da;--pv-card:#1a1f4b;--pv-border:#2b3270;--pv-ink:var(--pv-ink-dark)}.pv-wrap{width:min(100% - 2 * var(--pv-gutter),var(--pv-width));margin-inline:auto}.pv :is(h1,h2,h3,h4,h5){font-family:var(--font-display),sans-serif;line-height:1.2}.pv-font-serif :is(h1,h2,h3,h4,h5){font-family:Georgia,Times New Roman,serif}.pv-font-inter :is(h1,h2,h3,h4,h5){font-family:var(--font-body),sans-serif}.pv a{color:var(--pv-ink)}.pv-name{margin:0}.pv-headline{margin:0}.pv-headline,.pv-muted{color:var(--pv-muted)}.pv-small{font-size:.875rem}.pv p{margin:0}.pv-empty{text-align:center;padding:30px 0}.pv-section-title{margin:0}.pv-rich p{margin:0 0 8px}.pv-rich p:last-child{margin-bottom:0}.pv-rich :is(h3,h4,h5){margin:10px 0 6px}.pv-rich ol,.pv-rich ul{margin:0 0 8px;padding-left:20px}.pv-avatar{flex:none;display:grid;place-items:center;font-family:var(--font-display),sans-serif;font-weight:700;color:#fff;background:var(--pv-solid)}.pv-photo{object-fit:cover;padding:0;background:var(--pv-card)}.pv-chips{gap:6px;margin:0;padding:0;list-style:none}.pv-chips,.pv-links{display:flex;flex-wrap:wrap}.pv-links{gap:4px 14px;font-size:.9rem;font-weight:600}.pv-contact{margin:0;padding:0;list-style:none}.pv-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:8px;gap:8px}.pv-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--pv-border)}.pv-button{justify-self:start;display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:10px;background:var(--pv-solid);color:#fff;font-weight:600;text-decoration:none;transition:filter .15s}.pv .pv-button{color:#fff}.pv-button:hover{filter:brightness(1.1)}.pv-badge{text-align:center;font-size:.75rem;color:var(--pv-muted)}.pv-page{--pv-gutter:clamp(20px,5vw,40px);min-height:100vh;border-radius:0;box-shadow:none;padding-bottom:32px}.pv-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;border-top:1px solid var(--pv-border);font-size:.85rem;color:var(--pv-muted)}.pv-footer-links{display:flex;gap:16px}.pv .pv-footer a{color:var(--pv-muted)}.pv .pv-footer a:hover{color:var(--pv-ink)}body:has(.pv-page){background:var(--page-bg,#ffffff)}body:has(.pv-page.pv-minimal){--page-bg:#fcfcfa}body:has(.pv-page.pv-bold){--page-bg:#f7f7fc}body:has(.pv-page.pv-developer){--page-bg:#f6f7fb}body:has(.pv-page.pv-mode-dark){--page-bg:#121638}body:has(.pv-page.pv-minimal.pv-mode-dark){--page-bg:#11143a}body:has(.pv-page.pv-developer.pv-mode-dark){--page-bg:#0b1129}@media (prefers-reduced-motion:reduce){.pv *,.pv :after,.pv :before{transition:none!important;animation:none!important}}.pv-aurora{--pv-width:1080px;--pv-bg:#f6f5fd;--pv-text:#18193a;--pv-muted:#585b7f;--pv-card:rgb(255 255 255/72%);--pv-border:rgb(24 25 58/9%);--au-glass:rgb(255 255 255/70%);--au-glass-border:rgb(255 255 255/85%);--au-shadow:0 1px 2px rgb(30 30 80/6%),0 18px 48px rgb(60 40 160/10%);position:relative;isolation:isolate;gap:clamp(28px,5cqi,44px);padding-bottom:28px}.pv-aurora.pv-mode-dark{--pv-bg:#0f1133;--pv-text:#eff0ff;--pv-muted:#b4b7dc;--pv-card:rgb(32 36 90/62%);--pv-border:rgb(255 255 255/10%);--au-glass:rgb(26 30 78/62%);--au-glass-border:rgb(255 255 255/12%);--au-shadow:0 1px 2px rgb(0 0 0/30%),0 18px 48px rgb(0 0 0/35%)}.au-sky{position:absolute;inset:0 0 auto;height:clamp(420px,70cqi,760px);z-index:-1;pointer-events:none;background:radial-gradient(40% 55% at 18% 20%,color-mix(in srgb,var(--pv-accent) 55%,transparent),transparent 70%),radial-gradient(35% 50% at 82% 12%,rgb(255 150 190/55%),transparent 70%),radial-gradient(45% 50% at 60% 70%,rgb(110 200 255/45%),transparent 72%),radial-gradient(30% 40% at 10% 85%,rgb(255 205 120/40%),transparent 70%);filter:blur(18px);-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}.pv-aurora.pv-mode-dark .au-sky{opacity:.75}.au-card{border:1px solid var(--au-glass-border);border-radius:22px;background:var(--au-glass);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);box-shadow:var(--au-shadow)}.au-hero{display:grid;grid-gap:18px;gap:18px;padding-top:clamp(32px,8cqi,88px)}.au-profile{display:grid;justify-items:center;grid-gap:8px;gap:8px;padding:clamp(24px,5cqi,44px) clamp(18px,4cqi,40px);text-align:center}.au-avatar{width:104px;height:104px;margin-bottom:8px;border-radius:50%;font-size:2.6rem;box-shadow:0 0 0 4px var(--pv-bg),0 0 0 7px color-mix(in srgb,var(--pv-accent) 55%,transparent)}.au-name{font-size:clamp(2rem,6.5cqi,3.4rem);letter-spacing:-.03em}.au-headline{max-width:46ch;font-size:clamp(1.02rem,2.4cqi,1.2rem);color:var(--pv-text)}.au-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px}.au-actions .pv-button{border-radius:999px}.au-ghost{display:inline-flex;align-items:center;padding:10px 18px;border:1.5px solid var(--pv-border);border-radius:999px;background:var(--pv-card);font-weight:600;text-decoration:none}.pv-aurora .au-ghost{color:var(--pv-text)}.pv-aurora .au-ghost:hover{border-color:var(--pv-accent)}.au-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:18px 0 0}.au-stats div{display:grid;min-width:92px;padding:10px 16px;border-radius:16px;background:var(--pv-card);border:1px solid var(--pv-border)}.au-stats dd{order:-1;margin:0;font-family:var(--font-display),sans-serif;font-size:1.5rem;font-weight:700;color:var(--pv-ink);line-height:1.2}.au-stats dt{font-size:.8rem;color:var(--pv-muted)}.au-bio{padding:clamp(20px,4cqi,32px);font-size:1.05rem;line-height:1.7}.au-grid{display:grid;grid-gap:18px;gap:18px}@container (min-width: 720px){.au-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.au-panel[data-wide=true]{grid-column:1/-1}}.au-panel{display:grid;grid-gap:16px;gap:16px;align-content:start;padding:clamp(20px,4cqi,30px)}.au-title{display:flex;align-items:center;gap:10px;font-size:1.25rem}.au-title:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--pv-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--pv-accent) 22%,transparent)}.au-item{margin:0;font-size:1.08rem}.au-when{display:inline-block;font-size:.8rem;font-weight:600;color:var(--pv-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.au-org{margin:2px 0 6px}.au-small-label{margin-bottom:8px;font-size:.82rem;font-weight:600;color:var(--pv-muted)}.au-skill-groups{display:grid;grid-gap:14px;gap:14px}.au-chips li{padding:5px 12px;border-radius:999px;background:color-mix(in srgb,var(--pv-accent) 12%,var(--pv-card));border:1px solid color-mix(in srgb,var(--pv-accent) 22%,transparent);font-size:.88rem}.au-chips-small li{padding:3px 10px;font-size:.8rem}.au-projects{display:grid;grid-gap:16px;gap:16px}@container (min-width: 720px){.au-projects{grid-template-columns:repeat(2,minmax(0,1fr))}}.au-project{display:grid;align-content:start;overflow:clip;border-radius:16px;background:var(--pv-card);border:1px solid var(--pv-border)}.au-project-image img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}.au-project-body{display:grid;grid-gap:8px;gap:8px;padding:16px 18px 18px}.au-jobs{display:grid;grid-gap:14px;gap:14px}@container (min-width: 720px){.au-jobs{grid-template-columns:repeat(2,minmax(0,1fr))}}.au-job{display:grid;align-content:start;grid-gap:2px;gap:2px;padding:16px 18px;border-radius:16px;background:var(--pv-card);border:1px solid var(--pv-border)}.au-list{display:grid;grid-gap:16px;gap:16px;margin:0;padding:0;list-style:none}.au-list li{display:grid;grid-gap:2px;gap:2px}.au-contact-band{display:grid;justify-items:center;grid-gap:10px;gap:10px;padding:clamp(28px,6cqi,52px) clamp(18px,4cqi,40px);border-radius:24px;text-align:center;color:#ffffff;background:radial-gradient(60% 120% at 0 0,rgb(255 255 255/18%),transparent 60%),linear-gradient(135deg,var(--pv-solid),color-mix(in srgb,var(--pv-solid) 55%,#1b1f5c))}.au-contact-band .pv-section-title{font-size:clamp(1.6rem,5cqi,2.4rem)}.au-contact-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px}.au-contact-list li{padding:8px 14px;border-radius:999px;background:rgb(255 255 255/16%);border:1px solid rgb(255 255 255/30%)}.pv-aurora .au-contact-list a{color:#ffffff;font-weight:600;text-decoration:none}.au-foot{margin-top:8px}.pv-bold{--pv-width:1040px;--pv-bg:#f7f7fc;--pv-card:#ffffff;--pv-border:#e4e5f1;--bd-band:linear-gradient(135deg,var(--pv-solid) 0%,color-mix(in srgb,var(--pv-solid) 55%,#0e1238) 100%)}.pv-bold.pv-mode-dark{--pv-bg:#0f1336;--pv-card:#181d4a;--pv-border:#2a3070}.bd-contact,.bd-hero{position:relative;isolation:isolate;overflow:clip;color:#fff;background:var(--bd-band)}.bd-contact:before,.bd-hero:after,.bd-hero:before{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.bd-hero:before{width:70cqi;aspect-ratio:1;top:-30cqi;right:-18cqi;background:radial-gradient(closest-side,rgb(255 255 255/22%),transparent)}.bd-hero:after{width:50cqi;aspect-ratio:1;bottom:-28cqi;left:-12cqi;background:radial-gradient(closest-side,color-mix(in srgb,var(--pv-accent) 70%,#fff 30%),transparent);opacity:.45}.bd-hero{padding-block:clamp(40px,10cqi,120px) clamp(48px,11cqi,132px)}.bd-hero-inner{display:grid;grid-gap:28px;gap:28px;align-items:center}.bd-avatar{order:-1;width:clamp(112px,26cqi,220px);height:clamp(112px,26cqi,220px);border-radius:50%;font-size:clamp(2.6rem,9cqi,5rem);border:6px solid rgb(255 255 255/28%);background:rgb(255 255 255/16%);box-shadow:0 24px 60px rgb(8 10 40/30%)}@container (min-width: 720px){.bd-hero-inner{grid-template-columns:minmax(0,1fr) auto;gap:48px}.bd-avatar{order:0}}.bd-kicker{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.88}.pv-bold .pv-name{margin-top:8px;font-size:clamp(2.4rem,9.5cqi,5.2rem);font-weight:800;letter-spacing:-.045em;line-height:.98}.pv-bold .bd-hero .pv-headline{max-width:34ch;margin-top:16px;font-size:clamp(1.1rem,2.8cqi,1.45rem);line-height:1.45;color:rgb(255 255 255/90%)}.bd-location{margin-top:8px;color:rgb(255 255 255/80%)}.bd-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.pv-bold .pv-button.bd-btn-light{background:#fff;color:var(--pv-solid);box-shadow:0 10px 30px rgb(8 10 40/22%)}.pv-bold .bd-btn-ghost{display:inline-flex;align-items:center;padding:10px 18px;border:1.5px solid rgb(255 255 255/65%);border-radius:10px;color:#fff;font-weight:600;text-decoration:none;transition:background .15s}.pv-bold .bd-btn-ghost:hover{background:rgb(255 255 255/14%)}.bd-nav{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--pv-bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--pv-border)}.bd-nav ul{display:flex;gap:22px;margin-block:0;padding:14px 0;list-style:none;overflow-x:auto;scrollbar-width:none}.pv-bold .bd-nav a{color:var(--pv-muted);font-size:.92rem;font-weight:600;text-decoration:none;white-space:nowrap}.pv-bold .bd-nav a:hover{color:var(--pv-ink)}.bd-intro{padding-top:clamp(40px,8cqi,80px);font-size:clamp(1.15rem,2.7cqi,1.5rem);font-weight:500;line-height:1.55}.bd-intro .pv-rich{max-width:38em}.bd-section{display:grid;grid-gap:24px;gap:24px;padding-top:clamp(40px,8cqi,80px);scroll-margin-top:56px}.pv-bold .pv-section-title{display:flex;align-items:baseline;gap:14px;font-size:clamp(1.7rem,5cqi,2.6rem);font-weight:800;letter-spacing:-.035em}.bd-num{font-size:.95rem;font-weight:700;letter-spacing:.04em;color:var(--pv-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pv-bold .pv-chips li{padding:4px 12px;border-radius:999px;font-size:.82rem;font-weight:600;background:color-mix(in srgb,var(--pv-accent) 12%,var(--pv-card))}.bd-skill-groups{display:grid;grid-gap:24px;gap:24px}@container (min-width: 700px){.bd-skill-groups{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}.bd-label{margin-bottom:10px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pv-muted)}.pv-bold .bd-pills li{padding:8px 16px;font-size:.95rem;background:var(--pv-card);border:1px solid var(--pv-border)}.bd-cards,.bd-projects{display:grid;grid-gap:18px;gap:18px}@container (min-width: 700px){.bd-cards,.bd-projects{grid-template-columns:repeat(2,minmax(0,1fr))}}.bd-card,.bd-project{background:var(--pv-card);border:1px solid var(--pv-border);border-radius:20px;box-shadow:0 1px 2px rgb(20 22 60/5%)}.bd-project{display:grid;align-content:start;overflow:clip;transition:transform .2s,box-shadow .2s}.bd-project:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgb(20 22 60/12%)}.pv-bold .bd-shots{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.pv-bold .bd-shots img{aspect-ratio:1;border:0;border-radius:0}.pv-bold .bd-shots img:first-child{grid-column:1/-1;aspect-ratio:16/9}.bd-project-body{display:grid;grid-gap:10px;gap:10px;padding:20px 22px 22px}.bd-card :is(h3,h4),.bd-project-body :is(h3,h4){margin:0;font-size:1.2rem;font-weight:700}.bd-card{display:grid;align-content:start;grid-gap:8px;gap:8px;padding:22px}.bd-date{justify-self:start;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;background:color-mix(in srgb,var(--pv-accent) 12%,var(--pv-card))}.bd-org{color:var(--pv-ink);font-weight:600}.bd-contact{margin-top:clamp(56px,10cqi,112px);padding-block:clamp(52px,10cqi,104px);text-align:center;scroll-margin-top:56px}.bd-contact:before{width:80cqi;aspect-ratio:1;top:-50cqi;left:10cqi;background:radial-gradient(closest-side,rgb(255 255 255/18%),transparent)}.pv-bold .bd-contact .pv-section-title{justify-content:center;margin-top:10px;font-size:clamp(2rem,7cqi,3.6rem)}.bd-contact-list{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px}.pv-bold .bd-contact-list :is(a,span){display:inline-block;padding:10px 18px;border-radius:999px;font-weight:600;text-decoration:none}.pv-bold .bd-contact-list a{background:#fff;color:var(--pv-solid)}.pv-bold .bd-contact-list span{background:rgb(255 255 255/16%);color:#fff}.bd-foot{padding-top:40px}.pv-developer{--pv-width:1080px;--pv-bg:#f6f7fb;--pv-text:#1a2040;--pv-muted:#525a7d;--pv-card:#ffffff;--pv-border:#dfe2ee;--dv-mono:ui-monospace,"SFMono-Regular","Cascadia Code",Menlo,Consolas,monospace;--dv-code-bg:#0f1733;--dv-code-bar:#16204a;--dv-code-line:#223061;--dv-code-text:#dbe4ff;--dv-code-dim:#8f9bc9}.pv-developer.pv-mode-dark{--pv-bg:#0b1129;--pv-text:#e3e8ff;--pv-muted:#9aa4cf;--pv-card:#111a3a;--pv-border:#1f2b57}.pv.pv-developer :is(h1,h2,h3,h4,h5){font-family:var(--dv-mono)}.dv-layout{display:grid;grid-gap:32px;gap:32px;padding-top:clamp(28px,6cqi,72px)}@container (min-width: 760px){.dv-layout{grid-template-columns:250px minmax(0,1fr);gap:56px}.dv-side{position:-webkit-sticky;position:sticky;top:32px;align-self:start}}.dv-side{display:grid;grid-gap:8px;gap:8px;align-content:start;justify-items:start}.dv-avatar{width:88px;height:88px;margin-bottom:10px;border-radius:18px;font-family:var(--dv-mono);font-size:2rem;box-shadow:0 0 0 4px color-mix(in srgb,var(--pv-accent) 25%,transparent)}.pv-developer .pv-name{font-size:clamp(1.5rem,4.5cqi,2rem);font-weight:700;letter-spacing:-.02em}.pv-developer .pv-name:before{content:"~/"/"";color:var(--pv-ink)}.pv-developer .pv-headline{font-size:.98rem}.dv-meta{font-family:var(--dv-mono);font-size:.82rem;color:var(--pv-muted)}.dv-contact-wrap{width:100%;margin-top:12px;padding-top:14px;border-top:1px dashed var(--pv-border)}.dv-contact{display:grid;grid-gap:6px;gap:6px;font-family:var(--dv-mono);font-size:.84rem}.dv-contact li{display:flex;gap:10px;min-width:0}.dv-contact .pv-contact-label{min-width:4.8rem;color:var(--pv-muted);text-transform:lowercase}.dv-contact .pv-contact-label:after{content:":"/""}.pv-developer .pv-button{margin-top:14px;padding:9px 14px;border-radius:8px;font-family:var(--dv-mono);font-size:.85rem}.dv-main{container-type:inline-size;display:grid;align-content:start;grid-gap:44px;gap:44px;min-width:0}.dv-terminal{overflow:clip;border:1px solid var(--dv-code-line);border-radius:12px;background:var(--dv-code-bg);color:var(--dv-code-text);box-shadow:0 22px 50px rgb(10 14 40/18%)}.dv-bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:var(--dv-code-bar);border-bottom:1px solid var(--dv-code-line);font-family:var(--dv-mono);font-size:.75rem;color:var(--dv-code-dim)}.dv-bar i{width:11px;height:11px;border-radius:50%;background:#ff5f57}.dv-bar i:nth-child(2){background:#febc2e}.dv-bar i:nth-child(3){background:#28c840}.dv-bar span{margin-left:8px}.dv-term{display:grid;grid-gap:10px;gap:10px;padding:18px 20px 20px;font-size:1rem;line-height:1.75}.dv-terminal a{color:var(--pv-ink-dark)}.dv-cmd{font-family:var(--dv-mono);font-size:.85rem;color:var(--dv-code-dim)}.dv-prompt{color:var(--pv-ink-dark)}.dv-caret{width:9px;height:1.1em;background:var(--pv-ink-dark);animation:dv-blink 1.1s steps(1) infinite}@keyframes dv-blink{50%{opacity:0}}.dv-section{display:grid;grid-gap:18px;gap:18px;scroll-margin-top:24px}.pv-developer .pv-section-title{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:700;text-transform:lowercase}.pv-developer .pv-section-title:after{content:"";flex:1 1;height:1px;background:var(--pv-border)}.dv-hash{color:var(--pv-ink)}.dv-code{display:grid;grid-gap:4px;gap:4px;padding:18px 20px;overflow-x:auto;border:1px solid var(--dv-code-line);border-radius:12px;background:var(--dv-code-bg);color:var(--dv-code-text);font-family:var(--dv-mono);font-size:.88rem;line-height:1.9}.dv-skill{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px}.dv-skill-name{color:var(--pv-ink-dark)}.dv-kw{color:#c792ea}.dv-punct{color:var(--dv-code-dim)}.dv-strings{display:inline-flex;flex-wrap:wrap;gap:0 6px;margin:0;padding:0;list-style:none}.dv-strings li{color:#c3e88d}.dv-strings li:before{content:'"'/""}.dv-strings li:after{content:'",'/"";color:var(--dv-code-dim)}.dv-strings li:last-child:after{content:'"'/""}.dv-repos{display:grid;grid-gap:14px;gap:14px}@container (min-width: 620px){.dv-repos{grid-template-columns:repeat(2,minmax(0,1fr))}}.dv-repo{display:grid;align-content:start;grid-gap:10px;gap:10px;padding:18px;border:1px solid var(--pv-border);border-radius:12px;background:var(--pv-card);transition:border-color .15s}.dv-repo:hover{border-color:color-mix(in srgb,var(--pv-accent) 60%,var(--pv-border))}.dv-repo-head{display:flex;align-items:baseline;gap:8px}.dv-repo-head:before{content:"▹"/"";color:var(--pv-muted)}.dv-repo-head :is(h3,h4){margin:0;font-size:1rem;color:var(--pv-ink)}.dv-tags{display:flex;flex-wrap:wrap;gap:2px 12px;margin:0;padding:0;list-style:none;font-family:var(--dv-mono);font-size:.8rem;color:var(--pv-muted)}.dv-tags li:before{content:"#"/"";color:var(--pv-ink)}.pv-developer .pv-links{font-family:var(--dv-mono);font-size:.82rem}.dv-log{margin:0;padding:0;list-style:none}.dv-commit{position:relative;display:grid;grid-gap:4px;gap:4px;margin-left:6px;padding:0 0 28px 26px;border-left:2px solid var(--pv-border)}.dv-commit:last-child{padding-bottom:0;border-left-color:transparent}.dv-commit:before{content:"";position:absolute;left:-8px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--pv-bg);border:3px solid var(--pv-accent)}.dv-when{font-family:var(--dv-mono);font-size:.8rem;color:var(--pv-ink)}.dv-commit :is(h3,h4){margin:0;font-size:1rem}.dv-at{font-weight:500}.dv-at,.dv-where{color:var(--pv-muted)}.dv-where{font-size:.92rem}.dv-foot{padding-top:48px}.pv-executive{--pv-width:1080px;--pv-bg:#fdfcfa;--pv-text:#1c2033;--pv-muted:#5f6378;--pv-card:#f4f2ed;--pv-border:#e4e1d9;padding-bottom:28px}.pv-executive.pv-mode-dark{--pv-bg:#141a33;--pv-text:#eceef8;--pv-muted:#aeb3cc;--pv-card:#1c2343;--pv-border:#2d3560}.pv-executive.pv-font-outfit :is(h1,h2,h3,h4,h5){font-family:Georgia,Times New Roman,serif}.xc-rule{height:6px;background:var(--pv-solid)}.xc-layout{display:grid;grid-gap:36px;gap:36px;padding-top:clamp(28px,5cqi,56px)}@container (min-width: 760px){.xc-layout{grid-template-columns:290px minmax(0,1fr);gap:clamp(36px,5cqi,64px);align-items:start}}.xc-side{display:grid;grid-gap:26px;gap:26px;align-content:start}@container (min-width: 760px){.xc-side{padding-right:clamp(24px,3cqi,40px);border-right:1px solid var(--pv-border)}}.xc-avatar{width:120px;height:120px;border-radius:18px;font-size:2.8rem}.xc-id{display:grid;grid-gap:6px;gap:6px}.xc-name{font-size:clamp(1.9rem,5cqi,2.4rem);letter-spacing:-.01em}.xc-headline{font-size:1.05rem;font-weight:500;color:var(--pv-ink)}.xc-label{margin-bottom:14px;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--pv-muted)}.pv-executive .xc-label,.xc-label{font-family:var(--font-body),sans-serif}.xc-side-block .xc-label{padding-bottom:8px;border-bottom:1px solid var(--pv-border)}.xc-contact{grid-gap:10px;gap:10px;font-size:.95rem}.xc-contact,.xc-contact li{display:grid}.xc-contact .pv-contact-label{font-size:.78rem;color:var(--pv-muted)}.xc-skill-groups{display:grid;grid-gap:16px;gap:16px}.xc-skill-group{margin-bottom:6px;font-weight:600}.xc-skills{display:grid;grid-gap:4px;gap:4px;margin:0;padding:0;list-style:none;font-size:.95rem}.xc-skills li{display:flex;justify-content:space-between;gap:12px}.xc-level{flex:none;font-size:.78rem;color:var(--pv-muted)}.xc-level[data-level=advanced],.xc-level[data-level=expert]{color:var(--pv-ink);font-weight:600}.xc-edu{display:grid;grid-gap:14px;gap:14px;margin:0;padding:0;list-style:none}.xc-edu li{display:grid;grid-gap:2px;gap:2px}.xc-resume{width:100%;justify-content:center}.xc-main{display:grid;grid-gap:clamp(32px,5cqi,48px);gap:clamp(32px,5cqi,48px);align-content:start}.xc-summary{font-size:1.08rem;line-height:1.7}.xc-entry-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px}.xc-entry-title{margin:0;font-size:1.15rem}.xc-date{font-size:.85rem;color:var(--pv-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.xc-org{margin:2px 0 6px;font-weight:500}.xc-timeline{display:grid;grid-gap:26px;gap:26px;margin:0;padding:0 0 0 26px;list-style:none;border-left:2px solid var(--pv-border)}.xc-timeline>li{position:relative}.xc-timeline>li:before{content:"";position:absolute;left:-33px;top:7px;width:12px;height:12px;border-radius:50%;background:var(--pv-bg);border:2.5px solid var(--pv-accent)}.xc-timeline>li:first-child:before{background:var(--pv-accent)}.xc-projects{display:grid;grid-gap:24px;gap:24px}.xc-project{display:grid;grid-gap:16px;gap:16px}@container (min-width: 900px){.xc-project:has(.xc-project-image){grid-template-columns:200px minmax(0,1fr)}}.xc-project-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--pv-border)}.xc-certs{display:grid;grid-gap:16px;gap:16px;margin:0;padding:0;list-style:none}.xc-foot{margin-top:40px}@media print{.pv-executive{--pv-bg:#ffffff;--pv-text:#1c2033;--pv-muted:#4f5366;box-shadow:none;border-radius:0}.pv-executive .pv-gallery,.pv-executive .xc-foot,.pv-executive .xc-project-image,.pv-executive .xc-resume{display:none}.pv-executive .xc-layout{grid-template-columns:220px minmax(0,1fr);padding-top:16px}.pv-executive .xc-project,.pv-executive .xc-timeline>li{page-break-inside:avoid;break-inside:avoid}}.pv-minimal{--pv-width:760px;--pv-bg:#fcfcfa;--pv-text:#17181f;--pv-muted:#5b5e6e;--pv-card:#f3f2ee;--pv-border:#e5e4de}.pv-minimal.pv-mode-dark{--pv-bg:#11143a;--pv-text:#ecedf8;--pv-muted:#a9adcf;--pv-card:#191d4a;--pv-border:#272c60}.pv-minimal a{text-decoration-thickness:1px;text-underline-offset:3px}.mn-hero{display:grid;justify-items:start;grid-gap:8px;gap:8px;padding-block:clamp(32px,9cqi,104px) clamp(24px,5cqi,48px)}.mn-avatar{width:72px;height:72px;margin-bottom:14px;border-radius:50%;font-size:1.8rem}.pv-minimal .pv-name{font-size:clamp(2rem,7cqi,3.5rem);font-weight:600;letter-spacing:-.035em;line-height:1.05}.pv-minimal .pv-headline{font-size:clamp(1.05rem,2.6cqi,1.3rem);color:var(--pv-text);opacity:.82}.mn-bio{max-width:62ch;margin-top:18px;font-size:1.05rem;line-height:1.75;color:var(--pv-muted)}.mn-section{display:grid;grid-gap:14px;gap:14px;padding-block:30px;border-top:1px solid var(--pv-border)}.pv-minimal .pv-section-title{font-family:var(--font-body),sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pv-muted)}@container (min-width: 620px){.mn-section{grid-template-columns:9.5rem minmax(0,1fr);gap:2rem}.pv-minimal .pv-section-title{padding-top:4px}}.mn-list{display:grid;grid-gap:28px;gap:28px}.mn-item{display:grid;grid-gap:6px;gap:6px}.mn-item-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px}.mn-item-head :is(h3,h4){margin:0;font-size:1.06rem;font-weight:600}.mn-at{font-weight:400;color:var(--pv-muted)}.mn-date{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mn-item .pv-gallery{margin-block:6px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.mn-item .pv-gallery img{border-radius:6px}.mn-tags{color:var(--pv-muted)}.mn-skills{display:grid;grid-gap:12px;gap:12px;margin:0}.mn-skills div{display:grid;grid-gap:2px;gap:2px}.mn-skills dt{font-weight:600}.mn-skills dd{margin:0;color:var(--pv-muted)}@container (min-width: 620px){.mn-skills div{grid-template-columns:9rem minmax(0,1fr);gap:16px}}.mn-contact{display:grid;grid-gap:8px;gap:8px}.mn-contact li{display:grid;grid-template-columns:6.5rem minmax(0,1fr);grid-gap:12px;gap:12px}.mn-contact .pv-contact-label{color:var(--pv-muted);font-size:.9rem}.pv-minimal .pv-button.mn-button{background:transparent;color:var(--pv-text);border:1.5px solid var(--pv-text);border-radius:999px;padding:9px 20px}.pv-minimal .pv-button.mn-button:hover{filter:none;background:var(--pv-text);color:var(--pv-bg)}.mn-foot{padding-top:32px}.pv-studio{--pv-width:1120px;--pv-bg:#faf8f4;--pv-text:#1b1a24;--pv-muted:#66636f;--pv-card:#f1eee8;--pv-border:#e3dfd6;gap:clamp(48px,9cqi,112px);padding-bottom:32px}.pv-studio.pv-mode-dark{--pv-bg:#13132a;--pv-text:#f2f0ea;--pv-muted:#b4b1c4;--pv-card:#1c1c3a;--pv-border:#2e2d52}.sd-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:clamp(20px,4cqi,36px)}.sd-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--pv-text);font-family:var(--font-display),sans-serif;font-weight:700}.sd-nav{display:flex;flex-wrap:wrap;gap:4px 22px;margin:0;padding:0;list-style:none;font-size:.9rem}.pv-studio .sd-nav a{color:var(--pv-text);text-decoration:none;background:linear-gradient(var(--pv-accent),var(--pv-accent)) 0 100% /0 2px no-repeat;transition:background-size .25s}.pv-studio .sd-nav a:focus-visible,.pv-studio .sd-nav a:hover{background-size:100% 2px}.sd-hero{display:grid;grid-gap:clamp(20px,4cqi,36px);gap:clamp(20px,4cqi,36px);margin-top:calc(-1 * clamp(24px, 5cqi, 64px))}.sd-name{font-size:clamp(2.8rem,13cqi,9.5rem);font-weight:700;line-height:.95;letter-spacing:-.045em}.sd-dot{color:var(--pv-accent)}.sd-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px}.sd-avatar{width:72px;height:72px;border-radius:50%;font-size:1.8rem}.sd-headline{font-size:clamp(1.1rem,2.6cqi,1.45rem);font-weight:500}.sd-pill{display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:10px 18px;border:1.5px solid var(--pv-text);border-radius:999px;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s}.pv-studio .sd-pill{color:var(--pv-text)}.pv-studio .sd-pill:hover{background:var(--pv-text);color:var(--pv-bg)}.sd-bio{max-width:62ch;font-size:clamp(1.05rem,2.2cqi,1.25rem);line-height:1.65}.sd-label{font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pv-muted)}.pv-studio .sd-label,.sd-label{font-family:var(--font-body),sans-serif}.sd-work{display:grid;grid-gap:28px;gap:28px}.sd-cases{display:grid;grid-gap:clamp(48px,9cqi,104px);gap:clamp(48px,9cqi,104px)}.sd-case{display:grid;grid-gap:24px;gap:24px;align-items:center}.sd-case-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:var(--pv-card)}.sd-case-body{display:grid;grid-gap:10px;gap:10px;align-content:start}.sd-case-num{font-family:var(--font-display),sans-serif;font-size:.95rem;font-weight:600;color:var(--pv-accent)}.sd-case-title{margin:0;font-size:clamp(1.6rem,4.6cqi,2.6rem);letter-spacing:-.03em}.sd-case-summary{font-size:1.08rem}.sd-tags{color:var(--pv-muted)}@container (min-width: 720px){.sd-case[data-has-image=true]{grid-template-columns:1.25fr 1fr;gap:clamp(32px,6cqi,72px)}.sd-case[data-has-image=true]:nth-child(2n) .sd-case-image{order:2}}.sd-index{display:grid;grid-gap:18px;gap:18px;padding-top:20px;border-top:1px solid var(--pv-border)}@container (min-width: 720px){.sd-index{grid-template-columns:220px minmax(0,1fr);gap:40px}}.sd-rows{display:grid;grid-gap:26px;gap:26px;margin:0;padding:0;list-style:none}.sd-rows>li{display:grid;grid-gap:4px;gap:4px}@container (min-width: 560px){.sd-rows>li{grid-template-columns:160px minmax(0,1fr);gap:24px}}.sd-when{font-size:.85rem;color:var(--pv-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-top:3px}.sd-row-title{margin:0 0 4px;font-size:1.12rem}.sd-rows .pv-rich{margin-top:6px}.sd-skills{display:grid;grid-gap:16px;gap:16px;margin:0}.sd-skills div{display:grid;grid-gap:2px;gap:2px}.sd-skills dt{font-weight:600}.sd-skills dd{margin:0;color:var(--pv-muted);font-size:1.05rem}.sd-contact{display:grid;grid-gap:16px;gap:16px;padding-top:clamp(32px,6cqi,64px);border-top:1px solid var(--pv-border)}.sd-say{font-size:clamp(2.4rem,10cqi,6.5rem);letter-spacing:-.045em;line-height:1}.sd-email{justify-self:start;font-family:var(--font-display),sans-serif;font-size:clamp(1.2rem,4cqi,2.2rem);font-weight:600;text-decoration-thickness:2px;text-underline-offset:6px}.sd-contact-list{display:flex;flex-wrap:wrap;gap:6px 22px;font-weight:600}.sd-foot{margin-top:-24px}