@charset "UTF-8";:root{--bg:#fafaf9;--surface:transparent;--text:#44403b;--head:#292524;--strong:#1c1917;--muted:#79716b;--faint:#a6a09b;--line:#e7e5e4;--bullet:#d6d3d1;--link-hover:#57534d;--btn:#292524;--btn-hover:#44403b;--btn-text:#ffffff;--top-h:5.5rem;--fs:1rem;color-scheme:light}:root[data-theme=dark]{--bg:#1c1917;--text:#d6d3d1;--head:#f5f5f4;--strong:#fafaf9;--muted:#a6a09b;--faint:#79716b;--line:#44403b;--bullet:#57534d;--link-hover:#d6d3d1;--btn:#f5f5f4;--btn-hover:#d6d3d1;--btn-text:#1c1917;color-scheme:dark}:root[data-font=sans] body.d4{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:root[data-size=s]{--fs:0.875rem}:root[data-size=l]{--fs:1.125rem}:root[data-size=xl]{--fs:1.25rem}::view-transition-new(root),::view-transition-old(root){animation-duration:.45s;animation-timing-function:ease}:root.is-fading *,:root.is-fading :after,:root.is-fading :before{transition:background-color.45s,color.45s,border-color.45s,fill.45s,stroke.45s,text-decoration-color.45s!important}.d4-top__row{grid-template-columns:auto 1fr auto;grid-template-areas:"name pages switches";align-items:center;gap:.5rem 1rem;display:grid}.d4-top__name{grid-area:name}.d4-pages{grid-area:pages}.d4-switches{grid-area:switches}.d4-pages{border-left:1px solid var(--line);align-items:center;gap:.25rem;min-width:0;padding-left:1rem;display:flex}.d4-pages a{color:var(--faint);white-space:nowrap;border-radius:999px;padding:.2rem .75rem;text-decoration:none;transition:color.15s,background-color.15s}.d4-pages a:hover{color:var(--head);background:color-mix(in srgb,var(--head) 6%,transparent)}.d4-pages a[aria-current=page]{color:var(--strong);background:color-mix(in srgb,var(--head) 8%,transparent);font-weight:500}.d4-pages a:focus-visible{outline:2px solid var(--head);outline-offset:2px}@media (max-width:52rem){.d4-top__row{grid-template-columns:1fr auto;grid-template-areas:"name switches" "pages pages"}.d4-pages{border-left:0;margin-left:-.75rem;padding-left:0}}@media (max-width:30rem){.d4-top__name{white-space:normal;line-height:1.3}.d4-top__name span{font-size:.875em;display:block}}.d4-size{background:color-mix(in srgb,var(--head) 6%,transparent);border-radius:999px;align-items:center;height:2.25rem;margin-right:.125rem;display:flex}.d4-size__btn{color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:none;border:0;border-radius:50%;align-items:center;justify-items:center;width:2.25rem;height:2.25rem;padding:0;font-family:Fraunces,Literata,Georgia,serif;transition:color.3s,background-color.3s,transform.3s;display:grid}:root[data-font=sans] .d4-size__btn{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.d4-size__btn:hover:not(:disabled){color:var(--head);background:color-mix(in srgb,var(--head) 7%,transparent)}.d4-size__btn:active:not(:disabled){transform:scale(.92)}.d4-size__btn:disabled{opacity:.35;cursor:default}.d4-size__btn:focus-visible{outline:2px solid var(--head);outline-offset:2px}.d4-size__glyph{font-weight:500;line-height:1}.d4-size__glyph--small{font-size:.75rem}.d4-size__glyph--large{font-size:1.1rem}.d4-size__dots{gap:3px;display:flex}.d4-size__dots i{background:var(--bullet);border-radius:50%;width:4px;height:4px;transition:background-color.3s}.d4-size__dots i.is-on{background:var(--muted)}.d4-switches{flex:none;gap:.375rem;display:flex}.d4-switch{color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:none;border:0;border-radius:50%;width:2.25rem;height:2.25rem;padding:0;transition:color.3s;position:relative}.d4-switch:hover{color:var(--head)}.d4-switch:focus-visible{outline:2px solid var(--head);outline-offset:2px}.d4-lang{align-items:center;justify-items:center;margin-left:.25rem;text-decoration:none;display:grid}.d4-lang:before{content:"";border-left:1px solid var(--line);position:absolute;left:-.3125rem;top:25%;bottom:25%}.d4-lang__code{letter-spacing:.04em;font-size:.75rem;font-weight:600;line-height:1;position:relative}@media (max-width:24rem){.d4-top__row{column-gap:.625rem}.d4-switches{gap:.25rem}.d4-size{height:2rem}.d4-size__btn,.d4-switch{width:2rem;height:2rem}.d4-size__dots{display:none}}.d4-switch__indicator{background:color-mix(in srgb,var(--head) 6%,transparent);border-radius:50%;transition:transform.3s,background-color.3s;position:absolute;top:0;right:0;bottom:0;left:0}.d4-switch:hover .d4-switch__indicator{background:color-mix(in srgb,var(--head) 11%,transparent);transform:scale(1.08)}.d4-switch:active .d4-switch__indicator{transform:scale(.92)}.d4-switch__states{align-items:center;justify-content:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.d4-switch__state{align-items:center;justify-content:center;transition:opacity.3s,transform.3s;display:flex;position:absolute}.d4-switch__state--a{opacity:1;transform:scale(1) rotate(0)}.d4-switch__state--b{opacity:0;transform:scale(.5) rotate(-90deg)}:root[data-font=sans] .d4-switch--font .d4-switch__state--a,:root[data-theme=dark] .d4-switch--theme .d4-switch__state--a{opacity:0;transform:scale(.5) rotate(90deg)}:root[data-font=sans] .d4-switch--font .d4-switch__state--b,:root[data-theme=dark] .d4-switch--theme .d4-switch__state--b{opacity:1;transform:scale(1) rotate(0)}.d4-switch svg{fill:none;stroke:currentcolor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;width:1.15rem;height:1.15rem}.d4-switch__glyph{letter-spacing:-.01em;font-size:.95rem;font-weight:500;line-height:1}.d4-switch__glyph--serif{font-family:Fraunces,Literata,Georgia,serif}.d4-switch__glyph--sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body.d4{color:var(--text);background:var(--bg);margin:0;font-family:Fraunces,Literata,Georgia,Times New Roman,serif;font-size:1rem;line-height:1.75;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto}.d4-page{max-width:64rem;margin:0 auto;padding:0 3rem 3rem;font-size:var(--fs)}.d4-top{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0}.d4-top__inner{flex-direction:column;align-items:stretch;max-width:64rem;margin:0 auto;padding:.75rem 3rem 0;font-size:.9375rem;display:flex}.d4-top__name{color:var(--head);white-space:nowrap;font-weight:500;text-decoration:none}.d4-top__name span{color:var(--faint);font-weight:400}.d4-top__nav{overscroll-behavior-x:contain;scrollbar-width:none;gap:1.25rem;min-width:0;margin:0 -1rem;padding:0 1rem;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,transparent,#000 1rem,#000 calc(100% - 1rem),transparent);mask-image:linear-gradient(90deg,transparent,#000 1rem,#000 calc(100% - 1rem),transparent)}.d4-top__nav::-webkit-scrollbar{display:none}.d4-top__nav a{color:var(--faint);white-space:nowrap;flex:none;padding:.55rem 0 .7rem;text-decoration:none;transition:color.15s;position:relative}.d4-top__nav a:hover{color:var(--head)}.d4-top__nav a.is-active{color:var(--strong);font-weight:500}.d4-top__nav a.is-active:after{content:"";background:var(--strong);height:1px;position:absolute;left:0;right:0;bottom:0}.d4 [id]{scroll-margin-top:calc(var(--top-h) + 1.5rem)}.d4-grid{grid-template-columns:1fr;gap:3rem;margin-top:6rem;display:grid}@media (min-width:48rem){.d4-grid{grid-template-columns:2fr 1fr}.d4-aside{align-self:start;position:sticky;top:calc(var(--top-h) + 2rem)}}@media (max-width:47.99rem){.d4-page{padding:0 1.25rem 2rem}.d4-top__inner{padding:.6rem 1.25rem 0}.d4-top__nav{margin:0 -1.25rem;padding:0 1.25rem}.d4-grid{margin-top:2.5rem}.d4-aside{order:-1}}.d4-main{min-width:0}.d4-prose{max-width:65ch}.d4-prose h1{color:var(--head);margin:0 0 .9em;font-size:1.875em;line-height:1.2;font-weight:500}.d4-prose h2{color:var(--head);margin:2em 0 1em;padding-top:1.25em;font-size:1.5em;line-height:1.333;font-weight:500}.d4-aside h2:first-child{margin-top:0;padding-top:0}.d4-prose h3{color:var(--head);margin:1.6em 0 .6em;padding-top:1.25em;font-size:1.125em;line-height:1.556;font-weight:500}.d4-prose h1 a,.d4-prose h2 a,.d4-prose h3 a{color:inherit;text-decoration:none}.d4-prose p{margin:1.25em 0}.d4-main .story__skills li,.d4-prose p{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.d4-prose a{color:var(--strong);font-weight:500;text-decoration:underline}.d4-prose a:hover{color:var(--link-hover)}.d4-prose strong{color:var(--strong);font-weight:600}.d4-prose ul{margin:1.25em 0;padding-left:1.1em;list-style-position:outside}.d4-prose li{margin:.5em 0;padding-left:.375em}.d4-prose li::marker{content:"▪";color:var(--bullet)}.d4-prose hr{border:0;border-top:1px solid var(--line);margin:2.25em 0}.d4-lead{color:var(--muted);font-size:1.125em;line-height:1.556}.d4-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.d4-prose .d4-btn{color:var(--btn-text);background:var(--btn);border-radius:6px;align-items:center;padding:.5rem 1rem;font-weight:500;line-height:1.5;text-decoration:none;transition:background-color.15s;display:inline-flex}.d4-prose .d4-btn:hover{color:var(--btn-text);background:var(--btn-hover)}.d4-prose blockquote{color:var(--muted);border-left:1px solid var(--line);margin:1.6em 0;padding-left:1em}.d4-prose blockquote p{margin:0}.d4-prose .story__metrics{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1.5em 0 1.75em;padding:0;list-style:none;display:flex}.d4-prose .story__metrics li{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex:0 0 calc((100% - 1.5rem)/3);flex-direction:column;gap:.15rem;margin:0;padding:.9rem 1rem;line-height:1.4;display:flex}.d4-prose .story__metrics li::marker{content:none}.story__metric-value{color:var(--head);white-space:nowrap;font-size:1.4em;font-weight:500}.story__metric-label{color:var(--muted);font-size:.875em}@media (max-width:40rem){.d4-prose .story__metrics li{flex-basis:calc(50% - .375rem)}}.d4-prose .cv-timeline{border-left:1px solid var(--line);margin:1.5em 0 0;padding:0 0 0 1.5rem;list-style:none}.d4-prose .cv-timeline>li{margin:0 0 2.25em;padding:0;position:relative}.d4-prose .cv-timeline>li:last-child{margin-bottom:0}.d4-prose .cv-timeline>li::marker{content:none}.d4-prose .cv-timeline>li:before{content:"";background:var(--bg);border:1px solid var(--faint);border-radius:50%;width:8px;height:8px;position:absolute;top:.6em;left:calc(-1.5rem - 4.5px)}.d4-prose .cv-timeline>li:first-child:before{background:var(--head);border-color:var(--head)}.d4-prose .cv-period{color:var(--muted);text-align:left;margin:0;font-size:.875em}.d4-prose .cv-timeline h3{margin:.1em 0 .5em;padding-top:0}.cv-org{color:var(--muted);font-size:.889em;font-weight:400;display:block}.d4-prose .cv-timeline ul:not(.d4-tags){margin:.5em 0 0}.d4-prose .cv-timeline p:not(.cv-period){margin:.5em 0 0}.d4-prose .cv-timeline .d4-tags{margin-top:.85em}.d4-avatar{float:left;object-fit:cover;object-position:50% 0%;border-radius:50%;width:5.25em;height:5.25em;margin:.35em 1.25rem .5rem 0}.d4-avatar.is-tappable{cursor:zoom-in;-webkit-tap-highlight-color:transparent}.d4-avatar.is-tappable:focus-visible{outline:2px solid var(--head);outline-offset:2px}.d4-photo-pop{z-index:20;opacity:0;visibility:hidden;pointer-events:none;background:var(--bg);border:1px solid var(--line);border-radius:12px;width:min(18rem,calc(100vw - 1rem));padding:.375rem;transition:opacity.2s,transform.2s,visibility 0s .2s linear;position:fixed;top:0;left:0;transform:scale(.94);box-shadow:0 12px 32px -8px rgb(28 25 23 / .25),0 2px 6px rgb(28 25 23 / .08)}.d4-photo-pop.is-open{opacity:1;visibility:visible;transition:opacity.2s,transform.2s,visibility;transform:none}.d4-photo-pop img{border-radius:8px;width:100%;height:auto;display:block}:root[data-theme=dark] .d4-photo-pop{box-shadow:0 12px 32px -8px rgb(0 0 0 / .6),0 2px 6px rgb(0 0 0 / .3)}.d4-meta{clear:both;color:var(--muted);font-size:.9375em}.d4-label{color:var(--faint);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .75em;font-size:.8125em}.d4-prose .d4-tags{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.d4-prose .d4-tags li{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:6px;margin:0;padding:.05rem .55rem;font-size:.8125em;line-height:1.6}.d4-prose .d4-tags li::marker{content:none}.d4-prose .d4-socials{color:var(--faint);text-align:center}.d4-prose .contact-cards{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1.5em 0 0;padding:0;list-style:none;display:flex}.d4-prose .contact-cards>li{flex:0 0 calc(50% - .375rem);margin:0;padding:0}.d4-prose .contact-cards>li::marker{content:none}.d4-prose .contact-cards>.contact-cards__primary{flex-basis:100%}.d4-prose .contact-card{color:var(--head);background:var(--surface);border:1px solid var(--line);border-radius:8px;align-items:center;gap:.85rem;height:100%;padding:.9rem 1rem;font-weight:400;line-height:1.35;text-decoration:none;transition:border-color.15s,background-color.15s;display:flex}.d4-prose .contact-card:hover{color:var(--head);border-color:var(--faint)}.d4-prose .contact-card:focus-visible{outline:2px solid var(--head);outline-offset:2px}.contact-card__icon{border:1px solid var(--line);border-radius:6px;flex:none;align-items:center;justify-items:center;width:2.25rem;height:2.25rem;display:grid}.contact-card__icon svg{fill:none;stroke:currentcolor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;width:1.1rem;height:1.1rem}.contact-card__body{flex-direction:column;min-width:0;display:flex}.contact-card__label{color:var(--muted);font-size:.8125em}.contact-card__value{font-weight:500;overflow-wrap:anywhere}.d4-prose .contact-card--primary{color:var(--btn-text);background:var(--btn);border-color:var(--btn);padding:1.1rem 1.25rem}.d4-prose .contact-card--primary:hover{color:var(--btn-text);background:var(--btn-hover);border-color:var(--btn-hover)}.contact-card--primary .contact-card__icon{border-color:color-mix(in srgb,currentColor 25%,transparent)}.contact-card--primary .contact-card__label{color:inherit;opacity:.7}.contact-card--primary .contact-card__value{font-size:1.1em}.contact-card__cta{white-space:nowrap;margin-left:auto;font-weight:500;font-size:.9375em}@media (max-width:30rem){.d4-prose .contact-cards>li,.d4-prose .story__metrics li{flex-basis:100%}.contact-card__cta{display:none}}.d4-footer{color:var(--faint);border-top:1px solid var(--line);margin-top:5rem;padding-top:1.5rem;font-size:.875em}.d4-footer p{margin:0}@media (prefers-reduced-motion:reduce){.d4-pages a,.d4-photo-pop,.d4-photo-pop.is-open,.d4-prose .contact-card,.d4-prose .d4-btn,.d4-size__btn,.d4-size__dots i,.d4-switch,.d4-switch__indicator,.d4-switch__state,.d4-top__nav a{transition:none}}