.misregister-defs{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.link{color:var(--text-primary);font-size:inherit;border-radius:var(--radius-card);border:1px solid var(--text-primary);background:linear-gradient(to right, transparent 50%, var(--text-primary) 50%);background-position:0 0;background-size:200% 100%;align-items:center;height:calc(1em + .25rem);padding:.375rem .25rem;text-decoration:none;transition:color .2s,background-position .2s;display:inline-flex;position:relative}.link[aria-current=page]{color:var(--bg-primary);cursor:default;background-position:-100% 0}.link>*{user-select:none}@media screen and (hover:hover){.link:hover{text-decoration:none}.link:is(:hover:not([aria-current=page]),:focus-visible){color:var(--bg-primary);background-position:-100% 0}}nav#bottom-nav{bottom:calc(1rem + env(safe-area-inset-bottom));border:1px solid var(--border-primary);z-index:999;background-color:var(--bg-secondary);view-transition-name:bottom-nav;border-radius:9999px;width:fit-content;max-width:calc(100vw - 1rem);margin-inline:auto;padding:8px 14px;transition:transform .3s ease-out;position:fixed;inset-inline:0}:root.🌞 nav#bottom-nav{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}nav#bottom-nav.lifted{--lift-offset:100px;transform:translateY(calc(-1 * var(--lift-offset)))}.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}.nav-item:has(svg){padding:4px}.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 .2s}.nav-section .nav-item:hover:not([aria-current=page]){background-color:var(--hover-background)}}@media screen and (width<=672px){.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#bottom-nav.lifted{--lift-offset:80px}.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}nav#bottom-nav.lifted{--lift-offset:70px}}@media screen and (width<=420px){.nav-link{padding:4px 3px;font-size:1.25rem}.nav-item svg{width:18px;max-width:18px;height:18px;max-height:18px}.nav-divider{height:1.25rem;margin:0 2px}nav#bottom-nav{bottom:calc(.5rem + env(safe-area-inset-bottom));padding:4px 5px}nav#bottom-nav.lifted{--lift-offset:60px}}@media screen and (width<=374px){nav#bottom-nav{display:none}}.vertical-fade{pointer-events:none;user-select:none;z-index:1000;backdrop-filter:blur(1px);opacity:0;width:100%;height:clamp(100px,2.309vw + 90.432px,120px);transition:opacity .5s ease-out;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:900;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 (hover:hover) and (pointer:fine){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){.fancy-cursor{z-index:10000;pointer-events:none;mix-blend-mode:difference;will-change:transform, width, height;width:25px;height:25px;transition:width .2s ease-out,height .2s ease-out,opacity .2s ease-out;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;background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:42%;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.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]{width:50px;height:50px}.fancy-cursor[data-state=hover-text]{mix-blend-mode:normal;width:110px;height:110px}.fancy-cursor[data-state=hover-text] .fancy-cursor-ball{backdrop-filter:blur(25px);color:var(--text-highlight);background-color:#8d8d8d33}.fancy-cursor[data-state=hover-text] .fancy-cursor-label{opacity:1}.fancy-cursor[data-state=arrow-left],.fancy-cursor[data-state=arrow-right]{width:80px;height:80px}.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{transition:none}}@media print{.fancy-cursor{display:none!important}}footer{background:var(--bg-primary);border-top:1px solid var(--border-primary);margin-top:auto}.footer-content{max-width:var(--page-width);padding-block:var(--space-l);padding-inline:var(--gutter);text-align:left;margin:0 auto}.footer-content p{font-size:var(--fs-sm);color:var(--text-tertiary);font-weight:var(--font-weight-regular);margin:0}.footer-content a.footer-link{color:inherit;text-underline-offset:.2em;text-decoration:underline}@media screen and (hover:hover){.footer-content a.footer-link:hover{color:var(--text-primary)}}.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 .2s}.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:1002;align-items:center;transition:color .2s,border-color .2s,background-color .2s;display:flex;position:relative}@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 .5s cubic-bezier(.8,.01,.11,.98);position:relative}#hamburger-button .line{transform-origin:50%;background-color:currentColor;width:15px;height:2px;transition:transform .5s cubic-bezier(.8,.01,.11,.98);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-size:var(--fs-sm);cursor:pointer;transition:color .2s,border-color .2s,background-color .2s;display:flex}.site-search-trigger-label[data-astro-cid-ac66eqjo]{display:none}.site-search-trigger-kbd[data-astro-cid-ac66eqjo]{margin-left:var(--space-3xs);border:1px solid var(--border-primary);color:var(--text-tertiary);background:0 0;border-radius:4px;gap:1px;padding:1px 4px;font-family:inherit;font-size:12px;line-height:1.4;transition:color .2s,border-color .2s;display:none}@media screen and (width>=768px){.site-search-trigger-label[data-astro-cid-ac66eqjo]{display:inline}.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]{--bg-primary:#0a0a0a;--bg-secondary:#161616;--text-primary:#ededed;--text-secondary:#a3a3a3;--text-tertiary:#818181;--text-highlight:#fff;--border-primary:#2e2e2e;--border-secondary:#4d4d4d;--surface-hover:#ffffff14;interpolate-size:allow-keywords;width:clamp(min(100%,400px),90vw,600px);height:fit-content;max-height:calc(90vh - 3rem);padding:var(--space-s);opacity:0;background:0 0;border:none;margin:20vh auto auto;overflow:visible;transform:translateY(-2rem)}.site-search-dialog[data-astro-cid-ac66eqjo][open]{opacity:1;transform:translateY(0)}.site-search-dialog[data-astro-cid-ac66eqjo]::backdrop{backdrop-filter:blur(8px);background:#000000b3}@media screen and (width<=512px){.site-search-dialog[data-astro-cid-ac66eqjo]{padding:var(--space-xs);margin:15vh auto auto}}.site-search-surface[data-astro-cid-ac66eqjo]{gap:var(--space-s);flex-direction:column;display:flex}.site-search-shell[data-astro-cid-ac66eqjo]{border-bottom:1px solid var(--border-primary);min-height:36px;max-height:none;color:var(--text-primary);font-weight:var(--font-weight-regular);font-size:var(--fs-lg);letter-spacing:0;align-items:center;margin-bottom:.25em;transition:border-color .3s;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;padding:0;background:0 0;border:none;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 .2s}.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);background:0 0;border:none;justify-content:center;align-items:center;transition:opacity .3s ease-out,transform .3s ease-out,color .2s,background-color .2s;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-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]{color:var(--text-primary)}.site-search-results-count[data-astro-cid-ac66eqjo]{margin:0 0 var(--space-s);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--font-weight-bold)}.site-search-results-list[data-astro-cid-ac66eqjo]{scrollbar-color:var(--border-primary) transparent;scrollbar-width:thin;max-height:min(60vh,34rem);margin:0;padding:0;list-style:none;overflow-y:auto}.site-search-results-list[data-astro-cid-ac66eqjo] li[data-astro-cid-ac66eqjo]{list-style:none}.site-search-result-item[data-astro-cid-ac66eqjo]{align-items:flex-start;gap:var(--space-xs);padding:var(--space-l) 0;border-top:1px solid var(--border-primary);flex-direction:column;display:flex}.site-search-results-list[data-astro-cid-ac66eqjo] li[data-astro-cid-ac66eqjo]:first-child .site-search-result-item[data-astro-cid-ac66eqjo]{border-top:none;padding-top:0}.site-search-title[data-astro-cid-ac66eqjo],.site-search-subtitle[data-astro-cid-ac66eqjo]{font-weight:var(--font-weight-bold);color:var(--text-primary);text-decoration:none;transition:background-color .3s}.site-search-excerpt[data-astro-cid-ac66eqjo]{color:var(--text-primary);font-size:var(--fs-sm);margin:0}.site-search-sublist[data-astro-cid-ac66eqjo]{width:100%;padding-left:var(--space-m);font-size:var(--fs-sm);margin:0;list-style:none}.site-search-subitem[data-astro-cid-ac66eqjo]+.site-search-subitem[data-astro-cid-ac66eqjo]{margin-top:var(--space-s)}.site-search-nested[data-astro-cid-ac66eqjo]{position:relative}.site-search-nested[data-astro-cid-ac66eqjo]:before{content:"⤷";position:absolute;top:0;left:-1rem}.site-search-error[data-astro-cid-ac66eqjo]{color:#d92644;text-align:center}.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);color:var(--text-primary);background:0 0;border-radius:4px;padding:0 4px;font-family:inherit;font-size:.9em;line-height:1.4}@media screen and (width<=512px){.site-search-action-slot[data-astro-cid-ac66eqjo]{width:20px;height:20px}.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}.site-search-result-item[data-astro-cid-ac66eqjo]{gap:var(--space-3xs);padding:var(--space-s) 0}.site-search-sublist[data-astro-cid-ac66eqjo]{padding-left:var(--space-xs);font-size:var(--fs-xs)}}@media (prefers-reduced-motion:no-preference){.site-search-dialog[data-astro-cid-ac66eqjo][open]{transition:opacity .25s ease-in, transform .25s ease-in, display .25s ease-in allow-discrete, overlay .25s ease-in allow-discrete;transition-behavior:allow-discrete}.site-search-dialog[data-astro-cid-ac66eqjo]::backdrop{transition:background-color .25s ease-out,backdrop-filter .25s 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-list[data-astro-cid-ac66eqjo]{opacity:1;transition:opacity .3s ease-out,transform .3s ease-out;transform:translateY(0)}@starting-style{.site-search-results-list[data-astro-cid-ac66eqjo]{opacity:0;transform:translateY(-50px)}}}.site-search-title[data-astro-cid-ac66eqjo]:focus-visible,.site-search-subtitle[data-astro-cid-ac66eqjo]:focus-visible{background-color:var(--hover-background)}.site-search-trigger[data-astro-cid-ac66eqjo]:focus-visible{color:var(--text-highlight)}.site-search-action-button[data-astro-cid-ac66eqjo]:focus-visible{background-color:var(--hover-background);color:var(--text-highlight)}@media screen and (hover:hover){.site-search-trigger[data-astro-cid-ac66eqjo]:hover{color:var(--text-primary);border-color:var(--border-secondary)}.site-search-trigger[data-astro-cid-ac66eqjo]:hover .site-search-trigger-kbd[data-astro-cid-ac66eqjo]{color:var(--text-secondary);border-color:var(--border-secondary)}.site-search-action-button[data-astro-cid-ac66eqjo]:hover{color:var(--text-secondary)}}@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-result-item[data-astro-cid-ac66eqjo]{min-height:60px}}@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-list[data-astro-cid-ac66eqjo]{transition-duration:.01ms;animation:none}}header{margin-block:1rem;padding-block:clamp(.75rem,2vw,1.125rem)}nav#top-nav{justify-content:space-between;align-items:center;gap:var(--space-l);width:100%;display:flex;position:relative}.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);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}.lang-toggle{min-width:36px;min-height:36px;padding:0 var(--space-2xs);font-size:var(--fs-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-card);transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}@media (hover:hover){.brand-link:hover{color:var(--text-highlight)}.lang-toggle:hover{color:var(--text-primary);border-color:var(--border-secondary)}}dialog[data-menu-dialog]{background:var(--bg-primary);width:100svw;max-width:none;height:100svh;max-height:none;color:var(--text-primary);z-index:1001;transition:opacity .3s ease-out, display .3s 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(var(--space-m), env(safe-area-inset-top));right:var(--gutter);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:.3s ease-out .1s both reveal-item}.menu-content{height:100%;padding-block:calc(var(--space-2xl) + env(safe-area-inset-top)) var(--space-2xl);padding-inline:var(--gutter);justify-content:center;align-items:center;display:flex;overflow-y:auto}.menu-content ul{text-align:center;margin: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:.3s ease-out .1s both reveal-item}dialog[data-menu-dialog][open] .menu-content ul li[data-i="2"]{animation:.3s ease-out .15s both reveal-item}dialog[data-menu-dialog][open] .menu-content ul li[data-i="3"]{animation:.3s ease-out .2s both reveal-item}dialog[data-menu-dialog][open] .menu-content ul li[data-i="4"]{animation:.3s ease-out .25s both reveal-item}dialog[data-menu-dialog][open] .menu-content ul li[data-i="5"]{animation:.3s ease-out .3s both reveal-item}.menu-content .menu-link{--arrow-shift:.95em;font-size:clamp(2rem,9vw,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,5.5vw,4rem)}.menu-content .menu-link>span{align-items:center;transition:transform .2s;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 .1s;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 .2s}.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:.3s ease-out .4s both reveal-footer}.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){header{margin-block:2.5rem}}@media screen and (width<=768px){nav#top-nav{gap:var(--space-m)}.nav-actions{gap:var(--space-s)}.lang-toggle{min-width:34px;min-height:34px}}@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(6.25rem, max(2.75rem, 7vw), calc(100cqi / var(--title-ch,12) * 1.55)));font-weight:var(--font-weight-heading);text-wrap:balance;margin-block:.35em .5em;line-height:.95}@supports (text-box:trim-both cap alphabetic){h1.page-title{text-box:trim-both cap alphabetic}}.page-shell-main{min-width:0;max-width:var(--content-width);padding-inline:var(--gutter);padding-block:var(--gutter) calc(6.75rem + env(safe-area-inset-bottom));flex:1;width:100%;margin-inline:auto;container:main-content;&:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}}*{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);overflow-x:hidden}@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:hidden}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:2000;transition:transform .15s 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,toast-msg{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:.3s;--vt-timing:cubic-bezier(.25, .46, .45, .94)}::view-transition-group(root){animation-duration:.15s;animation-timing-function:ease-out}::view-transition-old(root){animation:none}::view-transition-new(root){animation:.15s ease-out vt-fade-in}@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-duration:.3s;animation-timing-function:ease-out}::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 .animate{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}}.animate{opacity:0;animation:.6s cubic-bezier(.4,0,.2,1) forwards animate-in}.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:9999;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}}
