.link{color:var(--text-primary);font-size:inherit;text-decoration-line:underline;text-decoration-thickness:var(--border-width-hairline);text-decoration-color:color-mix(in oklab, currentcolor 40%, transparent);text-underline-offset:.2em;transition:text-decoration-color var(--transition-base);display:inline-block;position:relative}.link[aria-current=page]{cursor:default;text-decoration-color:#0000}.link>*{user-select:none}@media screen and (hover:hover){.link:is(:hover:not([aria-current=page]),:focus-visible){text-decoration-color:currentColor}}nav#bottom-nav{bottom:calc(1rem + env(safe-area-inset-bottom));border-radius:var(--radius-pill);border:1px solid var(--border-primary);width:fit-content;max-width:calc(100vw - 1rem);z-index:var(--z-dock);background-color:var(--bg-secondary);view-transition-name:bottom-nav;margin-inline:auto;padding:8px 14px;position:fixed;inset-inline:0}:root.🌞 nav#bottom-nav{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.nav-container{align-items:center;gap:var(--space-3xs);display:flex}.nav-section{align-items:center;gap:.625rem;display:flex}.nav-divider{background-color:var(--border-primary);width:1px;height:1.75rem;margin:0 var(--space-xs)}.nav-item{color:var(--text-primary);border-radius:var(--button-radius);cursor:pointer;background-color:#0000;border:none;align-items:center;padding:4px;display:flex;position:relative}.nav-item:has(svg){padding:4px}.nav-item:after{content:"";inset-block:min(-8px, (100% - var(--tap-target-size)) / 2);position:absolute;inset-inline:-2px}.nav-item svg{width:28px;max-width:28px;height:28px;max-height:28px}.nav-link{text-transform:uppercase;flex-shrink:0;padding:6px 10px;font-size:1.75rem;position:relative}@supports (text-box:trim-both cap alphabetic){.nav-link span{text-box:trim-both cap alphabetic}}@supports not (text-box:trim-both cap alphabetic){.nav-link span{line-height:1}}.nav-link[aria-current=page]:before{content:"";border:1.5px solid var(--text-primary);view-transition-name:active-nav;border-radius:8px;position:absolute;inset:-3px -2px}@media screen and (hover:hover){.nav-link:hover{text-decoration:none}.nav-section .nav-item{transition:background-color var(--transition-base)}.nav-section .nav-item:hover:not([aria-current=page]){background-color:var(--hover-background)}}@media screen and (width<=672px),screen and (height<=500px){.nav-container{gap:var(--space-4xs)}.nav-section{gap:var(--space-xs)}.nav-link{padding:6px 7px;font-size:1.5rem}nav#bottom-nav{bottom:calc(.75rem + env(safe-area-inset-bottom));padding:7px 12px}.nav-divider{margin:0 var(--space-3xs)}.nav-item svg{width:24px;max-width:24px;height:24px;max-height:24px}}@media screen and (width<=448px){.nav-link{padding:5px;font-size:1.35rem}.nav-link[aria-current=page]:before{inset:-2px}.nav-item svg{width:22px;max-width:22px;height:22px;max-height:22px}nav#bottom-nav{padding:5px 10px}}@media screen and (width<=420px){.nav-section:has(svg){gap:2px}.nav-section:has(svg) .nav-item{margin:-2px;padding:4px}.nav-link{padding:5px 4px;font-size:1.25rem}.nav-link[aria-current=page]:before{inset:-1px}.nav-item svg{width:16px;max-width:16px;height:16px;max-height:16px}.nav-divider{height:1.25rem;margin:0 2px}nav#bottom-nav{bottom:calc(.5rem + env(safe-area-inset-bottom));padding:5px 6px}}@media screen and (width<=374px){nav#bottom-nav{display:none}}@media screen and (width>=768px) and (height>=501px){nav#bottom-nav{display:none}}.vertical-fade{pointer-events:none;user-select:none;width:100%;z-index:var(--z-fade-top);opacity:0;transition:opacity var(--duration-slowest) var(--ease-out);height:clamp(100px,2.309vw + 90.432px,120px);position:fixed;left:0}.vertical-fade.top{background:linear-gradient(to top, transparent, var(--color-fade));mask-image:linear-gradient(to bottom, var(--color-fade) 35%, transparent);top:0}.vertical-fade.bottom{z-index:var(--z-fade-bottom);background:linear-gradient(to bottom, transparent, var(--color-fade));mask-image:linear-gradient(to top, var(--color-fade) 35%, transparent);bottom:0}.vertical-fade.visible{opacity:1}@media screen and (width>=768px) and (height>=501px){.vertical-fade{display:none}}@media (hover:hover) and (pointer:fine) and (forced-colors:none) and (not (prefers-contrast:more)){html.fancy-cursor-on,html.fancy-cursor-on *{cursor:none!important}html.fancy-cursor-on.fancy-cursor-native,html.fancy-cursor-on.fancy-cursor-native *{cursor:auto!important}html.fancy-cursor-on.fancy-cursor-native input,html.fancy-cursor-on.fancy-cursor-native textarea,html.fancy-cursor-on.fancy-cursor-native select,html.fancy-cursor-on.fancy-cursor-native [contenteditable=true]{cursor:text!important}}.fancy-cursor{display:none}@media (hover:hover) and (pointer:fine) and (forced-colors:none) and (not (prefers-contrast:more)){.fancy-cursor{z-index:var(--z-cursor);pointer-events:none;mix-blend-mode:difference;width:110px;height:110px;transition:opacity var(--duration-base) var(--ease-out);will-change:transform;display:block;position:fixed;top:0;left:0;transform:translate(-100px,-100px)translate(-50%,-50%)}.fancy-cursor[popover]{color:inherit;background:0 0;border:none;margin:0;padding:0;inset:0 auto auto 0;overflow:visible}.fancy-cursor.fancy-cursor-top{mix-blend-mode:normal}.fancy-cursor.fancy-cursor-top .fancy-cursor-ball{background-color:var(--text-primary)}.fancy-cursor.fancy-cursor-top[data-state=hover-text] .fancy-cursor-ball{background-color:#8d8d8d33}.fancy-cursor[hidden]{opacity:0;display:block}.fancy-cursor-ball{color:#fff;width:100%;height:100%;transition:transform var(--duration-base) var(--ease-out);background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:42%;border-radius:50%;justify-content:center;align-items:center;display:flex;transform:scale(.227273)}.fancy-cursor-label{z-index:2;font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;text-align:center;opacity:0;pointer-events:none;max-width:90%;line-height:1.2;position:relative}.fancy-cursor[data-state=hover] .fancy-cursor-ball{transform:scale(.454545)}.fancy-cursor[data-state=hover-text]{mix-blend-mode:normal}.fancy-cursor[data-state=hover-text] .fancy-cursor-ball{backdrop-filter:blur(25px);color:var(--text-highlight);background-color:#8d8d8d33;transform:none}.fancy-cursor[data-state=hover-text] .fancy-cursor-label{opacity:1}.fancy-cursor[data-state=arrow-left] .fancy-cursor-ball,.fancy-cursor[data-state=arrow-right] .fancy-cursor-ball{transform:scale(.727273)}.fancy-cursor[data-state=arrow-left] .fancy-cursor-ball{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E")}.fancy-cursor[data-state=arrow-right] .fancy-cursor-ball{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E")}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:reduce){.fancy-cursor,.fancy-cursor-ball{transition:none}}@media print{.fancy-cursor{display:none!important}}.copy-email.link{font-weight:inherit;font-size:inherit;color:inherit;cursor:pointer;appearance:none;background:0 0;border:0;font-family:inherit;position:relative}.copy-email-icon{opacity:.6;transition:opacity var(--transition-base), color var(--transition-base);margin-inline-start:var(--space-4xs)}@media screen and (hover:hover){.copy-email:is(:hover,:focus-visible) .copy-email-icon{opacity:1}}.copy-email.copied .copy-email-icon{opacity:0}.copy-email-status{color:inherit;opacity:0;white-space:nowrap;border-radius:inherit;transition:opacity var(--transition-base);pointer-events:none;justify-content:center;align-items:center;font-size:.85em;display:flex;position:absolute;inset:0}.copy-email.copied .copy-email-status{opacity:1}@media (prefers-reduced-motion:no-preference){.copy-email.copied .copy-email-status{animation:copy-email-pop var(--duration-slow) var(--ease-out-back)}}@keyframes copy-email-pop{0%{transform:scale(.6)}}.copy-email.copied .text{opacity:0}.copy-email .text{text-transform:none;transition:opacity var(--transition-base)}.copy-email.copied .copy-email-status:before{content:attr(data-copied-text)}.external-links{gap:var(--space-l)!important;padding-inline-start:0!important;flex-wrap:wrap!important;align-items:center!important;padding:0!important;list-style:none!important;display:flex!important}.external-links>li{margin-top:0!important;margin-bottom:0!important;padding-left:0!important}.external-links .link{font-size:var(--fs-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;min-height:24px;color:var(--text-secondary);align-items:center;padding:1.25ex .5ex;text-decoration:none;display:inline-flex}.external-links .link:before{content:"";inset-inline:0;inset-block:min(-4px, calc((100% - var(--tap-target-size)) / 2));position:absolute}.external-links a.link:after{content:"↗";color:var(--text-tertiary);transition:color var(--transition-base);margin-left:.4ex;font-size:.9em}@media screen and (hover:hover){.external-links .link:is(:hover,:focus-visible) :is(.external-link-name,.copy-email .text){text-underline-offset:.15em;text-decoration-line:underline;text-decoration-thickness:max(1px,.04em)}.external-links a.link:hover:after{color:inherit}}footer{background:var(--bg-primary);border-top:1px solid var(--border-primary);margin-top:auto}.footer-content{gap:var(--space-fluid-l);max-width:var(--page-width);padding-block:var(--space-fluid-2xl) var(--space-l);padding-inline:var(--gutter);flex-direction:column;margin:0 auto;display:flex}.footer-call{align-items:flex-start;gap:var(--space-m);padding-bottom:var(--space-fluid-2xl);flex-direction:column;display:flex}.footer-call-line{max-width:22em;font-size:var(--fs-xl);font-weight:var(--font-weight-book);letter-spacing:-.02em;text-wrap:balance;color:var(--text-primary);margin:0;line-height:1.2}.footer-socials{margin-top:var(--space-s);gap:var(--space-xs) var(--space-fluid-l)!important}.footer-call .footer-socials .link{font-size:clamp(1.75rem,.75rem + 3.5vw,4rem);font-weight:var(--font-weight-book);letter-spacing:-.03em;text-transform:none;color:var(--text-primary);padding:0;line-height:1.1}.footer-call .footer-socials a.link:after,.footer-call .footer-socials .copy-email-icon{align-self:flex-start;margin-top:.42em}.footer-call .footer-socials a.link:after{margin-left:.15em;font-size:.42em;line-height:1}.footer-call .footer-socials .copy-email-icon{margin-top:.2em;width:.42em;height:.42em;margin-inline-start:.08em}.footer-label{font-family:var(--ff-mono);font-size:var(--fs-xs);font-weight:var(--font-weight-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);margin:0;line-height:1.4}.footer-nav{justify-content:space-between;align-items:baseline;gap:var(--space-xs) var(--space-l);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.footer-nav ul{gap:var(--space-xs) var(--space-l);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer-content a.footer-link{color:var(--text-primary);text-decoration:none}.footer-imprint{justify-content:space-between;gap:var(--space-2xs) var(--space-m);padding-top:var(--space-s);border-top:var(--border-width-hairline) solid var(--border-primary);font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);flex-wrap:wrap;margin:0;display:flex}@media screen and (hover:hover){.footer-content a.footer-link{text-underline-offset:.2em;transition:text-decoration-color var(--transition-fast);text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.footer-content a.footer-link:hover{text-decoration-color:currentColor}}@media screen and (width<=767px),screen and (height<=500px){.footer-content{padding-block-end:calc(5.5rem + env(safe-area-inset-bottom))}}@media screen and (width<=672px),screen and (height<=500px){.footer-content{padding-block-end:calc(4.5rem + env(safe-area-inset-bottom))}}@media screen and (width<=374px){.footer-content{padding-block-end:var(--space-l)}}.header-link{color:var(--text-primary);font-weight:var(--font-weight-bold);font-size:inherit;text-transform:uppercase;display:inline-block}@media (hover:hover){.header-link{transition:color var(--transition-base)}.header-link:is(:hover,:focus-visible){color:var(--accent)}}.header-link[aria-current=page]{text-decoration:underline}#hamburger-button{min-height:36px;padding:var(--space-3xs) var(--space-2xs);color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-card);cursor:pointer;z-index:var(--z-menu-toggle);transition:color var(--transition-base), border-color var(--transition-base), background-color var(--transition-base);align-items:center;display:flex;position:relative}#hamburger-button:after{content:"";inset-block:min(0px, (100% - var(--tap-target-size)) / 2);inset-inline:min(0px, (100% - var(--tap-target-size)) / 2);position:absolute}@media screen and (width<=767px){#hamburger-button{min-height:34px}}@media screen and (hover:hover){#hamburger-button:hover{color:var(--text-primary);border-color:var(--border-secondary)}}#hamburger-button .hamburger-icon{color:inherit;transform-origin:50%;width:20px;height:20px;transition:transform var(--duration-slowest) var(--ease-in-out-strong);position:relative}#hamburger-button .line{transform-origin:50%;width:15px;height:2px;transition:transform var(--duration-slowest) var(--ease-in-out-strong);background-color:currentColor;position:absolute;top:50%;left:50%}#hamburger-button .top{transform:translate(-50%,calc(-50% - 5px))rotate(0)}#hamburger-button .middle{transform:translate(-50%,-50%)scale(1)}#hamburger-button .bottom{transform:translate(-50%,calc(5px - 50%))rotate(0)}#hamburger-button.open .hamburger-icon{transform:rotate(90deg)}#hamburger-button.open .top{transform:translate(-50%,-50%)rotate(45deg)}#hamburger-button.open .middle{transform:translate(-50%,-50%)scale(0)}#hamburger-button.open .bottom{transform:translate(-50%,-50%)rotate(-45deg)}.site-search-trigger[data-astro-cid-ac66eqjo]{align-items:center;gap:var(--space-3xs);min-height:36px;padding:0 var(--space-2xs);border:1px solid var(--border-primary);border-radius:var(--radius-card);background:var(--bg-secondary);color:var(--text-secondary);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;transition:color var(--transition-base), border-color var(--transition-base), background-color var(--transition-base);display:flex}@media screen and (width>=768px) and (height>=501px){.site-search-trigger[data-astro-cid-ac66eqjo]{background:0 0;border-color:#0000;padding-inline:0}}.site-search-trigger-kbd[data-astro-cid-ac66eqjo]{height:20px;margin-left:var(--space-3xs);border:1px solid var(--border-secondary);border-radius:var(--button-radius);color:var(--text-secondary);font-family:var(--ff-base);font-size:var(--fs-xs);font-weight:var(--font-weight-medium);transition:color var(--transition-base), border-color var(--transition-base);background:0 0;align-items:center;gap:.2em;padding:0 .5em;line-height:1;display:none}.site-search-trigger-kbd[data-astro-cid-ac66eqjo] svg{margin-inline:-.15em}@supports (text-box:trim-both cap alphabetic){.site-search-trigger-kbd[data-astro-cid-ac66eqjo] span[data-astro-cid-ac66eqjo]{text-box:trim-both cap alphabetic}}@media screen and (width>=768px){.site-search-trigger-kbd[data-astro-cid-ac66eqjo]{display:inline-flex}}@media screen and (width<=767px){.site-search-trigger[data-astro-cid-ac66eqjo]{min-height:34px}}.site-search-dialog[data-astro-cid-ac66eqjo]{--search-top:20dvh;interpolate-size:allow-keywords;width:clamp(min(100%,400px),90vw,600px);height:fit-content;max-height:calc(var(--search-viewport,100dvh) - var(--search-top) - var(--space-m));margin:var(--search-top) auto auto;padding:var(--space-s);opacity:0;background:0 0;border:none;overflow:visible;transform:translateY(-2rem)}.site-search-dialog[data-astro-cid-ac66eqjo][open]{opacity:1;flex-direction:column;display:flex;transform:translateY(0)}.site-search-dialog[data-astro-cid-ac66eqjo]::backdrop{backdrop-filter:blur(12px);background:#000000d6}@media screen and (width<=512px){.site-search-dialog[data-astro-cid-ac66eqjo]{--search-top:15dvh;padding:var(--space-xs)}}.site-search-surface[data-astro-cid-ac66eqjo]{gap:var(--space-s);flex-direction:column;min-height:0;display:flex}.site-search-bar[data-astro-cid-ac66eqjo]{align-items:center;gap:var(--space-s);display:flex}.site-search-shell[data-astro-cid-ac66eqjo]{border-bottom:1px solid var(--border-primary);min-width:0;min-height:36px;max-height:none;color:var(--text-primary);font-weight:var(--font-weight-regular);font-size:var(--fs-lg);letter-spacing:0;transition:border-color var(--duration-slow) var(--ease-default);flex:1;align-items:center;margin-bottom:.25em;display:flex;position:relative}.site-search-shell[data-astro-cid-ac66eqjo]:has(.site-search-input:focus){border-bottom-color:var(--text-primary)}.site-search-field-wrap[data-astro-cid-ac66eqjo]{flex:1;min-width:0;display:grid;position:relative}.site-search-input[data-astro-cid-ac66eqjo],.site-search-autocomplete[data-astro-cid-ac66eqjo]{min-width:0;font:inherit;letter-spacing:inherit;grid-area:1/1;line-height:1.2}.site-search-input[data-astro-cid-ac66eqjo]{width:100%;color:inherit;background:0 0;border:none;padding:0;padding-block:0}.site-search-input[data-astro-cid-ac66eqjo]:focus{outline:none}.site-search-input[data-astro-cid-ac66eqjo]::placeholder{color:var(--text-secondary);opacity:1;transition:color var(--transition-base)}.site-search-input[data-astro-cid-ac66eqjo]:focus::placeholder{color:var(--text-highlight)}.site-search-autocomplete[data-astro-cid-ac66eqjo]{pointer-events:none;white-space:nowrap;color:color-mix(in oklab, var(--text-secondary) 74%, transparent);opacity:.8;align-items:center;display:flex;overflow:hidden}.site-search-autocomplete[data-astro-cid-ac66eqjo] .ac-prefix[data-astro-cid-ac66eqjo]{color:#0000}.site-search-action-slot[data-astro-cid-ac66eqjo]{flex:none;width:24px;height:24px;position:relative}.site-search-action-button[data-astro-cid-ac66eqjo],.site-search-loading[data-astro-cid-ac66eqjo]{border-radius:var(--radius-card);color:var(--text-secondary);transition:opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out), color var(--transition-base), background-color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;inset:0}.site-search-action-button[data-astro-cid-ac66eqjo]{opacity:0;pointer-events:none;transform:translateY(4px)}.site-search-action-button[data-astro-cid-ac66eqjo]:before{content:"";inset:calc((100% - var(--tap-target-size,44px)) / 2);position:absolute}.site-search-close[data-astro-cid-ac66eqjo]{min-width:var(--tap-target-size,44px);min-height:var(--tap-target-size,44px);padding:0 var(--space-xs);border-radius:var(--button-radius);color:var(--text-secondary);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:color var(--transition-base), background-color var(--transition-base);background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.site-search-close[data-astro-cid-ac66eqjo]:active{background-color:var(--hover-background);color:var(--text-highlight)}.site-search-loading[data-astro-cid-ac66eqjo]{gap:var(--space-3xs);opacity:0;pointer-events:none;font-size:var(--fs-sm);color:var(--text-secondary);line-height:1;transform:translateY(10px)}[data-astro-cid-ac66eqjo][data-search-surface].has-value .site-search-action-button[data-astro-cid-ac66eqjo]{opacity:1;pointer-events:auto;transform:translateY(0)}[data-astro-cid-ac66eqjo][data-search-surface].is-loading .site-search-action-button[data-astro-cid-ac66eqjo]{opacity:0;pointer-events:none;transform:translateY(4px)}[data-astro-cid-ac66eqjo][data-search-surface].is-loading .site-search-loading[data-astro-cid-ac66eqjo]{opacity:1;transform:translateY(0)}.spinner[data-astro-cid-ac66eqjo]{animation:1s linear infinite paused spin}[data-astro-cid-ac66eqjo][data-search-surface].is-loading .spinner[data-astro-cid-ac66eqjo]{animation-play-state:running}@keyframes spin{to{transform:rotate(1turn)}}.site-search-results[data-astro-cid-ac66eqjo]{min-height:0;color:var(--text-primary);flex-direction:column;display:flex}.site-search-results-count[data-astro-cid-ac66eqjo]{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;margin:0}.site-search-results-count[data-astro-cid-ac66eqjo]:empty{display:none}.site-search-results[data-astro-cid-ac66eqjo] .site-search-results-list{overscroll-behavior:contain;scrollbar-color:var(--border-primary) transparent;scrollbar-width:thin;min-height:0;max-height:min(60dvh,34rem);margin:0;padding:0;list-style:none;overflow-y:auto}.site-search-results[data-astro-cid-ac66eqjo] .site-search-results-list>li{padding-block:var(--space-3xs)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-results-list>li+li{border-top:var(--border-width-hairline) solid var(--border-primary)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-hit{gap:var(--space-3xs);padding:var(--space-s) var(--space-s) var(--space-s) var(--space-m);border-radius:var(--radius-card);color:var(--text-primary);transition:background-color var(--transition-base), color var(--transition-base);text-decoration:none;display:grid}.site-search-results[data-astro-cid-ac66eqjo] .site-search-title{color:var(--text-highlight);font-size:var(--fs-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-heading);letter-spacing:-.01em;position:relative}.site-search-results[data-astro-cid-ac66eqjo] .site-search-title:before{content:"";top:calc(.5lh - 3px);left:calc(var(--space-m) / -2 - 3px);background:var(--ink);width:6px;height:6px;transition:transform var(--transition-fast);position:absolute;transform:scale(0)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-excerpt{color:var(--text-primary);font-size:var(--fs-sm);line-height:1.45}.site-search-results[data-astro-cid-ac66eqjo] .site-search-excerpt mark{color:var(--text-highlight);text-decoration-line:underline;text-decoration-color:var(--ink);text-underline-offset:.2em;background:0 0;border-radius:0;padding:0;text-decoration-thickness:2px}.site-search-results[data-astro-cid-ac66eqjo] .site-search-hit:focus-visible{background-color:var(--hover-background);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-width) * -1)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-hit:active{background-color:var(--hover-background)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-hit:is(:focus-visible,:active) .site-search-title:before{transform:scale(1)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-sublist{margin:0 0 var(--space-3xs) var(--space-m);border-left:var(--border-width-hairline) solid var(--border-primary);padding:0;list-style:none}.site-search-results[data-astro-cid-ac66eqjo] .site-search-sublist .site-search-hit{padding-block:var(--space-xs)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-sublist .site-search-title{font-size:var(--fs-sm)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-error{align-items:center;gap:var(--space-xs);color:var(--text-primary);font-size:var(--fs-sm);margin:0;display:flex}.site-search-results[data-astro-cid-ac66eqjo] .site-search-error:before{content:"";background:var(--ink);flex-shrink:0;width:6px;height:6px}.site-search-navigation[data-astro-cid-ac66eqjo]{display:none}.site-search-navigation[data-astro-cid-ac66eqjo] .hint-group[data-astro-cid-ac66eqjo]{align-items:center;gap:.3rem;display:inline-flex}.site-search-navigation[data-astro-cid-ac66eqjo] kbd[data-astro-cid-ac66eqjo]{border:1px solid var(--border-secondary);border-radius:var(--button-radius);color:var(--text-primary);background:0 0;padding:0 4px;font-family:inherit;font-size:.9em;line-height:1.4}@media screen and (width<=512px){.site-search-loading[data-astro-cid-ac66eqjo]{font-size:var(--fs-xs);gap:var(--space-4xs)}.site-search-loading[data-astro-cid-ac66eqjo] .spinner[data-astro-cid-ac66eqjo]{width:20px;height:20px}.site-search-loading[data-astro-cid-ac66eqjo] span[data-astro-cid-ac66eqjo]{display:none}}@media (prefers-reduced-motion:no-preference){.site-search-dialog[data-astro-cid-ac66eqjo][open]{transition:opacity var(--duration-moderate) var(--ease-in), transform var(--duration-moderate) var(--ease-in), display var(--duration-moderate) var(--ease-in) allow-discrete, overlay var(--duration-moderate) var(--ease-in) allow-discrete;transition-behavior:allow-discrete}.site-search-dialog[data-astro-cid-ac66eqjo]::backdrop{transition:background-color var(--duration-moderate) var(--ease-out), backdrop-filter var(--duration-moderate) var(--ease-out)}.site-search-dialog[data-astro-cid-ac66eqjo][data-closing]::backdrop{backdrop-filter:blur();background:0 0}@starting-style{.site-search-dialog[data-astro-cid-ac66eqjo][open]{opacity:0;transform:translateY(-2rem)}.site-search-dialog[data-astro-cid-ac66eqjo][open]::backdrop{backdrop-filter:blur();background-color:#0000}}.site-search-results[data-astro-cid-ac66eqjo] .site-search-results-list{opacity:1;transition:opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out);transform:translateY(0)}@starting-style{.site-search-results[data-astro-cid-ac66eqjo] .site-search-results-list{opacity:0;transform:translateY(-.5rem)}}}.site-search-trigger[data-astro-cid-ac66eqjo]:focus-visible{color:var(--text-highlight)}.site-search-action-button[data-astro-cid-ac66eqjo]:focus-visible,.site-search-close[data-astro-cid-ac66eqjo]:focus-visible{background-color:var(--hover-background);color:var(--text-highlight);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-width) * -1)}@media screen and (hover:hover){.site-search-trigger[data-astro-cid-ac66eqjo]:hover{color:var(--text-primary);border-color:var(--border-secondary)}}@media screen and (hover:hover) and (width>=768px) and (height>=501px){.site-search-trigger[data-astro-cid-ac66eqjo]:hover{border-color:#0000}}@media screen and (hover:hover){.site-search-trigger[data-astro-cid-ac66eqjo]:hover .site-search-trigger-kbd[data-astro-cid-ac66eqjo]{color:var(--text-primary)}.site-search-action-button[data-astro-cid-ac66eqjo]:hover{color:var(--text-secondary)}.site-search-close[data-astro-cid-ac66eqjo]:hover{color:var(--text-primary)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-hit:hover{background-color:var(--hover-background)}.site-search-results[data-astro-cid-ac66eqjo] .site-search-hit:hover .site-search-title:before{transform:scale(1)}}@media screen and (pointer:fine){.site-search-navigation[data-astro-cid-ac66eqjo]{align-items:center;gap:var(--space-s);margin-top:var(--space-s);color:var(--text-secondary);font-size:var(--fs-xs);flex-wrap:wrap;display:inline-flex}.site-search-close[data-astro-cid-ac66eqjo]{display:none}}@media screen and (prefers-reduced-motion:reduce){.site-search-dialog[data-astro-cid-ac66eqjo],.site-search-action-button[data-astro-cid-ac66eqjo],.site-search-loading[data-astro-cid-ac66eqjo],.spinner[data-astro-cid-ac66eqjo],.site-search-results[data-astro-cid-ac66eqjo] .site-search-results-list{transition-duration:.01ms;animation:none}}header{isolation:isolate;margin-block:1rem;padding-block:clamp(.75rem,2vw,1.125rem);position:relative}nav#top-nav{justify-content:space-between;align-items:center;gap:var(--space-l);width:100%;display:flex;position:relative}.masthead-panel{align-items:center;gap:var(--space-xl);min-width:0;display:flex}.masthead-links,.masthead-theme{display:none}.masthead-link{color:var(--text-primary);font-size:var(--fs-base);margin-block:-4px;padding-block:4px;line-height:1.2;text-decoration:none;display:inline-block;position:relative}.masthead-link[aria-current=page]:before{content:"";background:var(--ink);view-transition-name:active-nav;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;right:calc(100% + .4em)}.masthead-link[aria-current=page]{text-underline-offset:.25em;text-decoration-line:underline;text-decoration-color:currentColor;text-decoration-thickness:1px}.brand{flex-direction:column;gap:2px;display:flex}.brand-link{font-size:var(--fs-base);font-weight:var(--font-weight-regular);color:var(--text-primary);transition:color var(--transition-fast);margin-block:-4px;padding-block:4px;line-height:1.2;text-decoration:none}.brand-meta{font-size:var(--fs-sm);color:var(--text-tertiary);line-height:1}.nav-actions{align-items:center;gap:var(--space-l);min-width:0;display:flex}.nav-actions .site-search-trigger{position:relative}.nav-actions .site-search-trigger:after{content:"";inset-block:min(0px, (100% - var(--tap-target-size)) / 2);inset-inline:min(0px, (100% - var(--tap-target-size)) / 2);position:absolute}@media (hover:hover){.brand-link:hover{color:var(--text-highlight)}.masthead-link{text-underline-offset:.25em;transition:text-decoration-color var(--transition-fast);text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.masthead-link:hover{text-decoration-color:currentColor}.nav-actions .masthead-theme:hover{color:var(--text-primary)}}@media screen and (width>=768px) and (height>=501px){.page-shell-header{z-index:var(--z-masthead);margin-block:1rem 2.5rem;position:sticky;top:0}.masthead{margin-block:0}.masthead:before{content:"";z-index:-1;clip-path:inset(0 -100vmax);pointer-events:none;background:var(--bg-primary);box-shadow:0 0 0 100vmax var(--bg-primary);position:absolute;inset:0}.masthead-links{gap:var(--space-l);margin:0;padding:0;list-style:none;display:flex}.nav-actions .masthead-theme{color:var(--text-secondary);transition:color var(--transition-fast);margin:-6px;padding:6px;display:flex}.nav-actions .masthead-theme svg{width:20px;height:20px}#hamburger-button{display:none}}@media screen and (width>=768px) and (width<=1023px) and (height>=501px){.brand-meta{display:none}}@media screen and (width>=1200px) and (height>=501px){nav#top-nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem;display:grid}.masthead-panel{justify-content:space-between}}dialog[data-menu-dialog]{background:var(--bg-primary);width:100svw;max-width:none;height:100svh;max-height:none;color:var(--text-primary);z-index:var(--z-menu);transition:opacity var(--duration-slow) var(--ease-out), display var(--duration-slow) var(--ease-out) allow-discrete;border:none;margin:0;padding:0;position:fixed;inset:0;overflow-x:hidden}dialog[data-menu-dialog][open]{opacity:1}dialog[data-menu-dialog]:not([open]){pointer-events:none;opacity:0}dialog[data-menu-dialog]::backdrop{display:none}@starting-style{dialog[data-menu-dialog][open]{opacity:0}}.menu-close{top:max(1rem + clamp(.75rem, 2vw, 1.125rem) - 5px, env(safe-area-inset-top));right:calc(var(--gutter) - 5px);width:44px;height:44px;color:inherit;cursor:pointer;z-index:1;opacity:1;background:0 0;border:none;justify-content:center;align-items:center;font-size:2.25rem;line-height:1;display:flex;position:absolute}dialog[data-menu-dialog][open] .menu-close{animation:reveal-item var(--duration-slow) var(--ease-out) .1s both}.menu-content{height:100%;padding-block:calc(var(--space-2xl) + env(safe-area-inset-top)) calc(var(--space-2xl) + env(safe-area-inset-bottom));padding-inline:var(--gutter);justify-content:center;display:flex;overflow-y:auto}.menu-content ul{text-align:center;margin-block:auto;margin-inline:0;padding:0;list-style:none}.menu-content ul li{margin-block:clamp(var(--space-xs), 1.5vh, var(--space-l));opacity:0;justify-content:center;display:flex}dialog[data-menu-dialog][open] .menu-content ul li[data-i="1"]{animation:reveal-item var(--duration-slow) var(--ease-out) .1s both}dialog[data-menu-dialog][open] .menu-content ul li[data-i="2"]{animation:reveal-item var(--duration-slow) var(--ease-out) .15s both}dialog[data-menu-dialog][open] .menu-content ul li[data-i="3"]{animation:reveal-item var(--duration-slow) var(--ease-out) .2s both}dialog[data-menu-dialog][open] .menu-content ul li[data-i="4"]{animation:reveal-item var(--duration-slow) var(--ease-out) .25s both}dialog[data-menu-dialog][open] .menu-content ul li[data-i="5"]{animation:reveal-item var(--duration-slow) var(--ease-out) .3s both}.menu-content .menu-link{--arrow-shift:.95em;font-size:clamp(2rem,min(9vw,11svh),5.5rem);font-weight:var(--font-weight-bold);letter-spacing:-.03em;line-height:1;text-decoration:none}.menu-content li.is-long .menu-link{font-size:clamp(1.25rem,min(5.5vw,7svh),4rem)}.menu-content .menu-link>span{transition:transform var(--transition-base);align-items:center;display:flex;position:relative}.menu-content .menu-link>span svg{left:calc(-1 * var(--arrow-shift));opacity:0;pointer-events:none;width:.72em;height:auto;transition:opacity var(--duration-instant) var(--ease-default);position:absolute}.menu-content .menu-link:is(:hover,:focus-visible)>span{transform:translateX(var(--arrow-shift))}.menu-content .menu-link:is(:hover,:focus-visible)>span svg{opacity:1;transition:opacity var(--transition-base)}.menu-content .menu-link[aria-current=page]{text-underline-offset:.14em;text-decoration:underline .06em}@media (prefers-reduced-motion:reduce){.menu-content .menu-link>span,.menu-content .menu-link>span svg{transition:none}}.menu-footer{bottom:max(var(--space-l), env(safe-area-inset-bottom));left:var(--gutter);opacity:0;position:absolute}dialog[data-menu-dialog][open] .menu-footer{animation:reveal-footer var(--duration-slow) var(--ease-out) .4s both}.menu-theme{right:var(--gutter);bottom:calc(max(var(--space-l), env(safe-area-inset-bottom)) - 10px);display:none;position:absolute}dialog[data-menu-dialog][open] .menu-theme{animation:reveal-footer var(--duration-slow) var(--ease-out) .4s both}.menu-theme .theme-toggle{color:var(--text-primary);padding:10px;display:flex}.menu-theme .theme-toggle svg{width:24px;height:24px}@media screen and (width<=374px){.menu-theme{display:block}}.menu-footer p{font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-tertiary);margin:0}@media screen and (width<=768px){nav#top-nav{gap:var(--space-m)}.nav-actions{gap:var(--space-s)}}@media screen and (width<=450px){.brand-meta{display:none}.nav-actions{gap:var(--space-xs)}}body{z-index:0;flex-direction:column;min-height:100svh;display:flex;position:relative}.page-shell-header,.page-shell-prelude,.page-shell-title-wrap{max-width:var(--page-width);padding-inline:var(--gutter);width:100%;margin-inline:auto}.page-shell-title-wrap{container-type:inline-size}h1.page-title{font-size:max(1.5rem, min(12.5rem, max(3.25rem, 13.5vw), calc(100cqi / var(--title-ch,12) * 1.55)));font-weight:var(--font-weight-heading);letter-spacing:-.045em;text-wrap:balance;margin-block:.12em .16em;line-height:.85}.page-title-count{font-family:var(--ff-mono);font-size:max(var(--fs-sm), .16em);font-weight:var(--font-weight-regular);letter-spacing:0;vertical-align:top;margin-inline-start:.08em;line-height:1}h1.page-title-thesis{font-size:clamp(2.25rem,1.6rem + 2.45vw,4rem);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-heading);line-height:var(--line-height-heading);margin-block:.5em .75em}.page-title-word{display:inline-block}html.js .page-title-word{opacity:0;animation:page-title-word-in .8s var(--ease-out-expo) var(--word-delay) forwards}@keyframes page-title-word-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html.js .page-title-word{opacity:1;animation:none}}.page-title-deck{max-width:30em;font-size:var(--fs-md);font-weight:var(--font-weight-book);letter-spacing:-.01em;text-wrap:pretty;margin-block-end:var(--space-fluid-l);line-height:1.3}@media screen and (width>=1200px){.page-shell-title-wrap:has(>.page-title-deck){column-gap:var(--space-fluid-2xl);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:last baseline;display:grid}.page-title-deck{margin-block:var(--space-fluid-l) 0}}@supports (text-box:trim-both cap alphabetic){h1.page-title{text-box:trim-both cap alphabetic}}.page-shell-main{flex-direction:column;flex:1;width:100%;min-width:0;display:flex;&:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}}.page-shell-content{min-width:0;max-width:var(--content-width);padding-inline:var(--gutter);padding-block:var(--gutter) calc(var(--dock-clearance) + env(safe-area-inset-bottom));flex:1;width:100%;margin-inline:auto;container:main-content/inline-size}@media screen and (width>=768px) and (height>=501px){.page-shell-content{padding-block-end:var(--space-fluid-2xl)}}*{box-sizing:border-box;min-width:0;line-height:var(--line-height-base);margin:0;padding:0}html{text-size-adjust:100%;font-size:16px;font-family:var(--ff-base);text-rendering:optimizelegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;scrollbar-gutter:stable;scroll-behavior:smooth;background:var(--bg-primary);scroll-padding-bottom:calc(var(--dock-clearance) + env(safe-area-inset-bottom));overflow-x:clip}@media screen and (width>=768px) and (height>=501px){html{scroll-padding-top:calc(var(--masthead-clearance) + var(--space-m));scroll-padding-bottom:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html:has(dialog[open]){overflow:hidden}:focus:not(:focus-visible){outline:none}:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}::selection{background:var(--selection-bg);color:var(--selection-text)}body{font-size:var(--fs-base);color:var(--text-primary);background:var(--bg-primary);overflow-x:clip}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{color:var(--text-primary);font-family:var(--ff-heading);font-size:var(--heading-size,1rem);font-weight:var(--font-weight-heading);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-heading);text-wrap:balance}h1,.h1{--heading-size:2.5rem;letter-spacing:-.015em;line-height:1.1}h2,.h2{--heading-size:2rem;letter-spacing:-.01em;line-height:1}h3,.h3{--heading-size:1.5rem;letter-spacing:-.005em;line-height:1.2}h4,.h4{--heading-size:1.25rem;line-height:1.3}h5,h6,.h5,.h6{--heading-size:1.125rem;line-height:1.4}@media screen and (width>=768px){h1,.h1{--heading-size:3rem}h2,.h2{--heading-size:2.5rem}h3,.h3{--heading-size:1.75rem}h4,.h4{--heading-size:1.5rem}h5,h6,.h5,.h6{--heading-size:1.25rem}}a{color:inherit;font-weight:var(--font-weight-regular);text-decoration:none}main p a:not([class]),.work li a:not([class]){text-underline-offset:.2em;text-decoration:underline 1px;text-decoration-color:color-mix(in oklab, currentcolor 40%, transparent)}@media screen and (hover:hover){a:hover{color:var(--accent)}main p a:not([class]):hover,.work li a:not([class]):hover{text-decoration-color:currentColor}}input,textarea{touch-action:manipulation;font-size:16px}em{letter-spacing:-.0125em;word-spacing:-.0125em;font-style:italic}::target-text,mark{background:color-mix(in oklab, currentcolor 18%, transparent);color:currentColor;border-radius:2px;padding:0 3px}[id],:target{scroll-margin-top:4rem}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{display:none}::-webkit-search-decoration{appearance:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-m);top:var(--space-m);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-card);border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-primary);z-index:var(--z-skip-link);transition:transform var(--duration-fast) var(--ease-out);position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}b,strong{font-weight:var(--font-weight-semibold)}img,video{max-width:100%;height:auto}kbd{background-color:var(--bg-secondary);min-width:20px;height:20px;color:var(--text-secondary);font-family:monospace;font-size:14px;font-weight:var(--font-weight-bold);border:1px solid var(--border-primary);border-radius:4px;justify-content:center;align-items:center;padding-inline:4px;line-height:1;display:inline-flex}@media print{#bottom-nav,#hamburger-button,.site-search,dialog,.skip-link,.theme-toggle,.vertical-fade,.fancy-cursor{display:none!important}html{background:#fff;font-size:12pt}body{color:#000;background:#fff}a[href^=http]:after{content:" (" attr(href) ")";color:#666;font-size:.8em}nav a:after,.brand-link:after{content:none!important}img,video{break-inside:avoid;max-width:100%!important}h1,h2,h3,h4,h5,h6{break-after:avoid}p,blockquote{orphans:3;widows:3}}@view-transition{navigation:auto}:root{--vt-duration:var(--duration-slow);--vt-timing:var(--ease-out-quad)}::view-transition-group(root){animation-duration:var(--duration-fast);animation-timing-function:var(--ease-out)}::view-transition-old(root){animation:none}::view-transition-new(root){animation:vt-fade-in var(--duration-fast) var(--ease-out)}@keyframes vt-fade-in{0%{opacity:0}to{opacity:1}}::view-transition-group(bottom-nav){z-index:100}::view-transition-group(active-nav){z-index:1000;animation-timing-function:var(--ease-out);animation-duration:var(--duration-slow)}::view-transition-old(active-nav),::view-transition-new(active-nav){mix-blend-mode:normal;height:100%}::view-transition-group(work-item-transition){animation-duration:var(--vt-duration);animation-timing-function:var(--vt-timing);overflow:clip}::view-transition-old(work-item-transition),::view-transition-new(work-item-transition){object-fit:contain;width:100%;height:100%;animation:none}html:active-view-transition :is(.animate,.page-title-word){animation-play-state:paused!important;transform:none!important}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}.animate{opacity:1!important;animation:none!important}:root.theme-transition::view-transition-old(root),:root.theme-transition::view-transition-new(root){animation:none!important}}html.js .animate{opacity:0;animation:animate-in .6s var(--ease-standard) forwards}.animate:first-child{animation-delay:0s}.animate:nth-child(2){animation-delay:.12s}.animate:nth-child(3){animation-delay:.24s}.animate:nth-child(4){animation-delay:.36s}.animate:nth-child(5){animation-delay:.48s}.animate:nth-child(6){animation-delay:.6s}@keyframes animate-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translate(0,0)}}@keyframes reveal-item{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-footer{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:root.theme-transition::view-transition-old(root){mix-blend-mode:normal;z-index:var(--z-theme-transition);animation:.8s ease-out forwards theme-fade-out;display:block}:root.theme-transition::view-transition-new(root){mix-blend-mode:normal;z-index:1;display:block}@keyframes theme-fade-out{0%{clip-path:circle(150% at 100% 100%);opacity:1}90%{clip-path:circle(10% at 100% 100%);opacity:1}to{clip-path:circle(0% at 100% 100%);opacity:0}}
