.btn{position:relative;inline-size:7rem;block-size:3.6rem;padding:.4rem;border:1px solid transparent;border-radius:9999px;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:flex-start;transition:background-color .18s ease,box-shadow .18s ease,border-color .18s ease;user-select:none;-webkit-tap-highlight-color:transparent}[data-theme=light] .btn{background:#00000008;border-color:#00000014;box-shadow:none}[data-theme=dark] .btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);box-shadow:none}@media(hover:hover){.btn:hover{box-shadow:0 6px 18px #10182814,0 0 0 1px #0000000a inset}}.btn:active .btn__indicator{transform:translate(0) scale(.97)}[data-theme=dark] .btn:active .btn__indicator{transform:translate(3.5rem) scale(.97)}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in oklab,var(--color-accent) 35%,transparent),0 0 0 8px color-mix(in oklab,var(--color-accent) 14%,transparent)}.btn__indicator{position:absolute;inset-block-start:.4rem;inset-inline-start:.4rem;inline-size:2.8rem;block-size:2.8rem;border-radius:50%;background:var(--m3-color-surface-variant);border:1px solid color-mix(in oklab,var(--m3-color-outline) 45%,transparent 55%);box-shadow:0 4px 10px #1018281f,0 1px 1px #0000000f;transform:translate(0);transition:transform .26s cubic-bezier(.2,.8,.2,1),background-color .18s ease,box-shadow .18s ease,border-color .18s ease;view-transition-name:theme-thumb;will-change:transform}html:not([data-theme-vt=driving]) .btn__indicator{transform:translate(0)}html:not([data-theme-vt=driving])[data-theme=dark] .btn__indicator{transform:translate(3.8rem)}[data-theme=dark] .btn__indicator{background:#0f1116;border:1px solid rgba(255,255,255,.06);transform:translate(3.8rem);box-shadow:0 8px 18px #00000073,0 1px #0000004d}.btn__icon-container{inline-size:100%;block-size:100%;display:grid;place-items:center;position:relative}.btn__icon{font-size:1.55rem;position:absolute;transition:opacity .18s ease,transform .18s ease,color .18s ease;opacity:0;transform:scale(.8)}[data-theme=light] .btn__icon--sun{opacity:1;transform:scale(1);color:color-mix(in oklab,var(--light-icon-color) 60%,black 40%)}[data-theme=dark] .btn__icon--moon{opacity:1;transform:scale(1);color:var(--dark-icon-color)}@media(prefers-reduced-motion:reduce){.btn,.btn__indicator,.btn__icon{transition:none!important}}.btn-placeholder{inline-size:7rem;block-size:3.6rem}.header{position:sticky;top:0;z-index:100;background-color:color-mix(in srgb,var(--color-surface),transparent 20%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05)}.nav-container{display:flex;justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto;padding:0 1.5rem;height:4.5rem}.nav-content{display:flex;align-items:center;width:100%;gap:1rem}.menu-icon-wrapper{display:block}.menu-icon-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;cursor:pointer;color:var(--color-text-primary);border-radius:50%;transition:background-color .2s ease,filter .2s ease;box-sizing:border-box}.menu-icon-button:hover{filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.menu-icon-button:focus-visible{outline:2px solid var(--color-accent);background-color:var(--m3-color-primary-container);filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.open-icon{width:24px;height:24px}.desktop-home-link,.theme-toggle-container,.nav-spacer{display:none}.nav-menu-styles{display:block;position:fixed;top:0;left:0;bottom:0;width:300px;max-width:80vw;background-color:var(--color-surface);box-shadow:4px 0 24px #0003;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:200;overflow-y:auto}.nav-menu-styles.is-open{transform:translate(0)}.nav-menu-styles.is-closing{transform:translate(-100%)}.offcanvas-inner{padding:1rem}.panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid rgba(128,128,128,.2)}.panel-header .home-link{color:var(--color-text-primary);display:flex;align-items:center}.panel-header .home-icon{width:28px;height:28px}.menu-close-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;cursor:pointer;color:var(--color-text-primary);border-radius:50%;transition:background-color .2s ease,filter .2s ease;box-sizing:border-box}.menu-close-btn:hover{filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.menu-close-label{font-size:2rem;line-height:1}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.nav-item{width:100%}.nav-link{display:block;visibility:visible;opacity:1;text-align:left;padding:.75rem 1rem;border-radius:8px;text-decoration:none;color:var(--m3-color-on-surface-variant);font-weight:500;transition:background-color .2s ease,filter .2s ease;box-sizing:border-box}.nav-link:hover{background-color:#8080801a;filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.nav-link[aria-current=page]{background-color:var(--m3-color-primary-container);color:var(--m3-color-on-primary-container)}.nav-link[aria-current=page]:after{display:none}.md-hidden{display:block;margin-top:1rem;padding-left:.5rem}.mobile-theme-toggle{margin-left:auto;margin-top:0;align-self:center;display:block}.menu-backdrop{position:fixed;inset:0;background:#00000080;opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:199}.menu-backdrop.visible{opacity:1;pointer-events:auto}@media(min-width:768px){.menu-icon-wrapper,.panel-header,.md-hidden{display:none}.desktop-home-link{display:flex;align-items:center;color:var(--color-text-primary);padding:.5rem;border-radius:50%;transition:background-color .2s ease,filter .2s ease;box-sizing:border-box}.desktop-home-link:hover{filter:drop-shadow(0 2px 8px rgba(0,0,0,.1))}.desktop-home-link .home-icon{width:28px;height:28px}.theme-toggle-container{display:flex}.nav-spacer{display:none}.nav-content{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;width:100%}.nav-menu-styles{display:flex!important;position:static;width:auto;transform:none;background-color:transparent;box-shadow:none;overflow:visible;justify-self:center}.nav-menu-styles.is-open,.nav-menu-styles.is-closing{transform:none}.offcanvas-inner{padding:0}.nav-list{flex-direction:row;align-items:center;gap:.5rem}.nav-link{padding:.5rem 1rem}.nav-link[aria-current=page]{position:relative;background-color:var(--m3-color-primary-container)}.nav-link[aria-current=page]:after{display:block;content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background-color:var(--color-accent)}}#footer{background-color:transparent;padding:2.4rem 0}#footer-ul{display:flex;justify-content:center;align-items:center;list-style:none;margin:0;padding:0;gap:2.4rem}.footer-link{color:var(--color-text-tertiary);transition:all .3s ease;display:inline-block;user-select:none}@media(hover:hover){.footer-link:hover{color:var(--color-accent);transform:scale(1.1) rotate(-5deg)}}.svg-icon{width:3.2rem;height:3.2rem;fill:currentColor}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;min-width:0;min-height:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}svg{overflow:visible}input,button,textarea,select{font:inherit;border:none;background:none;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}button,[role=button]{cursor:pointer}input[type=checkbox]{appearance:auto;-webkit-appearance:auto;accent-color:var(--color-accent);width:1.6rem;height:1.6rem;margin-right:.5em;vertical-align:middle}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration:none;-webkit-touch-callout:none}ul,ol{list-style:none;padding-left:0}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}[data-theme=light]{--m3-color-primary: #2959aa;--m3-color-on-primary: #e6e7ed;--m3-color-primary-container: #e6e7ed;--m3-color-on-primary-container: #2959aa;--m3-color-secondary: #5a3e8e;--m3-color-on-secondary: #e6e7ed;--m3-color-tertiary: #8c4351;--m3-color-on-tertiary: #e6e7ed;--m3-color-background: #e6e7ed;--m3-color-on-background: #343b58;--m3-color-surface: #e6e7ed;--m3-color-on-surface: #343b58;--m3-color-surface-variant: #e6e7ed;--m3-color-on-surface-variant: #40434f;--m3-color-outline: #6c6e75}[data-theme=dark]{--m3-color-primary: #bb9af7;--m3-color-on-primary: #1a1b26;--m3-color-primary-container: #414868;--m3-color-on-primary-container: #bb9af7;--m3-color-secondary: #7aa2f7;--m3-color-on-secondary: #11121b;--m3-color-tertiary: #f7768e;--m3-color-on-tertiary: #11121b;--m3-color-background: #1a1b26;--m3-color-on-background: #dce1ff;--m3-color-surface: #202436;--m3-color-on-surface: #e7ebff;--m3-color-surface-variant: #2c3147;--m3-color-on-surface-variant: #bfc6f4;--m3-color-outline: #6e78a8}:root{--color: var(--color-accent);--dark-color: #2b2b2b;--dark-icon-color: #ffffff;--light-color: #f7f7f7;--light-icon-color: #ffcc00;--color-background: var(--m3-color-background);--color-surface: var(--m3-color-surface);--color-card: var(--m3-color-surface-variant);--color-text-primary: var(--m3-color-on-surface);--color-text-secondary: var(--m3-color-on-surface-variant);--color-text-secondary: color-mix( in oklab, var(--m3-color-on-surface) 78%, var(--m3-color-on-surface-variant) 22% );--color-text-tertiary: var(--m3-color-on-surface-variant);--color-link: var(--m3-color-primary);--color-accent: var(--m3-color-primary);--color-accent-hover: var(--color-accent);--color-accent-hover: color-mix( in oklab, var(--color-accent) 82%, var(--m3-color-on-surface) 18% );--color-accent-muted: transparent;--color-accent-muted: color-mix( in oklab, var(--color-accent) 18%, transparent 82% );--color-on-accent: var(--m3-color-on-primary);--color-focus: rgba(41, 89, 170, .45);--color-focus: color-mix(in oklab, var(--color-accent) 55%, transparent 45%);--color-border: var(--m3-color-outline);--color-border: color-mix( in oklab, var(--m3-color-outline) 65%, transparent 35% );--color-border-strong: var(--m3-color-outline);--m3-font-family-display: "Roboto Flex", sans-serif;--m3-font-family-body: "Roboto Flex", sans-serif;--m3-font-display-large: 5.7rem;--m3-font-display-medium: 4.5rem;--m3-font-display-small: 3.6rem;--m3-font-headline-large: 3.2rem;--m3-font-headline-medium: 2.8rem;--m3-font-headline-small: 2.4rem;--m3-font-title-large: 2.4rem;--m3-font-title-medium: 1.8rem;--m3-font-title-small: 1.6rem;--m3-font-label-large: 1.4rem;--m3-font-label-medium: 1.3rem;--m3-font-label-small: 1.2rem;--m3-font-body-large: 1.8rem;--m3-font-body-medium: 1.6rem;--m3-font-body-small: 1.45rem;--space-1: .4rem;--space-2: .8rem;--space-3: 1.2rem;--space-4: 1.6rem;--space-5: 2rem;--space-6: 2.4rem;--space-8: 3.2rem;--space-10: 4rem;--space-12: 4.8rem;--grid-gap-xs: var(--space-3);--grid-gap-sm: var(--space-4);--grid-gap-md: var(--space-5);--grid-gap-lg: var(--space-6);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-6);--spacing-xl: var(--space-8);--nav-height: 64px;--text-color: var(--color-text-primary);--accent-color: var(--color-accent);--font-heading: var(--m3-font-family-display);--font-size-h1-min: 3.2rem;--font-size-h1-max: 5.6rem;--font-size-h2-min: 2.4rem;--font-size-h2-max: 4rem;--font-size-h3-min: 2rem;--font-size-h3-max: 3rem;--font-size-h4: 1.8rem;--font-size-h5: 1.6rem;--font-size-h6: 1.45rem;--font-size-body-min: 1.6rem;--font-size-body-max: 1.8rem;--font-weight-h1: 560;--font-weight-h2: 520;--font-weight-h3: 500;--font-weight-h4: 480;--font-weight-h5: 470;--font-weight-h6: 460;--font-line-height-heading-tight: 1.22;--font-line-height-heading: 1.24;--font-line-height-body: 1.6}@supports (font: -apple-system-body){:root{--font-line-height-heading-tight: 1.28}}@font-face{font-family:Roboto Flex;src:url(/fonts/Roboto_Flex/RobotoFlex-subset-lcp.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF}@font-face{font-family:Roboto Flex;src:url(/fonts/Roboto_Flex/RobotoFlex-VariableFont.woff2) format("woff2");font-weight:100 1000;font-style:normal;font-display:optional;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}h1,h2,h3,h4,h5,h6{font-family:var(--m3-font-family-display);color:var(--color-text-primary);margin:0 0 .65em;overflow-wrap:break-word;text-wrap:balance}h1{font-size:clamp(var(--font-size-h1-min),calc(var(--font-size-h1-min) + 2.2vw),var(--font-size-h1-max));font-weight:var(--font-weight-h1);line-height:var(--font-line-height-heading-tight);letter-spacing:-.02em}h2{font-size:clamp(var(--font-size-h2-min),calc(var(--font-size-h2-min) + 1.6vw),var(--font-size-h2-max));font-weight:var(--font-weight-h2);line-height:var(--font-line-height-heading-tight);letter-spacing:-.012em}h3{font-size:clamp(var(--font-size-h3-min),calc(var(--font-size-h3-min) + .9vw),var(--font-size-h3-max));font-weight:var(--font-weight-h3);line-height:var(--font-line-height-heading);letter-spacing:-.008em}h4{font-size:clamp(1.8rem,1.62rem + .35vw,var(--font-size-h4));font-weight:var(--font-weight-h4);line-height:var(--font-line-height-heading);letter-spacing:-.004em}h5{font-size:clamp(1.6rem,1.5rem + .2vw,var(--font-size-h5));font-weight:var(--font-weight-h5);line-height:1.28}h6{font-size:var(--font-size-h6);font-weight:var(--font-weight-h6);line-height:1.28;letter-spacing:.02em;text-transform:uppercase}strong,b{font-weight:640}@supports (font: -apple-system-body){body{font-optical-sizing:auto;-webkit-font-smoothing:antialiased}h1,h2,h3{letter-spacing:-.005em}}html{font-size:62.5%;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{background-color:var(--color-background);color:var(--color-text-primary);font-family:var(--m3-font-family-body);font-size:clamp(var(--font-size-body-min),calc(1.52rem + .5vw),var(--font-size-body-max));line-height:var(--font-line-height-body);font-weight:400;letter-spacing:-.005em;-webkit-font-smoothing:antialiased}p,ul,ol{margin:0 0 1.6em;line-height:var(--font-line-height-body);color:var(--color-text-secondary)}li{margin:0 0 .4em}small{font-size:clamp(1.3rem,1.22rem + .1vw,1.4rem);line-height:var(--font-line-height-body)}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link);text-decoration-color:color-mix(in oklab,var(--color-link) 60%,transparent);text-decoration-thickness:.12em;text-underline-offset:.25em;transition:color .2s ease,text-decoration-color .2s ease}a:hover,a:focus{color:var(--color-accent-hover);text-decoration-color:var(--color-accent-hover)}a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background-color:var(--color-accent);background-color:color-mix(in oklab,var(--color-accent) 75%,black 25%);color:var(--color-on-accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes clip-in{0%{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(100% at 50% 50%)}}::view-transition-old(root),::view-transition-new(root){animation-duration:.75s;animation-timing-function:ease-in-out;animation-fill-mode:both}::view-transition-old(root){animation-name:clip-in;animation-direction:reverse}::view-transition-new(root){animation-name:clip-in}html[data-theme-vt=driving] ::view-transition-old(root),html[data-theme-vt=driving] ::view-transition-new(root){animation:none!important}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{position:static!important;width:auto!important;height:auto!important;margin:0!important;overflow:visible!important;clip:auto!important;clip-path:none!important;white-space:normal!important;border:0!important}.scroll-top{position:fixed;right:clamp(12px,6vw,24px);bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-6));width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--accent-color);color:var(--color-on-accent);box-shadow:0 8px 22px color-mix(in oklab,var(--accent-color) 20%,transparent);border:1px solid color-mix(in oklab,var(--color-border) 14%,transparent);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:220;font-size:1.8rem;line-height:1;cursor:pointer;font-family:inherit}.scroll-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}.scroll-top:focus{outline:3px solid var(--color-focus);outline-offset:2px}.scroll-top:hover{background:var(--color-accent-hover)}@media(max-width:980px){.scroll-top{right:auto;left:clamp(12px,6vw,24px);bottom:calc(env(safe-area-inset-bottom,0px) + calc(var(--space-6) + 4px))}}.skip-link[data-astro-cid-37fxchfa]{position:absolute;top:-40px;left:0;background-color:var(--m3-color-primary);color:var(--m3-color-on-primary);padding:8px;z-index:100;transition:top .3s ease}.skip-link[data-astro-cid-37fxchfa]:focus{top:0;outline:2px solid var(--m3-color-primary);outline-offset:2px}.home-text[data-astro-cid-37fxchfa]{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:500;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.intro-role[data-astro-cid-37fxchfa]{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:800;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.intro-tagline[data-astro-cid-37fxchfa]{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
