.site{--font-sans:var(--font-geist-sans), "Helvetica Neue", Arial, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, monospace;--font-display:var(--font-anton), Impact, "Arial Narrow", sans-serif;--gutter:clamp(16px, 2.2vw, 32px);--gap:8px;--section-y:clamp(4rem, 9vw, 8rem);--header-h:88px;--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-quart:cubic-bezier(.165, .84, .44, 1);--ease-wipe:cubic-bezier(.625, .05, 0, 1);--fs-display:clamp(3rem, 1.2rem + 8.4vw, 9rem);--fs-h3:clamp(1.4rem, 1rem + 1.6vw, 2.4rem);--fs-h4:clamp(1.15rem, 1rem + .5vw, 1.5rem);--fs-lead:clamp(1.1rem, .95rem + .6vw, 1.5rem);--fs-body:1rem;--fs-label:.75rem;background:var(--c-paper);min-height:100svh;color:var(--c-ink);font-family:var(--font-sans);font-size:var(--fs-body);letter-spacing:-.01em;line-height:1.4}.site *,.site :before,.site :after{box-sizing:border-box}.site :where(h1,h2,h3,h4,p,ul,ol,figure){margin:0;padding:0}.site :where(ul,ol){list-style:none}.site a{color:inherit;text-decoration:none}.site ::selection{background:var(--c-accent);color:var(--c-on-accent)}.site :focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}.site .skip-link{z-index:1200;background:var(--c-ink);color:var(--c-paper);font-size:var(--fs-label);padding:8px 12px;position:fixed;top:8px;left:8px;translate:0 -200%}.site .skip-link:focus{translate:0}.site .display{font-size:var(--fs-display);letter-spacing:-.055em;font-weight:500;line-height:.92}.site .h3{font-size:var(--fs-h3);letter-spacing:-.035em;font-weight:450;line-height:1.12}.site .h4{font-size:var(--fs-h4);letter-spacing:-.025em;font-weight:500;line-height:1.2}.site .lead{font-size:var(--fs-lead);letter-spacing:-.025em;line-height:1.3}.site .label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.04em;text-transform:uppercase;font-weight:500;line-height:1.2}.site .muted{color:var(--c-muted)}.site .grid{column-gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.site-main{padding-top:var(--header-h)}.site .page{padding-inline:var(--gutter)}.site .section{padding-top:var(--section-y)}.site .section__head{justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:1rem;display:flex}.site .u-link{display:inline-block;position:relative}.site .u-link:before,.site .u-link--alt:after{content:"";transform-origin:100%;width:100%;height:max(1px,.0625em);transition:transform .735s var(--ease-wipe);background:currentColor;position:absolute;bottom:-.05em;left:0;transform:scaleX(0)}.site .u-link:hover:before,.site .u-link:focus-visible:before{transform-origin:0;transform:scaleX(1)}.site .u-link--alt:before{transform-origin:0;transition-delay:.3s;transform:scaleX(1)}.site .u-link--alt:hover:before,.site .u-link--alt:focus-visible:before{transform-origin:100%;transition-delay:0s;transform:scaleX(0)}.site .u-link--alt:hover:after,.site .u-link--alt:focus-visible:after{transform-origin:0;transition-delay:.3s;transform:scaleX(1)}.js .site .rv{opacity:0;translate:0 24px}.js .site .rv.is-in{opacity:1;transition:opacity .9s var(--ease-quart) calc(var(--d,0) * 70ms), translate 1.1s var(--ease-expo) calc(var(--d,0) * 70ms);translate:0}.site .mask__w{vertical-align:top;margin-bottom:-.08em;padding-bottom:.08em;display:inline-block;overflow:hidden}.site .mask__i{display:inline-block}.js .site .mask .mask__i{translate:0 110%}.js .site .mask.is-in .mask__i{transition:translate 1.2s var(--ease-expo) calc(var(--i,0) * 45ms);translate:0}@media (prefers-reduced-motion:reduce){.js .site .rv,.js .site .mask .mask__i{opacity:1;transition:none;translate:none}}.site-header{z-index:800;padding-inline:var(--gutter);background:linear-gradient(var(--c-paper) 70%, transparent);transition:translate .5s var(--ease-expo);padding-bottom:10px;position:fixed;inset:0 0 auto}.site-header.is-hidden{translate:0 -110%}.hud{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--c-muted);gap:1.25rem;padding-block:8px 6px;font-size:.625rem;font-weight:600;display:flex}.hud__k{margin-right:.25em}.hud__v{color:var(--c-ink);font-variant-numeric:tabular-nums}.site .clock-colon{animation:1s step-end infinite colon-blink}.site .clock-colon--late{animation-delay:.25s}@keyframes colon-blink{50%{opacity:0}}.site-header__bar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;min-height:48px;display:grid}.site-header__lead{align-items:center;display:flex}.site-header__logo{align-items:center;gap:8px;display:inline-flex}.signature-mark{width:60px;color:var(--c-ink);display:block}.capsule{letter-spacing:-.04em;white-space:nowrap;height:30px;transition:width .55s var(--ease-expo);border:1.5px solid;border-radius:6px;align-items:center;padding-inline:.45rem .5rem;font-size:1.05rem;font-weight:500;display:inline-grid;position:relative;overflow:hidden}.capsule__measure{visibility:hidden;border:1.5px solid #0000;padding-inline:.45rem .5rem;position:absolute}.capsule__word{grid-area:1/1;display:inline-flex}.capsule__word span{white-space:pre;display:inline-block}.capsule__word--in span{animation:capsule-in .6s var(--ease-expo) both;animation-delay:calc(var(--index) * 28ms)}.capsule__word--out span{animation:capsule-out .45s var(--ease-expo) both;animation-delay:calc(var(--index) * 20ms)}@keyframes capsule-in{0%{translate:0 110%}}@keyframes capsule-out{to{translate:0 -110%}}.site-header__center{align-items:center;gap:6px;display:flex}.navpill{background:var(--c-paper);border:1px solid var(--c-rule);border-radius:7px;align-items:center;height:40px;padding-inline:6px;display:flex;position:relative;box-shadow:0 2px 8px -4px #0000002e}.navpill__pill{z-index:0;background:color-mix(in srgb, var(--c-ink) 9%, transparent);width:0;height:0;box-shadow:0 0 0 1px color-mix(in srgb, var(--c-ink) 5%, transparent);opacity:0;pointer-events:none;transition:transform .4s var(--ease-expo), width .4s var(--ease-expo), height .4s var(--ease-expo), opacity .25s var(--ease-quart);border-radius:5px;position:absolute;top:0;left:0}.navpill__pill.is-hover{transition-duration:.22s}.navpill__list{z-index:1;align-items:center;gap:2px;display:flex;position:relative}.site .navpill__link{letter-spacing:-.02em;transition:opacity .3s var(--ease-quart);padding:5px 12px;font-size:.95rem;display:block}@media (hover:hover) and (pointer:fine){.navpill__list:has(.navpill__link:hover) .navpill__link:not(:hover){opacity:.4}}.navpill__list:has(.navpill__link:focus-visible) .navpill__link:not(:focus-visible){opacity:.4}.roll{--roll:1.4em;clip-path:inset(-10% 0%);display:inline-block}.roll span{white-space:nowrap;text-shadow:0 var(--roll) currentColor;transition:translate .4s calc(var(--index,0) * 12.5ms) var(--ease-expo);display:inline-block}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.navpill__link:hover .roll span,.navpill__link:focus-visible .roll span,.cmdk:hover .roll span,.cmdk:focus-visible .roll span{translate:0 calc(var(--roll) * -1)}}.cmdk{isolation:isolate;min-width:48px;height:40px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding-inline:10px;font-size:.95rem;position:relative}.cmdk:before{content:"";z-index:-1;background:var(--c-paper);border:1px solid var(--c-rule);transition:scale .22s var(--ease-quart);border-radius:7px;position:absolute;inset:0;box-shadow:0 2px 8px -4px #0000002e}.cmdk:hover:before{scale:.97}.cmdk:active:before{scale:.94}.site-header__right{justify-content:flex-end;align-items:center;gap:8px;display:flex}.themetoggle{background:color-mix(in srgb, var(--c-ink) 8%, transparent);border-radius:7px;padding:3px;display:flex;position:relative}.themetoggle__bg{background:var(--c-paper);width:30px;height:28px;transition:translate .4s var(--ease-expo);border-radius:5px;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000002e}.themetoggle[data-theme-state=dark] .themetoggle__bg{translate:30px}.themetoggle button{width:30px;height:28px;color:var(--c-ink);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.themetoggle button[aria-pressed=false]{opacity:.5}.themetoggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:15px;height:15px}.site-header__burger{display:none}.cmd{z-index:1100;background:#00000059;place-items:start center;padding:14vh 1rem 1rem;animation:.2s both cmd-fade;display:grid;position:fixed;inset:0}.cmd__panel{background:var(--c-paper);width:min(560px,100%);color:var(--c-ink);border:1px solid var(--c-rule);animation:cmd-rise .35s var(--ease-expo) both;border-radius:10px;overflow:hidden;box-shadow:0 24px 60px -24px #00000073}@keyframes cmd-fade{0%{opacity:0}}@keyframes cmd-rise{0%{opacity:0;translate:0 12px;scale:.98}}.cmd__search{border-bottom:1px solid var(--c-rule);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmd__search svg{fill:none;width:18px;height:18px;stroke:var(--c-muted);stroke-width:1.8px;stroke-linecap:round;flex:none}.cmd__input{color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:1rem}.cmd__input::placeholder{color:var(--c-muted)}.cmd__list{max-height:min(52vh,420px);padding:6px;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 10px calc(100% - 10px),#0000);mask-image:linear-gradient(#0000,#000 10px calc(100% - 10px),#0000)}.cmd__heading{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);padding:10px 10px 4px;font-size:.68rem}.cmd__item{cursor:pointer;border-radius:6px;justify-content:space-between;gap:1rem;padding:9px 10px;display:flex}.cmd__item.is-active{background:color-mix(in srgb, var(--c-ink) 8%, transparent)}.cmd__hint{color:var(--c-muted);font-family:var(--font-mono);font-size:.75rem}.cmd__empty{color:var(--c-muted);padding:18px 10px}.cmd__footer{border-top:1px solid var(--c-rule);font-family:var(--font-mono);color:var(--c-muted);gap:16px;padding:10px 16px;font-size:.68rem;display:flex}.cmd__footer kbd{border:1px solid var(--c-rule);text-align:center;border-radius:4px;min-width:18px;margin-right:3px;padding:1px 4px;font-family:inherit;display:inline-block}.hero{min-height:calc(100svh - var(--header-h));align-content:end;row-gap:1.5rem;padding-bottom:clamp(2rem,5vw,4rem)}.trail{isolation:isolate;--trail-size:min(4.45vw, 64px);position:relative;overflow-x:clip}.trail__layer{z-index:0;pointer-events:none;display:none;position:absolute;inset:0}@media (min-width:801px) and (any-hover:hover) and (prefers-reduced-motion:no-preference){.trail__layer{display:block}}.trail__content{z-index:1;position:relative}.trail__badge{width:var(--trail-size);height:var(--trail-size);color:#161614;font-size:calc(var(--trail-size) * .5);transform-origin:50%;will-change:transform;-webkit-user-select:none;user-select:none;pointer-events:none;border-radius:50%;place-items:center;display:grid;position:absolute}.trail__badge[data-color=a]{background:var(--c-badge-a)}.trail__badge[data-color=b]{background:var(--c-badge-b);color:#fff}.trail__badge[data-color=c]{background:var(--c-badge-c)}.trail__badge[data-color=d]{background:var(--c-badge-d)}.trail__badge[data-color=e]{background:var(--c-badge-e)}.hero__meta{flex-wrap:wrap;grid-column:1/-1;gap:0 2rem;display:flex}.hero__title{grid-column:1/-1}.hero__title--name{width:100%;max-width:100%}.hero__wordmark{width:100%;height:auto;display:block}.hero__wordmark--white,html[data-theme=dark] .hero__wordmark--black{display:none}html[data-theme=dark] .hero__wordmark--white{display:block}.hero__lede{grid-column:7/-1;max-width:34ch}.page-head,.case-head{row-gap:1.5rem;padding-top:clamp(4rem,10vw,9rem)}.page-head__label,.case-head__back{grid-column:1/-1;justify-content:space-between;gap:1rem;display:flex}.page-head__title,.case-head__title{grid-column:1/-1}.page-head__lede,.case-head__lede{grid-column:7/-1;max-width:34ch}.work-rows__head,.work-row{align-items:baseline;gap:var(--gap);grid-template-columns:4rem minmax(0,1fr) 12rem 10rem 3rem;display:grid}.work-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.work-filter{border:1px solid var(--c-rule);color:var(--c-ink);cursor:pointer;background:0 0;padding:.5rem .75rem}.work-filter[aria-pressed=true]{background:var(--c-ink);color:var(--c-paper)}.work-rows__head{color:var(--c-muted);border-bottom:1px solid var(--c-rule);padding-bottom:.75rem}.work-row{border-bottom:1px solid var(--c-rule);transition:opacity .4s var(--ease-quart);padding-block:clamp(1rem,2vw,1.75rem)}.work-row.is-dim{opacity:.35}.work-row__no,.work-row__categories,.work-row__status{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.04em;color:var(--c-muted)}.work-row__title{letter-spacing:-.05em;font-size:clamp(2rem,1rem + 4vw,4.75rem);font-weight:500;line-height:1}.work-row__arrow{justify-self:end;width:1.5rem;height:1.5rem;font-size:1.25rem;line-height:1.5rem;display:block;position:relative;overflow:hidden}.work-row__arrow span{transition:translate .6s var(--ease-quart);position:absolute;inset:0}.work-row__arrow span+span{translate:-100% 100%}.work-row:hover .work-row__arrow span:first-child,.work-row:focus-visible .work-row__arrow span:first-child{translate:100% -100%}.work-row:hover .work-row__arrow span+span,.work-row:focus-visible .work-row__arrow span+span{transition-delay:.1s;translate:0}.work-follower{z-index:60;aspect-ratio:4/3;pointer-events:none;opacity:0;visibility:hidden;width:clamp(16rem,24vw,24rem);margin:calc(clamp(16rem,24vw,24rem)/-2.66667) 0 0 calc(clamp(16rem,24vw,24rem)/-2);position:fixed;top:0;left:0}.work-follower__card{background:var(--c-ink);opacity:0;border-radius:4px;transition:opacity .25s linear;position:absolute;inset:0;overflow:hidden}.work-follower__card.is-active{opacity:1}.work-follower__card img{object-fit:cover;width:100%;height:100%}.work-follower__placeholder{background:var(--c-accent);height:100%;color:var(--c-on-accent);font-family:var(--font-display);place-items:center;font-size:3rem;display:grid}.site .is-blurred{filter:blur(6px);scale:1.04}.intro{row-gap:1.5rem}.intro__label{grid-column:1/4}.intro__body{grid-column:4/-1;gap:1.5rem;max-width:40ch;display:grid}.case-meta{margin-top:var(--section-y);border-top:1px solid var(--c-rule);row-gap:1.5rem;padding-top:1rem}.case-meta__item{grid-column:span 2;align-content:start;gap:.5rem;display:grid}.case-meta__item--wide{grid-column:span 5}.case-meta__item:last-child{grid-column:span 3}.case-meta__links{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.case-body{padding-top:var(--section-y);row-gap:1rem}.case-body__label{grid-column:1/4}.case-body__text{grid-column:4/-1;max-width:32ch}.case-shot{margin-top:var(--section-y);aspect-ratio:16/9;background:var(--c-ink);border-radius:4px;overflow:hidden}.case-shot img{object-fit:cover;width:100%;height:100%}.case-shot--empty{border:1px dashed var(--c-rule);background:0 0;place-items:center;display:grid}.case-shot__placeholder{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.04em;color:var(--c-muted)}.next-project{margin-top:var(--section-y);border-top:1px solid var(--c-rule);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.5rem 1rem;padding-top:1rem;display:grid}.next-project .label{grid-column:1/-1}.next-project__arrow{transition:translate .6s var(--ease-expo);font-size:clamp(2rem,4vw,4rem);line-height:1}.next-project:hover .next-project__arrow{translate:.25em}.about-bio{padding-top:var(--section-y);row-gap:2rem}.about-bio__text{grid-column:4/11}.about-bio__notes{grid-column:4/11;gap:.5rem;display:grid}.stack-hint{display:none}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.stack-hint{display:block}}.tags-box{border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);touch-action:pan-y;height:clamp(20rem,34vw,30rem);position:relative;overflow:hidden}.tags{flex-wrap:wrap;align-content:flex-end;gap:6px;height:100%;padding:1rem 0;display:flex}.tags.is-live{cursor:grab;padding:0;display:block}.tags.is-live:active{cursor:grabbing}.tag-pill{border:1px solid var(--c-ink);background:var(--c-paper);letter-spacing:-.02em;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;padding:.55em 1.1em;font-size:clamp(.85rem,.7rem + .6vw,1.25rem);font-weight:500}.tags.is-live .tag-pill{will-change:transform;position:absolute;top:0;left:0}[data-group=language]{--group:#4a2f80;--group-ink:#f4efff}[data-group=framework]{--group:#7a5ca8;--group-ink:#fff}[data-group=data]{--group:#c9b0ee;--group-ink:#1f1433}[data-group=infra]{--group:#e3364a;--group-ink:#fff}.tag-pill[data-group]{border-color:var(--group);background:var(--group);color:var(--group-ink)}.tags-legend{color:var(--c-muted);flex-wrap:wrap;gap:.5rem 1.5rem;padding-top:1rem;display:flex}.tags-legend li{align-items:center;gap:.5em;display:flex}.tags-legend li:before{content:"";background:var(--group);border-radius:50%;width:.75em;height:.75em}.timeline{padding-top:var(--section-y);row-gap:1rem}.timeline__label{grid-column:1/4}.timeline__list{grid-column:4/-1}.timeline__item{gap:.35rem var(--gap);border-top:1px solid var(--c-rule);grid-template-columns:10rem minmax(0,1fr);padding-block:1.25rem;display:grid}.timeline__title,.timeline__detail{grid-column:2}.timeline__detail{max-width:52ch;color:var(--c-muted)}.site-footer{padding-inline:var(--gutter);padding-bottom:var(--gutter);margin-top:clamp(8rem,18vw,18rem)}.site-footer__panel{isolation:isolate;color:#161614;background:radial-gradient(70% 120% at 0 100%,#ffbe4ae6,#0000 72%),radial-gradient(70% 120% at 100% 0,#4b74ffd1,#0000 70%),linear-gradient(125deg,#f47d55 0%,#e58ab2 52%,#9ea7f8 100%);padding:clamp(1.25rem,3.5vw,3rem);position:relative;overflow:clip}.site-footer__liquid{z-index:-1;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity 1.2s;position:absolute;inset:0}.site-footer__liquid[data-ready]{opacity:1}.site-footer__cta{gap:.75rem;margin-bottom:clamp(3rem,8vw,7rem);display:grid}.site-footer__cta>.label,.site-footer__panel .muted{color:#1616149e}.site-footer__contact{color:#161614;font-family:var(--font-anton), Impact, sans-serif;letter-spacing:-.045em;justify-self:start;font-size:clamp(3.25rem,9vw,9rem);font-weight:400;line-height:.85}.site-footer__row{border-top:1px solid #16161438;align-items:end;row-gap:2rem;padding-top:clamp(1.5rem,3vw,2.5rem)}.site-footer__socials{grid-column:1/6;gap:.5rem;display:grid}.site-footer__socials ul{flex-wrap:wrap;gap:.25rem .9rem;display:flex}.site-footer__time{grid-column:7/11;align-items:baseline;gap:.5rem;display:flex}.site-footer__clock{font-size:var(--fs-h3);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-weight:500}.site-footer__copy{grid-column:12/-1;justify-self:end}.library{height:calc(100svh - var(--header-h));min-height:34rem;padding-block:1rem var(--gutter);grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1rem,2vw,2rem);display:grid}.library__dial{min-height:0;position:relative}.library__count,.library__help{z-index:2;pointer-events:none;position:absolute;left:0}.library__count{top:0}.library__help{bottom:0}.dial{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;outline:none;position:absolute;inset:0;overflow:hidden}.dial.is-dragging{cursor:grabbing}.dial:focus-visible{box-shadow:inset 0 0 0 1px var(--c-rule);border-radius:12px;outline:none}.dial__ticks{pointer-events:none;position:absolute;inset:0}.dial__rotor{width:0;height:0;position:absolute}.dial__tick{background:var(--c-ink);opacity:.2;transform-origin:0;border-radius:1px;height:1px;position:absolute;top:0;left:0}.dial__tick--major{opacity:.42;height:1.5px}.dial__item{color:var(--c-muted);font:inherit;white-space:nowrap;transform-origin:0;will-change:transform;cursor:inherit;transition:color .3s var(--ease-quart);background:0 0;border:0;align-items:baseline;gap:.6rem;padding:0;display:flex;position:absolute;top:0;left:0}.dial__num{font-family:var(--font-mono);letter-spacing:.04em;font-size:.7rem}.dial__label{letter-spacing:-.03em;font-size:clamp(1.1rem,.8rem + .9vw,1.6rem);font-weight:450;line-height:1}.dial__item.is-active{color:var(--c-ink)}.dial__item.is-active .dial__label{font-weight:600}.dial__cover{pointer-events:none;background:conic-gradient(from 0deg at var(--dial-cx,0) var(--dial-cy,50%), var(--c-paper) 0deg 12deg, transparent 38deg 142deg, var(--c-paper) 168deg 360deg);position:absolute;inset:0}.dial__index{background:var(--c-ink);opacity:.85;pointer-events:none;width:28px;height:1.5px;position:absolute;top:50%;transform:translateY(-.75px)}.dial__knob{background:var(--c-ink);color:var(--c-paper);pointer-events:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 2px #0000001f,0 10px 28px -12px #00000059}.dial__grip{background:currentColor;border-radius:2px;width:46%;height:2px}.library__panel{flex-direction:column;gap:1rem;min-height:0;display:flex}.library__head{justify-content:space-between;align-items:end;gap:1rem;display:flex}.library__title{gap:.35rem;display:grid;overflow:hidden}.library__name{font-size:var(--fs-h3);letter-spacing:-.04em;animation:lib-rise .6s var(--ease-expo);font-weight:500;line-height:1}.library__tabs{border:1px solid var(--c-rule);border-radius:999px;gap:4px;padding:3px;display:flex}.library__tab{color:var(--c-muted);cursor:pointer;transition:background .3s var(--ease-quart), color .3s var(--ease-quart);background:0 0;border:0;border-radius:999px;padding:.5em 1em}.library__tab[aria-selected=true]{background:var(--c-ink);color:var(--c-paper)}.library__stage{border:1px solid var(--c-rule);background:color-mix(in srgb, var(--c-ink) 3%, var(--c-paper));border-radius:14px;flex:1;min-height:0;position:relative;overflow:hidden}.library__stage>*{transition:opacity .25s var(--ease-quart)}.library__stage.is-switching>*{opacity:.25}.library__demo{animation:lib-fade .5s var(--ease-quart);position:absolute;inset:0}.library__meta{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.75rem 2rem;display:grid}.library__summary{max-width:60ch;font-size:.95rem;line-height:1.45}.library__facts{text-align:right;gap:.6rem;display:grid}.library__facts dd{margin-top:.15rem}@keyframes lib-rise{0%{translate:0 100%}}@keyframes lib-fade{0%{opacity:0}}.lib-demo{position:absolute;inset:0}.lib-demo--center{text-align:center;place-content:center;justify-items:center;gap:1rem;padding:2rem;display:grid}.lib-demo__big{letter-spacing:-.04em;font-size:clamp(1.6rem,1rem + 2vw,2.8rem);font-weight:500;line-height:1.05}.lib-demo__hint{text-align:center;width:max-content;max-width:calc(100% - 2rem);position:absolute;bottom:1rem;left:50%;translate:-50%}.lib-demo__btn{border:1px solid var(--c-rule);background:var(--c-paper);color:var(--c-ink);cursor:pointer;border-radius:999px;padding:.6em 1.1em}.lib-demo__btn--big{border-color:var(--c-ink);padding:.9em 1.5em}.lib-demo--liquid{isolation:isolate;color:#161614;background:radial-gradient(70% 120% at 0 100%,#ffbe4ae6,#0000 72%),radial-gradient(70% 120% at 100% 0,#4b74ffd1,#0000 70%),linear-gradient(125deg,#f47d55 0%,#e58ab2 52%,#9ea7f8 100%);place-content:center;display:grid}.lib-demo--trail .trail__content{height:100%}.lib-demo--tags{padding:0 1rem}.lib-demo--tags .tags-box{border:0;height:100%}.lib-demo--scroll{overscroll-behavior:contain;overflow:auto}.lib-demo--rows{padding:1rem;overflow:auto}.lib-demo__reveal{gap:.75rem;display:grid}.lib-demo--readouts .lib-demo__big{font-variant-numeric:tabular-nums}.lib-code{animation:lib-fade .4s var(--ease-quart);flex-direction:column;display:flex;position:absolute;inset:0}.lib-code__bar{border-bottom:1px solid var(--c-rule);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .75rem;display:flex}.lib-code__files{gap:4px;display:flex;overflow-x:auto}.lib-code__file,.lib-code__copy{color:var(--c-muted);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.45em .9em}.lib-code__file[aria-selected=true]{border-color:var(--c-rule);color:var(--c-ink)}.lib-code__copy{border-color:var(--c-ink);color:var(--c-ink)}.lib-code__path{padding:.6rem 1rem 0}.lib-code__file,.lib-code__path{text-transform:none}.lib-code__body{overscroll-behavior:contain;min-height:0;font-family:var(--font-mono);flex:1;padding:.75rem 1rem 1.5rem;font-size:.78rem;line-height:1.6;overflow:auto}.lib-code__body pre{font-family:inherit;background:0 0!important}.lib-code__body .shiki,.lib-code__body .shiki span{color:var(--shiki-light)}html[data-theme=dark] .lib-code__body .shiki,html[data-theme=dark] .lib-code__body .shiki span{color:var(--shiki-dark)}.lib-code__status{place-content:center;display:grid;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.library__name,.library__demo,.lib-code{animation:none}}@media (max-width:991px){.hero__lede,.page-head__lede,.case-head__lede{grid-column:4/-1}.case-meta__item,.case-meta__item:last-child{grid-column:span 6}.case-meta__item--wide{grid-column:1/-1}.site-footer__socials{grid-column:span 6}.site-footer__time{grid-column:span 9}.site-footer__copy{grid-column:span 3}}@media (max-width:767px){.site{--header-h:76px}.library{grid-template-rows:44svh auto;grid-template-columns:minmax(0,1fr);height:auto}.library__meta{grid-template-columns:minmax(0,1fr)}.library__stage{flex:none;height:72svh;min-height:30rem}.dial__label{font-size:1.15rem}.library__facts{text-align:left}.hud__chip--wide{display:none}.site-header__bar{grid-template-columns:auto 1fr auto}.cmdk{display:none}.site-header__burger{border:1px solid var(--c-rule);background:var(--c-paper);height:34px;color:inherit;font-family:var(--font-mono);text-transform:uppercase;cursor:pointer;border-radius:7px;padding:0 12px;font-size:.75rem;display:block}.site-header__center{top:100%;left:var(--gutter);right:var(--gutter);display:none;position:absolute}.site-header.is-open .site-header__center{display:block}.navpill{height:auto;padding:6px}.navpill__pill{display:none}.navpill__list{flex-direction:column;align-items:stretch;width:100%}.site .navpill__link{padding:12px;font-size:1.25rem}.site .navpill__link[aria-current=page]{background:color-mix(in srgb, var(--c-ink) 8%, transparent);border-radius:5px}.hero__lede,.page-head__lede,.case-head__lede,.intro__label,.intro__body,.case-body__label,.case-body__text,.about-bio__text,.about-bio__notes,.timeline__label,.timeline__list{grid-column:1/-1}.work-rows__head,.work-row{grid-template-columns:2.5rem minmax(0,1fr) 2rem}.work-row__categories{grid-column:2;font-size:.625rem}.work-rows__hide-sm{display:none}.timeline__item{grid-template-columns:minmax(0,1fr)}.timeline__title,.timeline__detail{grid-column:1}.site-footer__socials,.site-footer__time,.site-footer__copy{grid-column:1/-1;justify-self:start}}
