@layer base{:root{--transition-duration:.3s;--transition-fade:.2s;--transition-sheet:.5s;--transition-ease:cubic-bezier(.2, 0, 0, 1);--transition-slow:1}:root:active-view-transition-type(slow){--transition-slow:10}::view-transition-group(*){z-index:2;animation-duration:calc(var(--transition-duration) * var(--transition-slow));animation-timing-function:var(--transition-ease)}::view-transition-group(root){z-index:0}::view-transition-group(case-sheet){z-index:1}::view-transition-old(root),::view-transition-new(root){animation-duration:calc(var(--transition-fade) * var(--transition-slow))}:root:active-view-transition-type(case-open)::view-transition-old(site-header),:root:active-view-transition-type(case-open)::view-transition-new(site-header){animation-delay:calc(var(--transition-sheet) * var(--transition-slow));animation-duration:calc(.25s * var(--transition-slow))}@supports not (view-transition-group:contain){:root:active-view-transition-type(header-hidden)::view-transition-group(*.header){animation-name:none}:root:active-view-transition-type(header-hidden)::view-transition-old(*.header){display:none}}::view-transition-group(*.header){animation-duration:var(--header-part)}::view-transition-new(*.crumb):only-child,::view-transition-old(*.crumb):only-child,::view-transition-new(*.wordmark-rest):only-child,::view-transition-old(*.wordmark-rest):only-child,:root:active-view-transition-type(crumb-1-changes)::view-transition-old(crumb-1),:root:active-view-transition-type(crumb-1-changes)::view-transition-new(crumb-1),:root:active-view-transition-type(crumb-2-changes)::view-transition-old(crumb-2),:root:active-view-transition-type(crumb-2-changes)::view-transition-new(crumb-2){--edge-angle:90deg;--edge-cut:0rem;--edge-soft:.25rem;--edge-margin:.375rem;mask-image:linear-gradient(var(--edge-angle), transparent calc(50% - var(--edge-soft)), #000 50%);mask-size:300% 100%;mask-repeat:no-repeat}::view-transition-new(*.crumb):only-child,::view-transition-old(*.crumb):only-child,:root:active-view-transition-type(crumb-1-changes)::view-transition-old(crumb-1),:root:active-view-transition-type(crumb-1-changes)::view-transition-new(crumb-1),:root:active-view-transition-type(crumb-2-changes)::view-transition-old(crumb-2),:root:active-view-transition-type(crumb-2-changes)::view-transition-new(crumb-2){--edge-angle:calc(90deg + var(--slash-angle));--edge-cut:.375rem}::view-transition-new(*.crumb):only-child,::view-transition-new(*.wordmark-rest):only-child{animation-name:edge-in}::view-transition-old(*.crumb):only-child,::view-transition-old(*.wordmark-rest):only-child{animation-name:edge-out}:root{--header-part:calc(.22s * var(--transition-slow));--crumbs-start:0s;--crumb-2-lag:0s;--crumb-1-lag-out:0s;--name-start:0s}:root:active-view-transition-type(name-folds){--crumbs-start:var(--header-part)}:root:active-view-transition-type(crumbs-in-2){--crumb-2-lag:var(--header-part)}:root:active-view-transition-type(crumbs-out-1){--name-start:var(--header-part)}:root:active-view-transition-type(crumbs-out-2){--crumb-1-lag-out:var(--header-part);--name-start:calc(2 * var(--header-part))}:root{--crumb-1-swap:0s}:root:active-view-transition-type(crumbs-out-1):active-view-transition-type(crumb-1-changes){--crumb-1-lag-out:var(--header-part)}:root:active-view-transition-type(crumb-1-changes){--crumb-1-swap:calc(var(--crumb-1-lag-out) + var(--header-part))}::view-transition-new(crumb-1),::view-transition-new(crumb-slash-1){animation-delay:calc(var(--crumbs-start) + var(--crumb-1-swap))}::view-transition-new(crumb-2),::view-transition-new(crumb-slash-2){animation-delay:calc(var(--crumbs-start) + var(--crumb-2-lag) + var(--crumb-1-swap))}::view-transition-old(crumb-1),::view-transition-old(crumb-slash-1){animation-delay:var(--crumb-1-lag-out)}::view-transition-new(*.slash):only-child{animation-name:header-show}::view-transition-old(*.slash):only-child{animation-name:header-hide}::view-transition-group(wordmark-initial-2),::view-transition-old(wordmark-rest-1),::view-transition-new(wordmark-rest-1){animation-duration:calc(var(--header-part) * var(--name-rest-1,1))}::view-transition-old(wordmark-rest-2),::view-transition-new(wordmark-rest-2){animation-duration:calc(var(--header-part) * var(--name-rest-2,1))}:root:active-view-transition-type(name-unfolds)::view-transition-group(wordmark-rest-2){animation:name-follow-in calc(var(--header-part) * var(--name-rest-1,1)) var(--transition-ease) var(--name-start) both}:root:active-view-transition-type(name-folds)::view-transition-group(wordmark-rest-2){animation:name-follow-out calc(var(--header-part) * var(--name-rest-1,1)) var(--transition-ease) both}::view-transition-group(wordmark-initial-2),::view-transition-group(wordmark-rest-2),::view-transition-new(wordmark-rest-1),::view-transition-new(wordmark-rest-2){animation-delay:var(--name-start)}::view-transition-new(case-rail):only-child{animation-name:rail-in}::view-transition-old(case-rail):only-child{animation-name:rail-out}:root:active-view-transition-type(case-open,case-close)::view-transition-group(case-sheet),:root:active-view-transition-type(case-open,case-close)::view-transition-group(case-media),:root:active-view-transition-type(case-open,case-close)::view-transition-group(case-title),:root:active-view-transition-type(case-open,case-close)::view-transition-group(case-tags),:root:active-view-transition-type(case-open,case-close)::view-transition-group(*.case-line),:root:active-view-transition-type(case-open,case-close)::view-transition-group(case-rail){animation-duration:calc(var(--transition-sheet) * var(--transition-slow))}:root:active-view-transition-type(case-open,case-close)::view-transition-group(case-sheet){margin-top:calc(-1 * var(--rule));border-block:var(--rule) solid var(--line-solid)}:root:active-view-transition-type(case-open,case-close)::view-transition-image-pair(case-sheet){background:var(--paper)}:root:active-view-transition-type(case-open,case-close)::view-transition-old(case-media),:root:active-view-transition-type(case-open,case-close)::view-transition-old(case-title),:root:active-view-transition-type(case-open,case-close)::view-transition-old(case-tags),:root:active-view-transition-type(case-open,case-close)::view-transition-old(*.case-line){display:none}:root:active-view-transition-type(case-open,case-close)::view-transition-new(case-media),:root:active-view-transition-type(case-open,case-close)::view-transition-new(case-title),:root:active-view-transition-type(case-open,case-close)::view-transition-new(case-tags),:root:active-view-transition-type(case-open,case-close)::view-transition-new(*.case-line){animation:none}:root:active-view-transition-type(case-open,case-close)::view-transition-new(case-media){object-fit:cover;height:100%}:root:active-view-transition-type(case-open,case-close)::view-transition-old(*.case-line):only-child{animation:case-fade-out calc(var(--transition-sheet) * .4 * var(--transition-slow)) ease both;display:block}:root:active-view-transition-type(case-open,case-close)::view-transition-new(*.case-line):only-child{animation:case-row-in calc(var(--transition-sheet) * var(--transition-slow)) ease both}:root:active-view-transition-type(case-open)::view-transition-old(root){animation:none}:root:active-view-transition-type(case-open)::view-transition-new(root){animation:case-page-in calc(var(--transition-sheet) * var(--transition-slow)) linear both}:root:active-view-transition-type(case-open)::view-transition-image-pair(case-sheet){animation:case-sheet-clear calc(var(--transition-sheet) * var(--transition-slow)) ease both}:root:active-view-transition-type(case-open)::view-transition-old(case-number),:root:active-view-transition-type(case-open)::view-transition-old(case-cta){animation:case-fade-out calc(var(--transition-sheet) * .4 * var(--transition-slow)) ease both}:root:active-view-transition-type(case-open,case-close)::view-transition-old(case-sheet),:root:active-view-transition-type(case-open,case-close)::view-transition-new(case-sheet){display:none}:root:active-view-transition-type(case-close)::view-transition-old(root){display:none}:root:active-view-transition-type(case-close)::view-transition-new(root){animation:none}:root:active-view-transition-type(case-close)::view-transition-new(case-number),:root:active-view-transition-type(case-close)::view-transition-new(case-cta){animation:case-row-in calc(var(--transition-sheet) * var(--transition-slow)) ease both}:root{--transition-slide:.45s}:root:active-view-transition-type(case-next,case-previous)::view-transition-old(root),:root:active-view-transition-type(case-next,case-previous)::view-transition-new(root){animation-duration:calc(var(--transition-slide) * var(--transition-slow));animation-timing-function:var(--transition-ease);mix-blend-mode:normal;animation-fill-mode:both}:root:active-view-transition-type(case-next)::view-transition-old(root){animation-name:slide-out-left}:root:active-view-transition-type(case-next)::view-transition-new(root){animation-name:slide-in-right}:root:active-view-transition-type(case-previous)::view-transition-old(root){animation-name:slide-out-right}:root:active-view-transition-type(case-previous)::view-transition-new(root){animation-name:slide-in-left}:root:active-view-transition-type(crumb-1-changes)::view-transition-group(crumb-1),:root:active-view-transition-type(crumb-2-changes)::view-transition-group(crumb-2){animation-name:none}:root:active-view-transition-type(crumb-1-changes)::view-transition-old(crumb-1),:root:active-view-transition-type(crumb-1-changes)::view-transition-new(crumb-1),:root:active-view-transition-type(crumb-2-changes)::view-transition-old(crumb-2),:root:active-view-transition-type(crumb-2-changes)::view-transition-new(crumb-2){inline-size:auto;animation-duration:var(--header-part);animation-timing-function:var(--transition-ease);animation-fill-mode:both}:root:active-view-transition-type(crumb-1-changes)::view-transition-old(crumb-1),:root:active-view-transition-type(crumb-2-changes)::view-transition-old(crumb-2){animation-name:edge-out}:root:active-view-transition-type(crumb-1-changes)::view-transition-new(crumb-1),:root:active-view-transition-type(crumb-2-changes)::view-transition-new(crumb-2){animation-name:edge-in}:root:active-view-transition-type(crumb-2-changes)::view-transition-new(crumb-2){animation-delay:calc(var(--header-part) + var(--crumb-1-swap))}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-image-pair(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}:root{color-scheme:dark;--paper:#000;--surface:#0d0d0d;--surface-2:#151515;--ink:#fff;--ink-soft:#d6d6d6;--muted:#8f8f8f;--faint:#5a5a5a;--rule:2px;--slash-angle:20deg;--line:#34343480;--line-strong:#4c4c4c80;--line-solid:#1a1a1a;--dotted-rule:radial-gradient(circle closest-side, #40404080 85%, transparent) left top / 10px 4px repeat-x;--dot-color:#40404080;--dot-size:2px;--dot-step:5px;--dotted-rule-fine:radial-gradient(circle closest-side, var(--dot-color) 85%, transparent) left top / var(--dot-step) var(--dot-size) repeat-x;--accent:#aee400;--selection-ink:var(--accent);--selection-paper:#000;--code-bg:#ffffff14;--diagram-core:#0e170b;--diagram-accounting:#17130c;--header-bg:#000000e6;--sans:var(--font-inter), system-ui, sans-serif;--quote:var(--font-geologica), var(--sans);--mono:var(--font-geist-mono), ui-monospace, monospace;--display-axes:"opsz" 32;--quote-axes:"SHRP" 20, "slnt" -12;--radius-round:.625rem;--radius-button-round:.75rem;--radius-media-round:.875rem;--radius-xs-round:.25rem;--radius:var(--radius-round);--radius-button:var(--radius-button-round);--radius-media:var(--radius-media-round);--radius-xs:var(--radius-xs-round);--icon-stroke:1.5;--header-h:4.75rem;--gutter:3rem;--max:70rem;--page-inset:max(var(--gutter), calc((100% - var(--max)) / 2));font-size:clamp(100%,.625vw + 50%,125%);font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-padding-top:calc(var(--header-h) + 1rem)}@media (color-gamut:p3){:root{--accent:oklch(85% .27 125)}}@supports (corner-shape:superellipse(1.5)){:root{--radius:calc(var(--radius-round) * 1.5);--radius-button:calc(var(--radius-button-round) * 1.5);--radius-media:calc(var(--radius-media-round) * 1.5);--radius-xs:calc(var(--radius-xs-round) * 1.5);--corner-shape:superellipse(1.5)}}@media (width<=760px){:root{--gutter:2rem;--header-h:4rem;--dot-size:3px;--dot-step:8px;--dotted-rule:var(--dotted-rule-fine)}}@media (width<=480px){:root{--gutter:1.25rem}}*{box-sizing:border-box}body{background:var(--paper);-webkit-tap-highlight-color:transparent;margin:0;overflow-x:clip}a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent)}a:hover{color:var(--accent);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--focus-ring,var(--accent));outline-offset:.25rem}::selection{background-color:var(--selection-ink);color:var(--selection-paper)}h1,h2,h3,p,figure,blockquote{margin:0}h1{letter-spacing:-.0225em;text-wrap:balance;font-size:clamp(3.2rem,8vw,6.4rem);line-height:.765}h2{letter-spacing:-.015em;text-wrap:balance;font-size:clamp(1.75rem,3vw,2.4rem);line-height:1.15}h3{letter-spacing:-.01em}p{text-wrap:pretty;line-height:1.7}ul,ol{margin:0;padding:0}img,video{max-width:100%;height:auto;display:block}button,input{font:inherit;color:inherit}.icon{width:1em;height:1em;stroke-width:var(--icon-stroke);vertical-align:-.14em;flex:none;overflow:visible}.icon:is(.icon-arrow-right,.icon-arrow-left,.icon-arrow-down,.icon-arrow-up-right){stroke-width:calc((.0128 + var(--text-weight,400) * .000193) * .85em)}.icon:is(.icon-arrow-right,.icon-arrow-left,.icon-arrow-down,.icon-arrow-up-right) path{vector-effect:non-scaling-stroke}.accent-text{color:var(--accent)}.eyebrow{color:var(--ink);font-size:.8125rem;font-weight:600;line-height:1.65}.eyebrow:before{content:"";background:var(--accent);vertical-align:-1px;width:.625rem;height:.625rem;margin-right:.625rem;display:inline-block}.meta{font-family:var(--mono);font-size:.8125rem;line-height:1.65}dt{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.7rem;line-height:1.6}.meta,.muted{color:var(--muted)}.lead{max-width:38rem;color:var(--ink-soft);font-size:clamp(1.125rem,2vw,1.3rem);line-height:1.6}}@layer layout{@media (width<=760px){.contact-actions .button{width:100%}}.wrap{width:min(var(--max), calc(100% - 2 * var(--gutter)));margin-inline:auto}main.wrap{padding-bottom:3.5rem}main.wrap:has(>:is(.work-index,.home-section):last-child){padding-bottom:0}.page-intro{padding-block:3.5rem}.page-intro h1{margin-top:1.25rem}.page-intro .lead{margin-top:1.5rem}.page-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.home-section{padding:6.5rem var(--page-inset)}.home-section+.home-section{border-top:var(--rule) solid var(--line)}.work-index{margin-inline:calc(50% - 50vw)}.section-heading{gap:.75rem;margin-bottom:2.75rem;display:grid}.section-heading h2{letter-spacing:-.02em;font-size:clamp(2.6rem,5.8vw,4.64rem);line-height:.765}.section-note{color:var(--muted);font-size:.9375rem;font-weight:600}main.wrap>.home-section{width:100vw;padding-inline:max(var(--gutter), calc((100vw - var(--max)) / 2));margin-left:calc(50% - 50vw)}@media (width<=760px){.page-intro{padding-block:2.25rem 2.5rem}.home-section{padding-block:4.5rem}.section-heading{justify-items:start;margin-bottom:2rem}.section-heading h2{font-size:clamp(2.2rem,10vw,2.6rem)}main.wrap{padding-bottom:2.5rem}h1{font-size:clamp(2.6rem,12vw,3.2rem)}.lead,.contact-copy{font-size:1.0625rem}}.page-intro:not(.project-intro) h1:first-child{margin-top:0}.wordmark[data-astro-cid-qisgtjgl]{white-space:nowrap;align-items:center;gap:.75rem;min-height:2.75rem;text-decoration:none;display:inline-flex}.wordmark-avatar[data-astro-cid-qisgtjgl]{object-fit:cover;object-position:50% 20%;border-radius:50%;flex:none;width:2rem;height:2rem}.wordmark-text[data-astro-cid-qisgtjgl]{line-height:1.2;display:grid}.wordmark-name[data-astro-cid-qisgtjgl],.wordmark-word[data-astro-cid-qisgtjgl]{display:inline-flex}.wordmark-name[data-astro-cid-qisgtjgl]{letter-spacing:-.01em;flex-wrap:wrap;column-gap:.28em;font-size:1.05rem}.wordmark-name[data-astro-cid-qisgtjgl][data-short]{column-gap:0}.site-menu{width:100%;max-width:none;height:100dvh;max-height:none;padding:0 var(--gutter) max(1.75rem, env(safe-area-inset-bottom));background:var(--accent);color:#000;--selection-ink:#fff;overscroll-behavior:contain;clip-path:inset(0 0 100%);transition:clip-path .42s cubic-bezier(.7, 0, .2, 1), overlay .42s allow-discrete, display .42s allow-discrete;--focus-ring:#000;border:0;flex-direction:column;margin:0;position:fixed;inset:0;overflow-y:auto}.site-menu:popover-open{clip-path:inset(0);display:flex}@starting-style{.site-menu:popover-open{clip-path:inset(0 0 100%)}}.site-menu::backdrop{background:0 0}html:has(.site-menu:popover-open){overflow:hidden}.site-menu a{color:#000}.menu-head{height:var(--header-h);flex:none;justify-content:space-between;align-items:center;display:flex}.menu-close{border-radius:var(--radius);cursor:pointer;corner-shape:var(--corner-shape,round);background:0 0;border:0;place-items:center;width:2.75rem;height:2.75rem;margin-right:-.625rem;padding:0;display:inline-grid}.menu-close .icon{width:1.5rem;height:1.5rem}.menu-nav{margin-top:1.5rem}.menu-nav ol{border-top:var(--rule) solid #0000001a;list-style:none}.menu-nav li{border-bottom:var(--rule) solid #0000001a}.menu-nav a{letter-spacing:-.0225em;align-items:center;gap:1rem;padding-block:.75rem;font-size:clamp(3rem,15vw,4.5rem);line-height:.765;text-decoration:none;display:flex}.menu-nav a[aria-current=page] .menu-label{text-underline-offset:.5rem;text-decoration:underline .25rem}.menu-index{min-width:2ch;font-family:var(--mono);letter-spacing:.04em;color:#0000008c;align-self:flex-start;padding-top:.625rem;font-size:.75rem;font-weight:400}.menu-contact{margin-top:auto;padding-top:2.5rem;list-style:none}.menu-contact li+li{border-top:var(--rule) solid #0000001a}.menu-contact a{overflow-wrap:anywhere;align-items:center;gap:.75rem;min-height:3.25rem;padding-block:.5rem;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}@media (prefers-reduced-motion:reduce){.site-menu{--focus-ring:#000;transition:none}}@media (width<=760px){.menu-nav a{padding-block:.625rem;font-size:clamp(2.25rem,10vw,3rem)}.menu-nav a[aria-current=page] .menu-label{text-underline-offset:.375rem;text-decoration-thickness:.1875rem}.menu-index{padding-top:.375rem}}.site-header{z-index:50;background:var(--header-bg);transition:background-color .25s,transform .3s;position:sticky;top:0}:root:not([data-scrolled]) .site-header{background:0 0}[data-scroll-dir=down] .site-header{transform:translateY(-100%)}:root:has(.site-menu:popover-open) .site-header{transform:none}.header-bar{width:min(var(--max), calc(100% - 2 * var(--gutter)));height:var(--header-h);align-items:center;gap:1.75rem;margin-inline:auto;display:flex}.primary-nav{align-items:center;gap:.25rem;margin-left:auto;display:flex}.primary-nav a{border-radius:var(--radius);corner-shape:var(--corner-shape,round);align-items:center;gap:.5rem;min-height:2.5rem;padding:0 .875rem;font-size:.9375rem;font-weight:600;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex;position:relative}.primary-nav a[aria-current=page]:after{content:"";inset-inline:.875rem;background:var(--accent);height:2px;position:absolute;bottom:0}.menu-button{border-radius:var(--radius);cursor:pointer;corner-shape:var(--corner-shape,round);background:0 0;border:0;place-items:center;width:2.75rem;height:2.75rem;margin-left:auto;margin-right:-.625rem;padding:0;display:none}.menu-button .icon{width:1.5rem;height:1.5rem}html:has(.site-menu:popover-open) .menu-button{visibility:hidden}@media (width<=760px){.primary-nav{display:none}.menu-button{display:inline-grid}}.header-trail{align-items:center;min-width:0;display:flex}.header-trail ol{align-items:center;gap:.625rem;min-width:0;list-style:none;display:flex}.header-trail li{white-space:nowrap;flex:none;align-items:center;gap:.625rem;display:flex}.crumb-slash{background:var(--faint);width:1.5px;height:1.0625rem;rotate:var(--slash-angle);flex:none}.header-trail li:last-child{flex:0 auto;min-width:0}.header-trail li>a:not(.wordmark),.header-trail [aria-current=page]:not(.wordmark){text-overflow:ellipsis;color:var(--muted);font-size:.9375rem;font-weight:500;text-decoration:none;overflow:hidden}.header-trail li>a:not(.wordmark):hover{color:var(--accent)}.header-trail span[aria-current=page]:not(.wordmark){color:var(--ink)}@media (width<=760px){.header-trail li>a:not(.wordmark),.header-trail [aria-current=page]:not(.wordmark){font-size:.875rem}}.site-footer{background:var(--surface)}.page-home .site-footer{position:relative}.footer-inner{--row:2.25rem;width:min(var(--max), calc(100% - 2 * var(--gutter)));padding-block:4.5rem max(4.5rem, env(safe-area-inset-bottom));color:var(--muted);font-size:.9375rem;font-weight:500;line-height:var(--row);grid-template-columns:repeat(3,minmax(0,1fr));column-gap:2rem;margin-inline:auto;display:grid}.footer-inner a{color:inherit;transition:color .15s}.footer-inner a:hover{color:var(--ink)}.footer-id .wordmark{min-height:var(--row)}.footer-id .wordmark-text{line-height:var(--row)}.footer-note{line-height:inherit}.footer-nav,.footer-contact{flex-direction:column;align-items:flex-start;list-style:none;display:flex}.footer-nav a,.footer-contact a{min-height:var(--row);align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:inline-flex}.footer-id>a{width:fit-content;min-height:var(--row);align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:flex}.footer-contact li{display:flex}.footer-contact .icon{width:.875rem;height:.875rem}@media (width<=760px){.footer-inner{column-gap:1rem}.footer-id .wordmark{white-space:normal}}}@layer components{.button{min-height:3.125rem;padding:0 var(--pad-text);border-radius:var(--radius-button);font-family:var(--sans);white-space:nowrap;cursor:pointer;corner-shape:var(--corner-shape,round);--text-weight:700;--pad-text:1.0625rem;--pad-icon:.9375rem;border:2px solid #0000;justify-content:center;align-items:center;gap:.625rem;font-size:1rem;font-weight:700;line-height:1.1;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.button:has(>.icon:first-child){padding-left:var(--pad-icon)}.button:has(>.icon:last-child){padding-right:var(--pad-icon)}.button .icon{width:1.125rem;height:1.125rem}.button-primary{background:var(--accent);color:#000}.button-secondary{border-width:var(--rule);border-color:var(--line-strong);color:var(--ink);background:0 0}@media (hover:hover) and (pointer:fine){.button:hover{color:#000;background:#fff}.button-secondary:hover{border-color:#fff}}@media (width<=760px){.button{--pad-text:.875rem;--pad-icon:.8125rem;min-height:2.75rem;font-size:.9375rem}.button .icon{width:1rem;height:1rem}}@media (prefers-reduced-motion:reduce){.button{transition:none}}.button-small{--pad-text:.875rem;--pad-icon:.75rem;border-radius:var(--radius);gap:.5rem;min-height:2.75rem;font-size:.875rem}.button-small .icon{width:1rem;height:1rem}:is(.quote blockquote p,.pull p){font-family:var(--quote);font-variation-settings:var(--quote-axes);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;font-weight:100}:is(.quote blockquote p,.pull p):before{content:"“";margin-left:-.426em}:is(.quote blockquote p,.pull p):after{content:"”"}:is(.quote blockquote p,.pull p):before,:is(.quote blockquote p,.pull p):after{letter-spacing:0;color:var(--accent)}.case-sheet{pointer-events:none;position:fixed;inset:0}.site-header{view-transition-group:contain}.description-line{white-space:nowrap;width:fit-content;display:block}.skip-link{background:var(--ink);color:var(--paper);z-index:100;padding:.75rem 1.25rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:none}.text-link{align-items:center;gap:.375rem;font-size:.9375rem;display:inline-flex}.text-link .icon{width:1rem;height:1rem}.text-link>.icon-arrow-up-right:last-child{margin-left:-.1875rem}a .icon{transition:transform .2s}a:hover .icon-arrow-right{transform:translate(.1875rem)}a:hover .icon-arrow-left{transform:translate(-.1875rem)}a:hover .icon-arrow-down{transform:translateY(.1875rem)}a:hover .icon-arrow-up-right{transform:translate(2px,-2px)}.tags{width:fit-content;color:var(--muted);flex-wrap:wrap;gap:.375rem;margin-top:1rem;font-size:.75rem;font-weight:600;line-height:1.65;list-style:none;display:flex}.tags li{background:color-mix(in srgb, currentColor 12%, transparent);color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:.1875rem .625rem}dt{color:var(--muted)}dd{margin:.5rem 0 0;font-size:.95rem;line-height:1.6}@media (prefers-reduced-motion:reduce){a .icon{transition:none}}:is(h1,h2,h3,.work-title,.pager-title,.menu-nav a,.wordmark-name,.case-stats strong,.work-media-fallback){font-family:var(--sans);font-variation-settings:var(--display-axes);font-weight:900}.site-header{view-transition-name:site-header;view-transition-class:header}@media (width<=760px){.header-cta{display:none}}@media (prefers-reduced-motion:reduce){.site-header{transition:none}}.float-button{--float-size:2.75rem;--float-edge:1rem;z-index:40;width:var(--float-size);height:var(--float-size);border:var(--rule) solid var(--line-strong);border-radius:var(--radius-button);color:var(--ink);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;corner-shape:var(--corner-shape,round);background:#000;place-items:center;padding:0;transition:background-color .18s,border-color .18s,color .18s,opacity .18s,visibility .18s;display:grid;position:fixed}.float-button .icon{width:1.25rem;height:1.25rem}.float-button:hover .icon{transform:none}@media (hover:hover) and (pointer:fine){.float-button:hover:not([aria-disabled=true]){color:#000;background:#fff;border-color:#fff}}.float-button:focus-visible{outline-offset:2px}.float-button[aria-disabled=true]{border-color:var(--line);color:var(--faint);cursor:default}.case-arrow{--rail-clear:calc((var(--rail-rows) * .875rem + .75rem) / 2 + 2.5rem + var(--float-size) / 2);top:min(max(82%, 50% + var(--rail-clear)), 100% - var(--float-edge) - var(--float-size) * 1.5 - 1rem);translate:0 -50%}@supports (height:1svh){.case-arrow{top:min(max(82svh, 50svh + var(--rail-clear)), 100svh - var(--float-edge) - var(--float-size) * 1.5 - 1rem)}}.case-arrow-previous{left:var(--float-edge);view-transition-name:case-arrow-previous}.case-arrow-next{right:var(--float-edge);view-transition-name:case-arrow-next}.scroll-top{right:var(--float-edge);bottom:var(--float-edge);view-transition-name:scroll-top}.scroll-top:not(.is-shown){opacity:0;visibility:hidden}@media (width<=760px){.float-button{--float-edge:.75rem}}@media (width<=767px){.case-arrow{top:auto;bottom:10rem;translate:none}}@media (prefers-reduced-motion:reduce){.float-button{transition:none}}}@keyframes case-page-in{0%,50%{opacity:0}50.1%,to{opacity:1}}@keyframes case-sheet-clear{0%,50%{background-color:var(--paper)}to{background-color:#0000}}@keyframes case-fade-out{to{opacity:0}}@keyframes case-row-in{0%,50%{opacity:0}to{opacity:1}}@keyframes edge-in{0%{opacity:0;translate:calc(-100% - var(--edge-cut) - var(--edge-margin)) 0;mask-position:calc(25% + var(--edge-margin)) 0}to{opacity:1;mask-position:calc(75% - var(--edge-cut)) 0;translate:0}}@keyframes edge-out{0%{opacity:1;mask-position:calc(75% - var(--edge-cut)) 0;translate:0}to{opacity:0;translate:calc(-100% - var(--edge-cut) - var(--edge-margin)) 0;mask-position:calc(25% + var(--edge-margin)) 0}}@keyframes rail-in{0%,40%{opacity:0;translate:calc(-100% - 1rem)}}@keyframes rail-out{60%,to{opacity:0;translate:calc(-100% - 1rem)}}@keyframes slide-out-left{to{translate:-100%}}@keyframes slide-in-right{0%{translate:100%}}@keyframes slide-out-right{to{translate:100%}}@keyframes slide-in-left{0%{translate:-100%}}@keyframes header-show{0%{opacity:0}}@keyframes header-hide{to{opacity:0}}@keyframes name-follow-in{0%{translate:calc(-1 * var(--name-shift,0px)) 0}}@keyframes name-follow-out{to{translate:calc(-1 * var(--name-shift,0px)) 0}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
