@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.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}.main,.site-foot{z-index:1;position:relative}.main{overflow-x:clip}.desk-lamp{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.desk-lamp>span{will-change:transform;background:radial-gradient(closest-side, color-mix(in srgb, var(--lamp) 6%, transparent), transparent);width:70vmax;height:70vmax;position:absolute;top:-35vmax;left:-35vmax}.desk-lamp[hidden]{display:none}.spine{z-index:15;background-color:var(--bg);border-bottom:1px solid var(--line);visibility:hidden;transition:transform var(--dur-ui) var(--ease-paper), visibility 0s linear var(--dur-ui);position:fixed;top:0;left:0;right:0;transform:translateY(-105%)}.spine[data-open=true]{visibility:visible;transition:transform var(--dur-ui) var(--ease-paper), visibility 0s;transform:none}.spine-inner{align-items:center;gap:var(--space-3);min-height:48px;display:flex}.spine-brand{align-items:center;gap:var(--space-2);min-height:44px;color:var(--ink);flex:none;text-decoration:none;display:inline-flex}.spine-sig{height:28px;padding:0 var(--space-4) 0 var(--space-2);background-color:var(--paper-line);color:var(--paper-ink);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--track-mono);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 100%,0 100%);align-items:center;font-weight:500;display:inline-flex}.spine-name{font-family:var(--font-display);font-size:var(--fs-s);display:none}.spine .nav{flex:1;width:auto;margin:0;padding:0}@media (width>=64rem){.spine-name{display:inline}.spine .nav{justify-content:flex-end;display:flex}}.nav-list a{isolation:isolate;transition:color var(--dur-micro) var(--ease-paper), transform var(--dur-micro) var(--ease-paper);position:relative}.nav-list a[aria-current=page]{color:var(--paper-ink);border-bottom-color:#0000}.nav-list a[aria-current=page]:before{content:"";z-index:-1;background-color:var(--paper-line);clip-path:polygon(0 100%,7px 0,calc(100% - 7px) 0,100% 100%);position:absolute;inset:6px 0 0}.spine .nav-list a[aria-current=page]:before{inset:8px 0 0}@media (hover:hover){.nav-list a:not([aria-current=page]):hover{transform:translateY(-2px)}}.reveal{transition:transform var(--dur-scene) var(--ease-paper), opacity var(--dur-ui) var(--ease-paper)}.reveal.is-armed:not(.is-in){opacity:0;transform:translateY(24px)rotate(-.6deg)}.reveal .sheet--stack:after{transition:transform var(--dur-scene) var(--ease-paper) var(--stagger)}.reveal.is-armed:not(.is-in) .sheet--stack:after{transform:translate(10px,14px)rotate(2.4deg)}.tw .tw-ch{opacity:0}.tw .tw-ch.on{opacity:1}.tw-ch.caret{position:relative}.tw-ch.caret:after{content:"";background-color:var(--lamp);width:.5em;height:2px;position:absolute;bottom:.08em;left:100%}.sheet .tw-ch.caret:after,.paper .tw-ch.caret:after{background-color:var(--lamp-ink)}.numr{display:inline-flex}.numr-d{vertical-align:bottom;height:1lh;display:inline-block;overflow:hidden}.numr-strip{will-change:transform;display:block}.numr-strip>span{text-align:center;height:1lh;display:block}@keyframes stamp-hit{0%{opacity:0;transform:scale(1.8)rotate(-14deg)}55%{opacity:1;transform:scale(.94)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(-3deg)}}.stamp--animate{animation:stamp-hit var(--dur-scene) var(--ease-stamp) both}.btn{transition:background-color var(--dur-micro) var(--ease-paper), color var(--dur-micro) var(--ease-paper), border-color var(--dur-micro) var(--ease-paper), transform var(--dur-micro) var(--ease-stamp)}.btn:active:not(:disabled):not([aria-disabled=true]){transition-duration:60ms;transform:translateY(2px)scale(.985)}.link-arrow,.crumbs a,.site-foot a{position:relative}.link-arrow:after,.crumbs a:after,.site-foot a:after{content:"";pointer-events:none;background-color:var(--link-line,var(--lamp));transform-origin:0;height:4px;transition:transform var(--dur-ui) var(--ease-paper);position:absolute;bottom:6px;left:0;right:0;transform:scaleX(0);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 5' preserveAspectRatio='none'%3E%3Cpath d='M1 3.2C18 1.6 36 4.2 58 2.6S98 3.6 119 1.8' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 5' preserveAspectRatio='none'%3E%3Cpath d='M1 3.2C18 1.6 36 4.2 58 2.6S98 3.6 119 1.8' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}.link-arrow{text-decoration-color:#0000}.link-arrow:after{opacity:.9}.link-arrow:not(:hover):after{transform:scaleX(.35)}@media (hover:hover){.link-arrow:hover:after,.crumbs a:hover:after,.site-foot a:hover:after{transform:scaleX(1)}}.link-arrow:focus-visible:after{transform:scaleX(1)}@media (prefers-reduced-motion:no-preference){.site-foot .social-link,.share-btn{transition:color var(--dur-micro) var(--ease-paper), border-color var(--dur-micro) var(--ease-paper), transform var(--dur-micro) var(--ease-paper)}@media (hover:hover){.site-foot .social-link:hover,.share-btn:hover{transform:translateY(-2px)}}.site-foot .social-link:active,.share-btn:active{transition-duration:60ms;transform:translateY(1px)}}.motion-toggle{align-items:center;gap:var(--space-2);cursor:pointer;min-height:44px;color:var(--ink-muted);font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;padding:0;display:inline-flex}.motion-toggle:hover{color:var(--ink)}.motion-toggle[hidden]{display:none}.motion-toggle-box{border:1.5px solid;flex:none;width:20px;height:20px}.motion-toggle[aria-pressed=true] .motion-toggle-box{background-image:linear-gradient(45deg,#0000 44%,currentColor 44% 56%,#0000 56%),linear-gradient(-45deg,#0000 44%,currentColor 44% 56%,#0000 56%)}@media (prefers-reduced-motion:no-preference){:root[data-nav=same]:not([data-motion-pref=reduce])::view-transition-old(tresc){animation:vt-fade-out var(--dur-micro) var(--ease-paper) both!important}:root[data-nav=same]:not([data-motion-pref=reduce])::view-transition-new(tresc){animation:vt-fade-in var(--dur-ui) var(--ease-paper) both!important}}::view-transition-group(*){animation-duration:var(--dur-ui);animation-timing-function:var(--ease-paper)}:root[data-nav=same]::view-transition-group(*){animation-duration:calc(var(--dur-ui) * 1.6)}:root[data-nav=same]::view-transition-new(*):only-child{animation:vt-lay-in var(--dur-ui) var(--ease-paper) both}:root[data-nav=same]::view-transition-old(*):only-child{animation:vt-lift-out var(--dur-micro) var(--ease-paper) both}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}@keyframes vt-lay-in{0%{opacity:0;transform:translateY(18px)rotate(-1deg)}}@keyframes vt-lift-out{to{opacity:0;transform:translateY(-10px)rotate(1deg)scale(.98)}}@media print{.reveal.is-armed,.tw .tw-ch{opacity:1!important;transform:none!important}.spine,.desk-lamp,.toasts{display:none!important}}:root[data-motion-pref=reduce] *,:root[data-motion-pref=reduce] :before,:root[data-motion-pref=reduce] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}:root[data-motion-pref=reduce]::view-transition-group(*){animation:none!important}:root[data-motion-pref=reduce]::view-transition-old(*){animation:none!important}:root[data-motion-pref=reduce]::view-transition-new(*){animation:none!important}:root[data-motion-pref=reduce] .folder-cover{transform:none!important}@media (prefers-reduced-motion:reduce){.desk-lamp{display:none!important}}:root[data-motion-pref=reduce] .desk-lamp{display:none!important}
