.dmx{--dmx-size:22px;--dmx-color:currentColor;width:var(--dmx-size);height:var(--dmx-size);flex:none;grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(5,1fr);display:inline-grid}.dmx__dot{background:var(--dmx-color);opacity:.16;border-radius:50%;margin:18%;display:block}.dmx__dot--core{opacity:1}.dmx__dot--chase{opacity:.85;animation:1.6s linear infinite dmx-chase;animation-delay:calc(var(--o) * -.1s);animation-direction:reverse}.dmx--hover-only .dmx__dot--chase{animation-play-state:paused}.dmx-hover:hover .dmx--hover-only .dmx__dot--chase,.dmx-hover:focus-visible .dmx--hover-only .dmx__dot--chase{animation-play-state:running}.dmx__dot--ripple{animation:1.4s cubic-bezier(.45,0,.55,1) infinite dmx-ripple;animation-delay:calc(var(--o) * .14s)}@keyframes dmx-chase{0%{opacity:1}35%,to{opacity:.18}}@keyframes dmx-ripple{0%,to{opacity:.14;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.dmx__dot--chase,.dmx__dot--ripple{opacity:.5;animation:none}}.hero{gap:var(--gutter);min-height:min(calc(100svh - var(--nav-h)), 1080px);padding:0 var(--margin) var(--margin);grid-template-columns:minmax(0,5fr) minmax(0,7fr);display:grid}.hero__intro{flex-direction:column;justify-content:space-between;gap:48px;padding:12px 0 4px;display:flex}.hero__name{font-family:var(--font-display);font-variation-settings:"ROND" 100;letter-spacing:-.04em;font-size:clamp(64px,9.6vw,172px);font-weight:800;line-height:.84}.hero__foot{animation:hero-rise .9s var(--ease-out) .65s both}.hero__lede{font-size:var(--step-lead);letter-spacing:-.02em;text-wrap:pretty;max-width:24ch;line-height:1.32}.hero__actions{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:32px;display:flex}@keyframes hero-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.display{border-radius:var(--radius);background:var(--surface);min-height:580px;animation:hero-rise 1s var(--ease-out) .25s both;grid-template-rows:minmax(0,1fr) auto;display:grid;overflow:hidden}.display__screen{min-height:0;position:relative}.display__canvas,.display__fallback{width:100%;height:100%;position:absolute;inset:0}.display__canvas{touch-action:pan-y}.display__fallback{color:var(--accent);place-items:center;display:grid}.display__fallback svg{width:46%}.tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px;display:grid;position:relative}.tabs__indicator{border-radius:var(--radius-small);background:var(--surface-3);transition:transform .45s var(--ease-in-out);position:absolute;top:0;left:0}.tab{border-radius:var(--radius-small);text-align:left;transition:transform .16s var(--ease-out);flex-direction:column;align-items:flex-start;padding:18px 16px 22px;display:flex;position:relative}.tab:active{transform:scale(.97)}.tab__glyph{width:28px;height:28px;color:var(--faint);margin-bottom:18px;transition:color .3s}.tab__name{font-size:var(--step-body);color:var(--muted);font-weight:500;line-height:1.3;transition:color .3s}.tab__line{font-size:var(--step-small);color:var(--muted);line-height:1.35;transition:color .3s}.tab.is-active .tab__glyph{color:var(--accent)}.tab.is-active .tab__name,.tab.is-active .tab__line{color:var(--ink)}@media (hover:hover) and (pointer:fine){.tab:not(.is-active):hover .tab__name{color:var(--ink)}}.tab__progress{background:var(--accent);transform-origin:0;border-radius:2px;height:2px;animation:4.6s linear both tab-progress;position:absolute;bottom:9px;left:16px;right:16px}.display:focus-within .tab__progress,.display.is-paused .tab__progress{animation-play-state:paused}@media (hover:hover) and (pointer:fine){.display:hover .tab__progress{animation-play-state:paused}}@keyframes tab-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (width<=1023px){.hero{grid-template-columns:minmax(0,1fr);min-height:0}.hero__intro{gap:32px;padding-top:20px}.hero__name{font-size:min(22.5vw,200px)}.display{min-height:0}.display__screen{aspect-ratio:4/3}}@media (width<=640px){.display__screen{aspect-ratio:1}.tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.tab{padding:16px 14px 20px}.tab__glyph{width:24px;height:24px;margin-bottom:14px}}@media (prefers-reduced-motion:reduce){.hero__foot,.display{animation-name:fade-in;animation-duration:.5s}.tabs__indicator{transition:none}@keyframes fade-in{0%{opacity:0}}}.nav{height:var(--nav-h);padding:0 var(--margin);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.nav__mark{color:var(--accent);justify-self:start;align-items:center;gap:12px;display:inline-flex}.nav__monogram{font-family:var(--font-display);font-size:var(--step-lead);font-variation-settings:"ROND" 100;letter-spacing:-.02em;color:var(--ink);font-weight:900}.nav__links{gap:4px;display:flex}.nav__links a{font-size:var(--step-small);color:var(--muted);padding:8px 14px;transition:color .2s}.nav__links a[aria-current=page]{color:var(--ink)}@media (hover:hover) and (pointer:fine){.nav__links a:hover{color:var(--ink)}}.nav .button{justify-self:end}@media (width<=720px){.nav{grid-template-columns:1fr auto auto;gap:4px}.nav__link--home{display:none}.nav__links a{padding:8px 10px}}.photo-groups{gap:12px;margin-top:clamp(40px,5vw,72px);display:grid}.photo-group{border-radius:var(--radius);background:var(--surface);padding:clamp(14px,2.2vw,28px)}.photo-group__head{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:clamp(16px,2vw,24px);display:flex}.photo-group__title{font-size:var(--step-lead);letter-spacing:-.02em;font-weight:500;line-height:1.2}.photo-group__note{max-width:60ch;font-size:var(--step-small);color:var(--muted);text-wrap:pretty;margin-top:6px}.photo-group__count{font-size:var(--step-small);font-variant-numeric:tabular-nums;color:var(--muted);flex:none}.photo-group__body,.photo-batch{flex-direction:column;gap:8px;display:flex}.photo-row{gap:8px;display:flex}.photo{background:color-mix(in srgb, var(--tone) 14%, var(--surface-2));cursor:zoom-in;transition:transform .16s var(--ease-out);flex:none;position:relative;overflow:hidden}.photo:active{transform:scale(.99)}.photo picture,.photo__img{width:100%;height:100%;display:block}.photo__img{object-fit:contain;opacity:0;transition:opacity .9s var(--ease-out) calc(var(--o) * 70ms)}.photo.is-shown .photo__img{opacity:1}.photo__loader{--dmx-size:26px;color:var(--muted);transition:opacity .2s;position:absolute;top:50%;left:50%;translate:-50% -50%}.photo.is-shown .photo__loader{opacity:0}.photo.is-shown .photo__loader .dmx__dot{animation-play-state:paused}@media (width<=640px){.photo-group__body,.photo-batch,.photo-row{gap:6px}.photo-group__head{flex-direction:column;gap:4px}}@media (prefers-reduced-motion:reduce){.photo__img{transition:opacity .4s}}html.is-locked{overflow:hidden}.lightbox{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;grid-template-rows:auto minmax(0,1fr) auto;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden}.lightbox::backdrop{animation:lightbox-fade .26s var(--ease-out);background:#050505}.lightbox.is-closing::backdrop{opacity:0;transition:opacity .26s}.lightbox.is-closing .lightbox__bar,.lightbox.is-closing .lightbox__foot,.lightbox.is-closing .lightbox__nav{opacity:0;transition:opacity .15s}@keyframes lightbox-fade{0%{opacity:0}}.lightbox__bar,.lightbox__foot{z-index:2;padding:12px var(--margin);background:#050505;justify-content:space-between;align-items:center;gap:16px;animation:.3s .15s both lightbox-fade;display:flex;position:relative}.lightbox__foot{min-height:64px;padding-bottom:max(12px, env(safe-area-inset-bottom))}.lightbox__count,.lightbox__caption,.lightbox__status{font-size:var(--step-small);color:var(--muted)}.lightbox__count{font-variant-numeric:tabular-nums}.lightbox__caption{color:var(--ink);max-width:60ch}.lightbox__status{text-align:right;flex:none}.lightbox__progress{font-variant-numeric:tabular-nums;align-items:center;gap:10px;display:inline-flex}.lightbox__progress .dmx{--dmx-size:16px;color:var(--accent)}.lightbox__full{font-size:var(--step-small);color:var(--ink);transition:transform .16s var(--ease-out), color .2s ease;padding:8px 0}.lightbox__full:active{transform:scale(.97)}.lightbox__stage{margin:0 var(--margin);touch-action:none;-webkit-user-select:none;user-select:none;outline:none;place-items:center;display:grid;position:relative}.lightbox__frame{background:color-mix(in srgb, var(--tone) 12%, var(--surface));will-change:transform;position:relative}.lightbox__stage.can-zoom .lightbox__frame{cursor:zoom-in}.lightbox__stage.is-zoomed .lightbox__frame{cursor:grab}.lightbox__stage.is-zoomed .lightbox__frame:active{cursor:grabbing}.lightbox__img{-webkit-user-drag:none;width:100%;height:100%;animation:.22s lightbox-fade;position:absolute;inset:0}.lightbox__loader{--dmx-size:32px;color:var(--muted);position:absolute;top:50%;left:50%;translate:-50% -50%}.lightbox__button{border-radius:var(--radius-small);background:var(--surface-2);width:44px;height:44px;transition:transform .16s var(--ease-out), background-color .2s ease;place-items:center;display:grid}.lightbox__button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.lightbox__button:active{transform:scale(.94)}.lightbox__nav{z-index:2;animation:.3s .15s both lightbox-fade;position:absolute;top:50%;translate:0 -50%}.lightbox__nav--prev{left:max(12px, calc(var(--margin) / 2))}.lightbox__nav--next{right:max(12px, calc(var(--margin) / 2))}@media (hover:hover) and (pointer:fine){.lightbox__button:hover{background:var(--surface-3)}.lightbox__full:hover{color:var(--accent)}}@media (width<=720px),(pointer:coarse){.lightbox__nav{display:none}.lightbox__stage{margin:0}.lightbox__foot{flex-direction:column;align-items:flex-start;gap:8px}.lightbox__status{text-align:left}}.photo-page{padding:0 var(--margin)}.photo-page__title{font-family:var(--font-display);font-variation-settings:"ROND" 100;letter-spacing:-.04em;margin-top:12px;font-size:min(14.6vw,264px);font-weight:800;line-height:.84}.photo-page__intro{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;margin-top:clamp(32px,4vw,56px);display:grid}.photo-page__statement{grid-column:1/span 6}.photo-page__groups{flex-wrap:wrap;gap:8px 24px;margin-top:28px;display:flex}.photo-page__groups a{font-size:var(--step-small);color:var(--muted);transition:color .2s}@media (hover:hover) and (pointer:fine){.photo-page__groups a:hover{color:var(--ink)}}.photo-page__count{font-size:var(--step-small);font-variant-numeric:tabular-nums;color:var(--muted);grid-column:9/-1;justify-self:end}@media (width<=860px){.photo-page__statement,.photo-page__groups{flex-wrap:wrap;gap:8px 24px;margin-top:28px;display:flex}@media (hover:hover) and (pointer:fine){.photo-page__groups a:hover{color:var(--ink)}}.photo-page__count{grid-column:1/-1;justify-self:start}.photo-page__groups{flex-wrap:wrap;gap:8px 24px;margin-top:28px;display:flex}.photo-page__groups a{font-size:var(--step-small);color:var(--muted);transition:color .2s}@media (hover:hover) and (pointer:fine){.photo-page__groups a:hover{color:var(--ink)}}.photo-page__count{margin-top:12px}}@font-face{font-family:Switzer;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/switzer-400-BxEtgLLb.woff2)format("woff2")}@font-face{font-family:Switzer;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/switzer-500-A29GCmfN.woff2)format("woff2")}@font-face{font-family:Switzer;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/switzer-600-DSnGZNn0.woff2)format("woff2")}@font-face{font-family:Doto Variable;font-style:normal;font-display:block;font-weight:100 900;src:url(/assets/doto-latin-full-normal-Cy2ndtyN.woff2)format("woff2-variations")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0a;--surface:#131313;--surface-2:#1b1b1b;--surface-3:#252525;--ink:#f2f2f2;--muted:#a6a6a6;--faint:#5f5f5f;--accent:#ff6a1a;--accent-hover:#ff8040;--on-accent:#0a0a0a;--font-display:"Doto Variable", ui-sans-serif, sans-serif;--font-text:"Switzer", ui-sans-serif, system-ui, sans-serif;--step-small:15px;--step-body:17px;--step-lead:clamp(20px, 1.75vw, 26px);--step-head:clamp(40px, 4.6vw, 72px);--margin:clamp(16px, 2.8vw, 40px);--gutter:clamp(16px, 2vw, 28px);--section-gap:clamp(112px, 14vw, 208px);--radius:4px;--radius-small:2px;--nav-h:72px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:32px}body{background:var(--bg);color:var(--ink);font-family:var(--font-text);font-size:var(--step-body);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.55;overflow-x:clip}h1,h2,h3,p,ol,ul,figure{margin:0}ol,ul{padding:0;list-style:none}img,canvas,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-small)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.section{margin-top:var(--section-gap);padding:0 var(--margin)}.section__grid{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));row-gap:40px;display:grid}.section__title{font-family:var(--font-display);font-weight:900;font-size:var(--step-head);font-variation-settings:"ROND" 100;letter-spacing:-.02em;grid-column:1/span 4;align-self:start;line-height:.95;position:sticky;top:32px}.section__body{grid-column:5/-1}.statement{font-size:var(--step-lead);letter-spacing:-.02em;text-wrap:pretty;max-width:34ch;line-height:1.32}@media (width<=860px){.section__title,.section__body{grid-column:1/-1}.section__title{position:static}}::view-transition-old(root){animation-duration:.22s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.22s;animation-timing-function:ease}.dot-line{white-space:nowrap;display:block}.dot-letter{animation:dot-letter 1.1s var(--ease-out) both;animation-delay:calc(.12s + var(--i) * 45ms);display:inline-block}@keyframes dot-letter{0%{opacity:0;filter:blur(10px);transform:translateY(.14em)}to{opacity:1;filter:blur();transform:none}}@media (prefers-reduced-motion:reduce){.dot-letter{animation:.5s both dot-fade}@keyframes dot-fade{0%{opacity:0}}}.button{background:var(--accent);height:52px;color:var(--on-accent);font-size:var(--step-body);letter-spacing:-.01em;white-space:nowrap;transition:transform .16s var(--ease-out), background-color .2s ease;-webkit-user-select:none;user-select:none;align-items:center;gap:14px;padding:0 20px 0 22px;font-weight:500;display:inline-flex}.button:active{transform:scale(.97)}.button__arrow{width:13px;height:13px;transition:transform .2s var(--ease-out);flex:none}.button--link{height:44px;color:var(--ink);background:0 0;padding:0 4px}.button--link .button__arrow{color:var(--accent)}.button--small{height:40px;font-size:var(--step-small)}@media (hover:hover) and (pointer:fine){.button:hover{background:var(--accent-hover)}.button--link:hover{background:0 0}.button:hover .button__arrow{transform:translate(3px)}}[data-reveal]{transition:opacity .8s var(--ease-out) calc(var(--d,0) * 1ms), transform .8s var(--ease-out) calc(var(--d,0) * 1ms)}.js [data-reveal-root]:not(.is-in) [data-reveal]{opacity:0;transform:translateY(24px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-reveal-root]:not(.is-in) [data-reveal]{transform:none}[data-reveal]{transition:opacity .4s ease calc(var(--d,0) * .5ms)}}.about{gap:32px;display:grid}.about__personal{max-width:52ch;font-size:var(--step-body);color:var(--muted)}.xp__row{column-gap:var(--gutter);grid-template-columns:minmax(0,2fr) minmax(0,5fr) minmax(0,5fr);row-gap:8px;padding:28px 0 30px;display:grid;position:relative}.xp__row:before{content:"";background:radial-gradient(circle, var(--surface-3) 1.4px, transparent 1.9px) 0 50% / 9px 4px repeat-x;height:4px;position:absolute;top:0;left:0;right:0}.xp__years{font-size:var(--step-small);font-variant-numeric:tabular-nums;color:var(--muted);padding-top:6px}.xp__org{font-size:var(--step-lead);letter-spacing:-.02em;font-weight:500;line-height:1.2}.xp__role{font-size:var(--step-small);color:var(--muted);margin-top:4px;line-height:1.4}.xp__summary{text-wrap:pretty;max-width:46ch;padding-top:4px}@media (width<=860px){.xp__row{grid-template-columns:minmax(0,1fr);padding:24px 0 26px}.xp__years{padding-top:0}}.contact{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.card{border-radius:var(--radius);background:var(--surface);min-height:184px;transition:background-color .25s ease, transform .16s var(--ease-out);flex-direction:column;align-items:flex-start;gap:6px;padding:24px 28px 26px;display:flex;position:relative}.card--wide{grid-column:1/-1;min-height:280px}.card:has(.card__link:active){transform:scale(.99)}.card__top{justify-content:space-between;align-self:stretch;align-items:center;margin-bottom:auto;padding-bottom:32px;display:flex}.card__label{font-size:var(--step-small);color:var(--muted)}.card__dots{--dmx-size:28px;color:var(--accent)}.card__value{font-size:var(--step-lead);letter-spacing:-.02em;overflow-wrap:anywhere;font-weight:500;line-height:1.1}.card--wide .card__value{font-size:min(var(--step-head), 10.5vw);letter-spacing:-.04em;overflow-wrap:normal}.card__link:after{content:"";border-radius:inherit;position:absolute;inset:0}.card__link:focus-visible{outline:none}.card:has(.card__link:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.card__copy{z-index:1;font-size:var(--step-small);color:var(--muted);transition:transform .16s var(--ease-out), color .2s ease;margin-top:10px;padding:8px 0;display:grid;position:relative}.card__copy:active{transform:scale(.96)}.card__copy-label{opacity:0;filter:blur(4px);transition:opacity .22s ease, filter .22s ease, transform .22s var(--ease-out);grid-area:1/1;transform:translateY(4px)}.card__copy-label.is-shown{opacity:1;filter:blur();transform:none}@media (hover:hover) and (pointer:fine){.card:hover{background:var(--surface-2)}.card__copy:hover{color:var(--ink)}}@media (width<=560px){.contact{grid-template-columns:minmax(0,1fr)}.card{min-height:168px;padding:20px 22px 22px}.card--wide{min-height:200px}}.footer{padding:calc(var(--section-gap) * .55) var(--margin) 28px}.footer__mark{font-family:var(--font-display);font-variation-settings:"ROND" 100;letter-spacing:-.04em;color:var(--ink);-webkit-user-select:none;user-select:none;justify-content:space-between;font-size:38.5vw;font-weight:700;line-height:.74;display:flex}.footer__mark span{transition:font-weight .7s var(--ease-out), color .4s ease}@media (hover:hover) and (pointer:fine){.footer__mark span:hover{color:var(--accent);font-weight:900}}.footer__meta{font-size:var(--step-small);color:var(--muted);justify-content:space-between;gap:16px;margin-top:40px;display:flex}.footer__meta a{transition:color .2s}@media (hover:hover) and (pointer:fine){.footer__meta a:hover{color:var(--ink)}}
