:root{--font-display:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--font-sans:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--paper:oklch(0.985 0.006 80);--paper-2:oklch(0.965 0.008 80);--paper-3:oklch(0.935 0.01 80);--ink:oklch(0.18 0.01 60);--ink-2:oklch(0.34 0.01 60);--ink-3:oklch(0.52 0.01 60);--rule:oklch(0.88 0.008 70);--rule-2:oklch(0.78 0.01 70);--accent:oklch(0.36 0.1 255);--accent-2:oklch(0.52 0.11 255);--accent-ink:oklch(0.98 0.01 255);--cat-skills:oklch(0.7 0.13 230);--cat-experience:oklch(0.62 0.13 255);--cat-projects:oklch(0.7 0.13 65);--cat-certifications:oklch(0.68 0.13 320);--cat-education:oklch(0.64 0.13 290);--cat-blog:oklch(0.36 0.1 255);--cat-contact:oklch(
    0.68 0.13 145
  );--cat-writing:var(--cat-blog);--cat-positive:var(--status-ok);--status-ok:oklch(0.68 0.13 145);--status-warn:oklch(0.76 0.13 85);--status-error:oklch(0.62 0.15 25);--status-info:var(--accent);--status-neutral:oklch(0.65 0.02 60);--r-xs:3px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--sh-1:0 1px 0 oklch(0 0 0 / 0.04), 0 1px 2px oklch(0 0 0 / 0.04);--sh-2:0 1px 0 oklch(0 0 0 / 0.04), 0 8px 24px -10px oklch(0 0 0 / 0.1);--sh-3:0 2px 0 oklch(0 0 0 / 0.04), 0 24px 60px -20px oklch(0 0 0 / 0.16);--s-1:0.25rem;--s-2:0.5rem;--s-3:0.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:8rem;--ease:cubic-bezier(0.2, 0.7, 0.1, 1);--dur-fast:140ms;--dur:240ms;--dur-slow:520ms;--container:1320px;--grain-opacity:0.045}html.dark{--paper:oklch(0.155 0.01 265);--paper-2:oklch(0.195 0.012 265);--paper-3:oklch(0.235 0.012 265);--ink:oklch(0.97 0.01 90);--ink-2:oklch(0.82 0.01 90);--ink-3:oklch(0.64 0.01 90);--rule:oklch(0.3 0.012 265);--rule-2:oklch(0.4 0.012 265);--accent:oklch(0.62 0.13 255);--accent-2:oklch(0.74 0.12 255);--accent-ink:oklch(0.12 0.02 255);--cat-skills:oklch(0.76 0.12 230);--cat-experience:oklch(0.74 0.12 255);--cat-projects:oklch(0.78 0.12 65);--cat-certifications:oklch(0.76 0.12 320);--cat-education:oklch(0.72 0.12 290);--cat-blog:oklch(0.62 0.13 255);--cat-contact:oklch(0.78 0.12 145);--cat-writing:var(--cat-blog);--cat-positive:var(--status-ok);--status-ok:oklch(0.78 0.12 145);--status-warn:oklch(0.84 0.12 85);--status-error:oklch(0.72 0.14 25);--status-info:var(--accent);--status-neutral:oklch(0.72 0.02 60);--sh-1:0 1px 0 oklch(1 0 0 / 0.04), 0 1px 2px oklch(0 0 0 / 0.4);--sh-2:0 1px 0 oklch(1 0 0 / 0.04), 0 12px 30px -12px oklch(0 0 0 / 0.5);--sh-3:0 2px 0 oklch(1 0 0 / 0.05), 0 28px 70px -22px oklch(0 0 0 / 0.7);--grain-opacity:0.06}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");mix-blend-mode:overlay}.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.in{opacity:1;transform:none}@keyframes pulse{0%,100%{box-shadow:0 0 0 3px color-mix(in oklab,var(--cat-positive) 25%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in oklab,var(--cat-positive) 8%,transparent)}}*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::before,::after{--tw-content:''}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}input:where([type=text]):focus,input:where(:not([type])):focus,input:where([type=email]):focus,input:where([type=url]):focus,input:where([type=password]):focus,input:where([type=number]):focus,input:where([type=date]):focus,input:where([type=datetime-local]):focus,input:where([type=month]):focus,input:where([type=search]):focus,input:where([type=tel]):focus,input:where([type=time]):focus,input:where([type=week]):focus,select:where([multiple]):focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}input:where([type=checkbox]):checked,input:where([type=radio]):checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{border-color:transparent;background-color:currentColor}input:where([type=checkbox]):indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{border-color:transparent;background-color:currentColor}input:where([type=file]){background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}input:where([type=file]):focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}html{font-size:16px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}:is(h1,h2,h3,h4,h5,h6)[id]{scroll-margin-top:5rem}body{font-family:var(--font-sans);font-weight:400;color:var(--ink-2);background:var(--paper);line-height:1.6;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;color:var(--ink);letter-spacing:-.025em;line-height:1.05;margin:0}h1 em,h2 em,.display-xl em,.display-lg em{font-style:normal;font-weight:400;color:var(--accent)}h1,.h1{font-size:2.6873856rem}@media(min-width:768px){h1,.h1{font-size:2.9859839999999997rem}}h2,.h2{font-size:2.239488rem}@media(min-width:768px){h2,.h2{font-size:2.48832rem}}h3,.h3{font-size:1.86624rem}@media(min-width:768px){h3,.h3{font-size:2.0736rem}}h4,.h4{font-size:1.728rem}h5,.h5{font-size:1.44rem}h6,.h6{font-size:1.2rem}b,strong{font-weight:600}code::after{content:var(--tw-content);border-style:none}blockquote>p{margin-top:0!important;margin-bottom:0!important}a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--rule-2);transition:color var(--dur-fast)var(--ease),text-decoration-color var(--dur-fast)var(--ease)}a:hover{color:var(--accent);text-decoration-color:var(--accent)}a.card,.card a,a.exp-item,a.article-card,a.github-repo,a.brand,a.btn,a.nav-link,a.nav-dropdown-link,a.pill,a.taxonomy-link,.social-icons a,.share-icons a,.footer-col a,.hero-cta a,.toc a,aside a,nav[aria-label=Pagination] a{text-decoration:none}a.card:hover,a.exp-item:hover,a.article-card:hover,a.github-repo:hover{text-decoration:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media(min-width:540px){.container{max-width:540px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1200px){.container{max-width:1200px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}main{min-height:70vh}.section{padding:clamp(3.5rem,8vw,7rem)0;border-top:1px solid var(--rule)}.section-sm{padding:clamp(2rem,4vw,3.5rem)0;border-top:1px solid var(--rule)}.container{max-width:var(--container);margin:0 auto;padding:0 clamp(1rem,2.5vw,2rem);position:relative;z-index:2}.section-head{display:grid;grid-template-columns:1fr;gap:var(--s-5);margin-bottom:clamp(2rem,4vw,3rem)}@media(min-width:900px){.section-head{grid-template-columns:minmax(0,1fr)minmax(0,1fr);align-items:end}}.section-head .left{display:flex;flex-direction:column;gap:var(--s-3)}.section-head .display-lg{white-space:nowrap}.section-head .right p{font-family:var(--font-sans);color:var(--ink-2);max-width:44ch;font-size:.98rem}.section-index{display:inline-flex;align-items:baseline;gap:.6rem;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}.section-index .num{color:var(--page-accent,var(--accent));font-weight:600}.display-xl{font-size:clamp(2.8rem,6vw,5.4rem);letter-spacing:-.035em;font-weight:600}.display-lg{font-size:clamp(2.2rem,4.6vw,3.8rem);letter-spacing:-.03em;font-weight:600}.display-md{font-size:clamp(1.75rem,3.4vw,2.6rem);letter-spacing:-.025em;font-weight:600}.display-sm{font-size:clamp(1.35rem,2.4vw,1.85rem);letter-spacing:-.02em;font-weight:600}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;font-size:.72rem;letter-spacing:.14em;color:var(--ink-3);font-weight:500}.eyebrow .dot{display:inline-block;width:6px;height:6px;border-radius:999px;background:var(--accent);margin-right:var(--s-2);vertical-align:middle;box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 20%,transparent)}.meta{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;color:var(--ink-3)}.card{position:relative;padding:var(--s-5)var(--s-5)1.6rem;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-md);transition:transform var(--dur)var(--ease),border-color var(--dur)var(--ease),box-shadow var(--dur)var(--ease),background var(--dur)var(--ease);overflow:hidden;display:flex;flex-direction:column;gap:var(--s-3)}.card::before{content:"";position:absolute;top:0;left:0;width:28px;height:2px;background:var(--card-accent,var(--accent));transition:width var(--dur)var(--ease)}.card:hover{transform:translateY(-2px);border-color:var(--rule-2);box-shadow:var(--sh-2)}.card:hover::before{width:64px}.card .card-top{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}.card .card-top .idx{color:var(--ink-3)}.card .card-top .slug{color:var(--card-accent,var(--accent))}.card h3{font-size:1.5rem;line-height:1.15;letter-spacing:-.01em}.card h3 i{display:inline-block;margin-right:var(--s-2);vertical-align:middle}.card h3 img{display:inline-block;height:.83em;max-width:none;margin-right:var(--s-2);vertical-align:middle}.card .card-desc{font-size:.95rem;color:var(--ink-2);line-height:1.55}.card .card-foot{margin-top:auto;padding-top:var(--s-3);border-top:1px dashed var(--rule);display:flex;justify-content:space-between;align-items:center;white-space:nowrap;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}.card.has-badge>.card-badge-row{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);align-items:start}.card.has-badge>.card-badge-row>.card-body{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.cat-skills{--card-accent:var(--cat-skills)}.cat-experience{--card-accent:var(--cat-experience)}.cat-projects{--card-accent:var(--cat-projects)}.cat-certifications{--card-accent:var(--cat-certifications)}.cat-education{--card-accent:var(--cat-education)}.cat-blog,.cat-writing{--card-accent:var(--cat-blog)}.cat-contact{--card-accent:var(--cat-contact)}.pill{font-family:var(--font-mono);font-size:.7rem;padding:.25rem .55rem;border-radius:999px;background:var(--paper-3);color:var(--ink-2);letter-spacing:.02em}.pill.on-accent{background:color-mix(in oklab,var(--accent) 18%,transparent);color:var(--ink)}.callout{display:grid;grid-template-columns:auto 1fr;gap:var(--s-3);padding:.95rem 1.1rem;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--paper-2)}.callout i.lead-icon{color:var(--accent);font-size:1.1rem;margin-top:2px}.callout.tone-positive{border-color:color-mix(in oklab,var(--status-ok) 50%,var(--rule));background:color-mix(in oklab,var(--status-ok) 5%,var(--paper-2))}.callout.tone-positive i.lead-icon{color:var(--status-ok)}.callout.tone-warn{border-color:color-mix(in oklab,var(--status-warn) 50%,var(--rule));background:color-mix(in oklab,var(--status-warn) 6%,var(--paper-2))}.callout.tone-warn i.lead-icon{color:var(--status-warn)}.callout.tone-error{border-color:color-mix(in oklab,var(--status-error) 50%,var(--rule));background:color-mix(in oklab,var(--status-error) 5%,var(--paper-2))}.callout.tone-error i.lead-icon{color:var(--status-error)}blockquote.editorial{margin:0;padding:1.4rem 1.6rem;border-left:2px solid var(--accent);background:color-mix(in oklab,var(--accent) 6%,transparent);border-radius:0 var(--r-md)var(--r-md)0;font-family:var(--font-display);font-size:1.25rem;line-height:1.4;font-weight:400;letter-spacing:-.01em;color:var(--ink);font-style:italic}blockquote.editorial cite{display:block;margin-top:.75rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3);font-style:normal}.status-card{display:grid;grid-template-columns:auto 1fr;gap:0 var(--s-4);align-items:center;padding:.9rem 1.1rem;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--paper-2)}.hero .status-card{margin-top:var(--s-6)}.status-led{width:10px;height:10px;border-radius:999px;background:var(--cat-positive);box-shadow:0 0 0 4px color-mix(in oklab,var(--cat-positive) 25%,transparent);animation:pulse 2.4s var(--ease)infinite;grid-row:1/span 2}.status-title{font-family:var(--font-sans);font-weight:600;font-size:.92rem;color:var(--ink)}.status-text{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-3)}.grid-3{display:grid;gap:var(--s-4);grid-template-columns:1fr}@media(min-width:700px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1060px){.grid-3{grid-template-columns:repeat(3,1fr)}}.grid-2{display:grid;gap:var(--s-4);grid-template-columns:1fr}@media(min-width:700px){.grid-2{grid-template-columns:repeat(2,1fr)}}.exp-item{display:grid;grid-template-columns:1fr;gap:var(--s-2)var(--s-5);padding:1.75rem 0;border-top:1px solid var(--rule);position:relative;transition:background var(--dur)var(--ease)}.exp-item:hover{background:color-mix(in oklab,var(--paper-2) 60%,transparent)}@media(min-width:800px){.exp-item{grid-template-columns:180px 1fr auto;padding-inline:var(--s-2)}}.exp-item .when{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-3);letter-spacing:.05em}.exp-item .title{color:var(--ink);font-family:var(--font-display);font-size:1.6rem;line-height:1.15;margin:0 0 var(--s-1)}.exp-item .company{font-size:.95rem;color:var(--ink-2);display:inline-flex;gap:.45rem;align-items:center}.exp-item .company::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--cat-experience)}.exp-item .desc{margin-top:.6rem;color:var(--ink-2);font-size:.97rem}.exp-item .pill-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.7rem}.exp-item .arrow{align-self:start;margin-top:.3rem;width:38px;height:38px;border-radius:999px;display:grid;place-items:center;color:var(--ink);border:1px solid var(--rule);transition:all var(--dur)var(--ease)}.exp-item:hover .arrow{background:var(--ink);color:var(--paper);transform:rotate(-45deg);border-color:var(--ink)}.article-card{display:grid;grid-template-columns:1fr;gap:var(--s-4);text-decoration:none;color:inherit;padding:var(--s-4)0 var(--s-5);border-bottom:1px solid var(--rule)}@media(min-width:780px){.article-card{grid-template-columns:280px 1fr;gap:var(--s-6)}}.space-y-0>.article-card:first-child{padding-top:0}.article-thumb{aspect-ratio:1/1;border-radius:var(--r-md);overflow:hidden;background:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in oklab,var(--ink) 6%,transparent) 10px 11px),var(--paper-2);border:1px solid var(--rule);display:grid;place-items:center;color:var(--ink-3);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;transition:transform var(--dur)var(--ease)}.article-card:hover .article-thumb{transform:scale(1.01)}.article-meta-row{display:flex;align-items:center;gap:var(--s-4);font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}.article-title{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.1;color:var(--ink);margin:.35rem 0 var(--s-2)}.article-summary{color:var(--ink-2);font-size:.98rem;line-height:1.55}.article-footer-row{margin-top:.9rem;display:flex;justify-content:space-between;align-items:center}.article-footer-row .btn{flex-shrink:0}.article-tags{display:flex;gap:.35rem;flex-wrap:wrap}.article-card .article-title{transition:color var(--dur-fast)var(--ease)}.article-card:hover .article-title{color:var(--card-accent,var(--accent))}.article-card:hover .btn-link,.article-card .btn-link:hover{color:var(--card-accent,var(--accent));border-color:var(--card-accent,var(--accent))}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3)}.field input,.field textarea,.field select{font-family:var(--font-sans);font-size:.95rem;padding:var(--s-3).9rem;border-radius:var(--r-sm);border:1px solid var(--rule);background:var(--paper);color:var(--ink);transition:border-color var(--dur-fast)var(--ease),box-shadow var(--dur-fast)var(--ease)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}.social-icons{display:flex;gap:.4rem}.social-icons a{width:34px;height:34px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--paper-3);color:var(--ink);border:1px solid var(--rule);text-decoration:none;transition:all var(--dur-fast)var(--ease)}.social-icons a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(-2px)}.social-icons a svg{height:1.25rem;width:1.25rem}.social-icons li{display:inline-block}.content{color:var(--tw-prose-body);max-width:65ch}.content :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.content :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.content :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.content :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.content :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.content :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.content :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.content :where(ol[type=As]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.content :where(ol[type=as]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.content :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.content :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.content :where(ol[type=Is]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.content :where(ol[type=is]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.content :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.content :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.content :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.content :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.content :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.content :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:open-quote}.content :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:close-quote}.content :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.content :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.content :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.content :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.content :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.content :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.content :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.content :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.content :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.content :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.content :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.content :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.content :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.content :where(code):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:"`"}.content :where(code):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:"`"}.content :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.content :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.content :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.content :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:initial;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.content :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:none}.content :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:none}.content :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.content :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.content :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.content :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.content :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.content :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.content :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.content :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.content :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.content :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.content :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.content{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgb(17 24 39 / 10%);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:rgb(255 255 255 / 10%);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0 / 50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.content :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.content :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.content :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.content :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.content :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.content :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.content :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.content :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.content :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.content :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.content :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.content :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.content :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.content :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.content :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.content :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.content :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.content :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.content :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.content :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.content :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.content :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.content :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.content :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.content{max-width:none;display:flow-root}.content :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){margin-bottom:.3em;margin-top:.6em}.content :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.6873856rem}@media(min-width:768px){.content :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.9859839999999997rem}}.content :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.239488rem}@media(min-width:768px){.content :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.48832rem}}.content :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.86624rem}@media(min-width:768px){.content :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.0736rem}}.content :is(:where(img):not(:where([class~=not-prose],[class~=not-prose] *))){max-width:100%;border-radius:.25rem;border-radius:var(--r-sm)}.content :where(h1,h2,h3,h4,h5,h6){color:var(--ink)}.content h3:not(.github-repo *){margin-top:calc(.6em + 1.15rem);margin-bottom:calc(.3em + 1.15rem)}.content h3:not(.github-repo *):first-child{margin-top:.6em}.content :where(h3):not(.github-repo *)::before{content:"";display:block;width:32px;height:2px;background:var(--page-accent,var(--accent));margin-bottom:var(--s-4);opacity:.9}.content :where(hr){border-color:var(--rule)}.content :where(p){font-size:1.0625rem;color:var(--ink-2);line-height:1.65}.content :where(p.lead){font-size:1.25rem;color:var(--ink);font-weight:300;max-width:56ch}.content blockquote{margin:0;padding:1.2rem var(--s-5);border-left:2px solid var(--accent);background:color-mix(in oklab,var(--accent) 6%,transparent);border-radius:0 var(--r-md)var(--r-md)0;font-family:var(--font-display);font-size:1.25rem;line-height:1.4;font-weight:400;letter-spacing:-.01em;color:var(--ink);font-style:normal;quotes:none}.content blockquote p:first-of-type::before,.content blockquote p:last-of-type::after{content:none}.content blockquote cite{display:block;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3);font-style:normal;margin-top:var(--s-3)}.content :where(pre){font-family:var(--font-mono);background:var(--paper-3);border:1px solid var(--rule);border-radius:var(--r-md);padding:1.1rem 1.2rem;font-size:.82rem;line-height:1.55;color:var(--ink-2);overflow:auto;margin:0}.content :where(code){padding:.1em .3em;color:var(--ink-2)}.content :where(strong){color:var(--ink)}.content :where(a){color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule-2)}.content :where(a):hover{color:var(--accent);text-decoration-color:var(--accent)}.content :where(li){color:var(--ink-2)}.content :where(ul>li)::marker{color:var(--ink-3)}.content :where(ol>li)::marker{color:var(--ink-3)}.content :where(table){position:relative;overflow:hidden;border-radius:.5rem;border-radius:var(--r-lg)}.content :where(table)::before{content:"";position:absolute;left:0;top:0;height:100%;width:100%;border-radius:inherit;border:1px solid var(--rule)}.content :where(thead){border-color:var(--rule);background:var(--paper-2)}.content :where(th){position:relative;z-index:10;padding-left:1rem;padding-right:1rem;padding-top:18px;padding-bottom:18px;color:var(--ink)}.content :where(tr){border-color:var(--rule)}.content :where(td){position:relative;z-index:10;padding-left:.75rem;padding-right:.75rem;padding-top:18px;padding-bottom:18px;color:var(--ink-2)}.content .btn{text-decoration:none!important}.toc .label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-3)}.toc a:hover,.toc a.active{color:var(--ink);border-left-color:var(--accent)}.icon-btn{width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-2);background:0 0;border:1px solid var(--rule);cursor:pointer;transition:all var(--dur-fast)var(--ease)}.icon-btn:hover{color:var(--ink);background:var(--paper-2);border-color:var(--rule-2)}.cookie-settings-link{font:inherit;color:inherit;background:0 0;border:0;padding:0;cursor:pointer;text-decoration:none}.cookie-settings-link:hover,.cookie-settings-link:focus-visible{color:var(--ink)}.hero{position:relative;padding:clamp(3rem,8vw,7rem)0 clamp(3rem,6vw,5rem);overflow:hidden}.hero-grid{display:grid;gap:clamp(1.5rem,4vw,4rem);grid-template-columns:1fr}@media(min-width:960px){.hero-grid{grid-template-columns:minmax(0,1.35fr)minmax(0,1fr);align-items:end}}.hero-eyebrow-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.hero-eyebrow-row .index{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.1em}.hero-eyebrow-row .sep{flex:1;height:1px;background:var(--rule)}.hero h1 .sig{color:var(--accent);font-weight:400;position:relative}.hero h1 .sig::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.08em;background:var(--accent);opacity:.2}.hero-sub{font-family:var(--font-sans);font-size:clamp(1.05rem,1.6vw,1.35rem);color:var(--ink-2);max-width:52ch;margin-top:1.5rem;font-weight:300}.hero-meta{margin-top:2rem;display:flex;flex-wrap:wrap;gap:1rem 2rem}.hero-meta>div{display:flex;flex-direction:column;gap:.2rem}.hero-meta .k{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em}.hero-meta .v{font-family:var(--font-sans);font-size:.95rem;color:var(--ink);font-weight:500}.hero-cta{margin-top:2.25rem;display:flex;gap:.75rem;flex-wrap:wrap}.hero-aside{position:relative}.portrait{position:relative;aspect-ratio:1;border-radius:var(--r-lg);overflow:hidden;background:var(--paper-2);border:1px solid var(--rule);box-shadow:var(--sh-3)}.portrait-placeholder{position:absolute;inset:0;display:grid;place-items:center}.portrait img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mobile-nav-overlay{position:fixed;inset:0;z-index:100;visibility:hidden;opacity:0;transition:visibility var(--dur)var(--ease),opacity var(--dur)var(--ease)}.mobile-nav-overlay::before{content:"";position:absolute;inset:0;background:color-mix(in oklab,var(--ink) 40%,transparent)}.mobile-nav-overlay.is-open{visibility:visible;opacity:1}.mobile-nav-overlay.is-open .mobile-nav-panel{transform:translateY(0)}.mobile-nav-panel{position:absolute;inset:0;width:100%;background:var(--paper);padding:clamp(5rem,12vw,7rem)clamp(1.5rem,5vw,3rem)2rem;overflow-y:auto;transform:translateY(-100%);transition:transform var(--dur)var(--ease);display:flex;flex-direction:column}.mobile-nav-close{position:absolute;top:clamp(1rem,3vw,1.5rem);right:clamp(1.5rem,5vw,3rem);z-index:1}.mobile-nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.mobile-nav-item{border-bottom:1px solid var(--rule)}.mobile-nav-link{display:block;padding:1rem .5rem;font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--ink);text-decoration:none;letter-spacing:-.01em;transition:color var(--dur-fast)var(--ease)}.mobile-nav-link:hover,.mobile-nav-link.active{color:var(--accent)}.mobile-nav-sublink:hover,.mobile-nav-sublink.active{color:var(--accent)}.mobile-nav-cta{margin-top:auto;padding-top:2rem}.header{position:sticky;top:0;z-index:50;backdrop-filter:saturate(140%)blur(14px);background:color-mix(in oklab,var(--paper) 82%,transparent);border-bottom:1px solid var(--rule);padding:0}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.9rem}.navbar-brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-weight:600;font-family:var(--font-sans);font-size:.95rem;letter-spacing:-.005em}.navbar-brand image{max-height:100%;max-width:100%}.brand-mark{width:30px;height:30px;border-radius:7px;background:var(--ink);color:var(--paper);font-family:var(--font-display);display:grid;place-items:center;font-size:1rem;font-weight:600;line-height:1;position:relative;overflow:hidden;flex-shrink:0}.brand-mark::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,var(--accent) 120%);mix-blend-mode:screen;opacity:.9}.brand-mark span{position:relative;z-index:2}.navbar-brand small{font-family:var(--font-mono);color:var(--ink-3);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.navbar-nav{text-align:center}@media(min-width:1200px){.navbar-nav{text-align:left}}.nav-link{font-family:var(--font-sans);font-size:.88rem;font-weight:500;padding:.5rem .85rem;color:var(--ink-2);text-decoration:none;border-radius:var(--r-sm);transition:color var(--dur-fast)var(--ease),background var(--dur-fast)var(--ease);display:block;cursor:pointer}.nav-link:hover{color:var(--ink);background:var(--paper-2)}.nav-link.active{color:var(--ink)}.nav-link.active::after{content:"";display:block;margin-top:4px;height:2px;width:14px;background:var(--accent);border-radius:2px}@media(min-width:1200px){.nav-link{display:inline-block;padding:.5rem .85rem}}.nav-dropdown.active .nav-dropdown-list{display:block}.theme-switcher{display:inline-flex}.site-footer{margin-top:0;padding:clamp(3rem,6vw,5rem)0 2rem;border-top:1px solid var(--rule);background:var(--paper-2);position:relative;z-index:2}.footer-grid{display:grid;gap:2rem;grid-template-columns:1fr}@media(min-width:800px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}.footer-wordmark{font-family:var(--font-display);font-size:clamp(2.8rem,6vw,5.4rem);line-height:.95;color:var(--ink);margin-bottom:1.25rem;letter-spacing:-.045em;font-weight:600}.footer-wordmark em{font-style:normal;font-weight:400;color:var(--accent)}.footer-col h5{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3);font-weight:500;margin-bottom:.8rem}.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem}.footer-col a{text-decoration:none;color:var(--ink-2);font-size:.95rem;transition:color var(--dur-fast)var(--ease)}.footer-col a:hover{color:var(--ink)}.footer-bottom{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);display:flex;flex-direction:column;align-items:stretch;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;gap:1rem}.footer-bottom-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;width:100%}.footer-disclaimer{margin:.75rem 0 0;font-family:var(--font-sans);font-size:.72rem;color:var(--ink-3);line-height:1.5;letter-spacing:0;text-transform:none;max-width:100%}.btn{display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap;font-family:var(--font-sans);font-weight:500;font-size:.9rem;padding:.7rem 1.05rem;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform var(--dur-fast)var(--ease),background var(--dur-fast)var(--ease),color var(--dur-fast)var(--ease),border-color var(--dur-fast)var(--ease),box-shadow var(--dur-fast)var(--ease);position:relative}.btn i{font-size:.85em}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-ghost{background:0 0;color:var(--ink);border-color:var(--rule-2)}.btn-ghost:hover{border-color:var(--ink);background:var(--paper-2)}.btn-link{padding:.4rem 0;border-color:transparent;color:var(--ink);border-bottom:1px solid var(--rule-2);border-radius:0}.btn-link:hover{color:var(--accent);border-color:var(--accent)}.btn-sm{font-size:.82rem;padding:.45rem .75rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-2\.5{bottom:.625rem}.left-1\/2{left:50%}.right-2\.5{right:.625rem}.top-1\/2{top:50%}.z-10{z-index:10}.z-50{z-index:50}.m-0{margin:0}.m-3{margin:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-4{height:1rem}.h-full{height:100%}.min-h-full{min-height:100%}.w-10{width:2.5rem}.w-12{width:3rem}.w-4{width:1rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-3xl{max-width:48rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.hyphens-auto{hyphens:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-t{border-top-width:1px}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-10{padding-bottom:2.5rem}.pb-4{padding-bottom:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:16px}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-medium{font-weight:500}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.duration-150{transition-duration:150ms}.duration-200{transition-duration:200ms}.rounded{border-radius:var(--r-sm)}.rounded-lg{border-radius:var(--r-lg)}.shadow-xl{box-shadow:var(--sh-3)}.search-wrapper{position:relative;z-index:1}.search-wrapper svg{display:inline-block;background-color:initial}.search-wrapper-header{padding:14px;position:relative}.search-wrapper-header input{border:1px solid #ddd;width:100%;border-radius:4px;height:52px;padding:0 15px 0 40px;transition:.25s}.search-wrapper-header input:focus{border-color:var(--color-primary);box-shadow:none;outline:none}.search-wrapper-header label{position:absolute;left:28px;top:calc(50% - 13px)}.search-wrapper-header label .search-reset{display:none;transition:.1s}.search-wrapper-header label .search-reset:hover{cursor:pointer;color:#fb5c5c}.search-result-empty{display:block;text-align:center;padding:32px 0;cursor:text;-webkit-user-select:none;-moz-user-select:none;user-select:none}.search-result mark{padding:0;border-radius:2px}.search-result:not(:empty)+.search-result-empty{display:none}.search-not-found{text-align:center}.search-not-found svg{margin-bottom:16px}.search-not-found p{margin-bottom:0}.search-result-item{position:relative;display:block;padding:16px;border-radius:4px;border:1px solid #eee;background-color:#fff;transition:0s;margin-bottom:4px;display:flex;align-items:flex-start}.search-result-item div:empty,.search-result-item .search-result-item-description:empty{display:none}.search-result-item-image{flex-shrink:0}.search-result-item-image:empty{display:none}.search-result-item-body{flex-grow:1}.search-result-item>div>img{border-radius:4px;max-height:400px;width:100%;-o-object-fit:cover;object-fit:cover}.search-page .search-result-item>div>img{-o-object-fit:cover;object-fit:cover;max-height:250px;width:100%}.search-result-item:focus,.search-result-item.search-item-selected,.search-result-item:hover{background-color:var(--color-primary)}.search-result-item:focus *,.search-result-item.search-item-selected *,.search-result-item:hover *{color:#fff}.search-result-item:focus mark,.search-result-item.search-item-selected mark,.search-result-item:hover mark{background-color:#fef08a;color:#060606}.search-result-item [data-result-item] u{color:var(--color-primary)}.search-result-item .hidden{display:none}.search-result-group-title{padding:0 12px;display:inline-block;margin-bottom:5px;margin-top:15px;font-size:18px}.search-result-item-title{transition:0s;font-size:18px;color:#000;margin-bottom:0;line-height:1.35;font-weight:700}.search-result-item-title::before{position:absolute;bottom:0;left:0;right:0;top:0;z-index:10;content:""}.search-result-item-content{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin:6px 0}.search-result-item-description{font-size:90%;margin-top:6px;margin-bottom:4px}.search-result-item-content:empty{display:none}.search-result-item-taxonomies{display:flex;flex-wrap:wrap;font-size:13px;align-items:center}.search-result-item-taxonomies>div{margin-right:12px;color:#999}.search-result-item-taxonomies>div svg{margin-right:4px}.search-wrapper-footer{color:#999;font-size:12px;padding:8px 14px;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1;display:flex;align-items:center}.search-wrapper-footer kbd{color:#777;background-color:#eee;font-size:12px;border-radius:3px;margin-right:3px;padding:2px 4px;line-height:1;text-align:center;display:inline-block}.search-wrapper-footer span:not(:last-child){margin-right:16px}.search-wrapper-footer span:last-child{margin-left:auto}.search-wrapper-footer .search-result-info:empty{display:none}.search-wrapper-footer .search-result-info{margin-left:-3px}.search-wrapper-footer .search-result-info em{color:#000;font-style:normal;padding:0 3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.search-modal{position:fixed;height:100%;width:100%;inset:0;z-index:9999;opacity:0;visibility:hidden}.search-modal.show{opacity:1;visibility:visible}.search-modal-overlay{position:fixed;height:100%;width:100%;top:0;left:0;background-color:rgba(0,0,0,.5)}.search-modal .search-wrapper{width:660px;max-width:96%;margin:100px auto;border-radius:4px;background-color:#fff}.search-modal .search-wrapper-body{max-height:calc(100vh - 350px);padding:14px;overflow-y:auto;background-color:#f5f6f7;box-shadow:inset 0 2px 18px #ddd;border-radius:4px}.search-modal .search-result-group:first-child .search-result-group-title:not(:empty){margin-top:-15px}.search-modal .search-result-item a>div{margin-right:16px}.search-modal .search-result-item-image{margin-right:15px}.search-modal .search-result-item-image img{width:100px;height:100px;-o-object-fit:cover;object-fit:cover}@media(max-width:576px){.search-modal .search-result-item-image img{width:60px;height:60px}.search-wrapper-footer{display:none}}.dark .search-modal .search-wrapper{background-color:#1c1c1c}.dark .search-modal .search-wrapper-header input{color:#fff;background-color:#222;border-color:#535353}.dark .search-modal .search-wrapper-header input:focus{border-color:#fff}.dark .search-modal .search-wrapper-body{background-color:#222;box-shadow:none}.dark .search-modal .search-result-item{border-color:#3e3e3e;background-color:#1c1c1c}.dark .search-modal .search-result-item:focus,.dark .search-modal .search-result-item.search-item-selected,.dark .search-modal .search-result-item:hover{background-color:#060606}.dark .search-modal .search-result-item .search-result-item-title{color:#fff}.dark .search-wrapper-footer kbd{background-color:#3e3e3e;color:#ccc}.dark .search-wrapper-footer .search-result-info em{color:#fff}.search-page .search-wrapper{padding:100px 0}.search-page .search-wrapper-header,.search-page .search-wrapper-footer{width:660px;max-width:96%;margin:0 auto}.search-page .search-wrapper-footer{padding-top:0;padding-bottom:0;margin-bottom:60px}.search-page .search-wrapper-body{padding:0 16px}.search-page .search-result-group{display:flex;flex-wrap:wrap}.search-page .search-result-item{margin-right:-15px;margin-left:-15px}.search-page .search-result-group>p,.search-page .search-result-item{padding-right:15px!important;padding-left:15px!important}.search-page .search-result-group>p{width:100%}.search-page .search-result-item{flex:none;width:calc(100% - (4 * 4px));display:block;padding-top:15px!important;padding-bottom:15px!important;margin:0 8px 16px}.search-page .search-result-item .search-result-item-image{margin-bottom:10px}.search-page .search-result-group-title{font-size:22px;font-weight:700}.search-page .search-result-info{display:block;text-align:center}.search-page .search-wrapper-header input{padding:0 20px}@media(min-width:576px){.search-page .search-result-item{width:calc(50% - (4 * 4px))}}@media(max-width:576px){.search-wrapper .search-wrapper-footer span:not(.search-result-info){display:none}}@media(min-width:768px){.search-page .search-result-item{width:calc(33.3333333333% - (4 * 4px))}}@media(min-width:992px){.search-page .search-result-item{width:calc(25% - (4 * 4px))}}.dark .search-page .search-wrapper-header input{color:#fff;background-color:#222;border-color:#535353}.dark .search-page .search-wrapper-header input:focus{border-color:#fff}.dark .search-page .search-result-item{border-color:#3e3e3e;background-color:#1c1c1c}.dark .search-page .search-result-item:focus,.dark .search-page .search-result-item.search-item-selected,.dark .search-page .search-result-item:hover{background-color:#060606}.dark .search-page .search-result-item-title{color:#fff}.share-title{display:inline-block;margin-right:.3em}.share-link{border-radius:.25rem;transition:25ms ease-out;height:2.5em;width:2.5em;line-height:2.5em;text-align:center;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;text-decoration:none;color:#fff;margin:.5em;display:inline-block;vertical-align:middle}.share-icon{fill:#fff;stroke:none;display:block;height:100%}.share-icon svg{width:1em;height:100%;margin:auto}.share-twitter{background-color:#000}.share-twitter:hover{background-color:#0c0c0c}.share-pinterest{background-color:#bd081c}.share-pinterest:hover{background-color:#8c0615}.share-facebook{background-color:#3b5998}.share-facebook:hover{background-color:#2d4373}.share-tumblr{background-color:#35465c}.share-tumblr:hover{background-color:#222d3c}.share-reddit{background-color:#5f99cf}.share-reddit:hover{background-color:#3a80c1}.share-google{background-color:#dd4b39}.share-google:hover{background-color:#c23321}.share-linkedin{background-color:#0077b5}.share-linkedin:hover{background-color:#046293}.share-email{background-color:#777}.share-email:hover{background-color:#5e5e5e}.share-whatsapp{background-color:#25d366}.share-whatsapp:hover{background-color:#1da851}.share-hackernews{background-color:#f60}.share-hackernews:hover{background-color:#fb6200}.share-vk{background-color:#507299}.share-vk:hover{background-color:#43648c}.share-facebook{background-color:#3b5998}.share-facebook:hover{background-color:#2d4373}.share-twitter{background-color:#55acee}.share-twitter:hover{background-color:#2795e9}.share-google{background-color:#dd4b39}.share-google:hover{background-color:#c23321}.share-email{background-color:#777}.share-email:hover{background-color:#5e5e5e}.share-reddit{background-color:#5f99cf}.share-reddit:hover{background-color:#3a80c1}.share-whatsapp{background-color:#25d366}.share-whatsapp:hover{background-color:#1da851}.share-telegram{background-color:#54a9eb}.share-telegram:hover{background-color:#4b97d1}.img{max-width:100%;height:auto}/*!* Justified gallery style*/.gallery{display:flex;flex-wrap:wrap;margin-left:-10px;margin-right:-10px}.gallery .gallery-item{margin:0 10px;margin-bottom:20px;overflow:hidden;max-width:calc(100% - 20px)}.gallery .gallery-item img{-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;vertical-align:middle;transition:.3s}.gallery.zoomable .gallery-item:hover img{transform:scale(1.05);cursor:zoom-in}.gallery::after{content:"";flex-grow:99999;min-width:calc(100vw/3)}@media(max-width:460px){.gallery{flex-direction:column}.gallery .gallery-item{width:calc(100% - 20px)!important}}.gallery-slider .swiper-slide img{width:100%}.gallery-slider .swiper-button-prev,.gallery-slider .swiper-button-next{color:#fff;opacity:0;transition:.3s}.gallery-slider:hover .swiper-button-prev,.gallery-slider:hover .swiper-button-next{opacity:1}.gallery-slider:hover .swiper-button-prev{left:30px}.gallery-slider:hover .swiper-button-next{right:30px}.img{max-width:100%;height:auto}.logo-light{display:initial}.logo-dark{display:none}.dark .logo-light{display:none}.dark .logo-dark{display:initial}.content img{max-width:100%;margin-bottom:1.5rem;height:auto;display:inline-block}.content img.glightbox{cursor:pointer}.content img.img-center{display:block;margin-left:auto;margin-right:auto}.content img.img-left{display:block;margin-left:0;margin-right:auto}.content img.img-right{display:block;margin-left:auto;margin-right:0}.content img.img-float-left{float:left;margin-right:1.5rem}.content img.img-float-right{float:right;margin-left:1.5rem}.content figure{display:inline-block;margin-bottom:1.5rem}.content figure img{margin-bottom:.7rem}.content figure.img-center{display:block;text-align:center}.content figure.img-left{display:block;text-align:left}.content figure.img-right{display:block;text-align:right}.content figure.img-float-left{float:left;margin-right:1.5rem}.content figure.img-float-right{float:right;margin-left:1.5rem}.table-of-content{cursor:pointer;margin:1rem 0 1.5rem}.table-of-content summary{-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:18px;color:#fff;background-color:#555;padding:5px 20px;margin-bottom:0!important}.table-of-content ul li::before{display:none}.table-of-content #TableOfContents{padding:10px;background-color:#f7f7f7}.table-of-content #TableOfContents li,.table-of-content #TableOfContents a{color:#333!important}.table-of-content #TableOfContents a{text-decoration:none}.table-of-content #TableOfContents a:hover{text-decoration:underline}.content .table-of-content ul li,.content .table-of-content ol li{margin-bottom:6px!important}.dark #TableOfContents{background-color:#333}.dark #TableOfContents li,.dark #TableOfContents a{color:#fff!important}.tab-nav{list-style:none;padding:0;margin:0!important;list-style-type:none!important;display:flex;border-bottom:1px solid #aaa;overflow-x:auto}.tab-nav::-webkit-scrollbar{width:2px}.tab-nav-item{padding:.5rem 1rem!important;cursor:pointer;opacity:.8;margin:0!important;white-space:nowrap}.tab-nav-item::before{display:none!important}.tab-nav-item.active{border-bottom:3px solid #aaa;opacity:1}.tab-content .tab-content-panel{display:none;padding:1rem .5rem}.tab-content .tab-content-panel p{margin-bottom:0!important}.tab-content .tab-content-panel.active{display:block}.accordion{border:1px solid #ccc}.accordion-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;font-size:1.1rem;width:100%;font-weight:700;text-align:left}.accordion-icon{width:.78em;height:.78em;transform:rotate(-90deg);transition:transform .2s ease}.accordion-content{overflow:hidden;max-height:0;transition:max-height .3s ease-in-out,padding .3s ease-in-out;padding:0 1rem}.accordion-content p{margin-bottom:16px}.accordion.active .accordion-content{padding:0 1rem}.accordion.active .accordion-icon{transform:rotate(0)}.accordion.active .accordion-content{max-height:-moz-max-content;max-height:max-content}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:none;height:100%;width:100%;overflow:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:none;height:100%;width:100%;background-color:rgba(0,0,0,.4)}.modal-content{position:relative;top:50%;z-index:50;transform:translateY(-50%);background-color:#fff;border-radius:.5rem;padding:2rem;max-width:90%;margin:0 auto}.modal-close{position:absolute;top:.5rem;right:.5rem;height:2rem;width:2rem;background-color:#f2f2f2;color:#000;border-radius:50%;text-align:center;line-height:2rem}.notice{margin-bottom:1.5rem;border:1px solid #e5e7eb;padding:1.5rem}.notice-head{display:flex;align-items:center}.notice-head svg{margin-right:.75rem}.notice-head p{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0;line-height:1}.notice-body{margin-top:.75rem}.notice-body p{margin:0}.notice.note{color:#1b83e2;border-color:initial}.notice.tip{color:#40d294;border-color:initial}.notice.info{color:#e3a72c;border-color:initial}.notice.warning{color:#db2c23;border-color:initial}.dark .notice-head p{color:#d1d5db}.github-repo{display:block;text-decoration:none;color:var(--ink);font-family:var(--font-sans);transition:transform var(--dur)var(--ease),border-color var(--dur)var(--ease),box-shadow var(--dur)var(--ease),background var(--dur)var(--ease)}.github-repo svg{flex-shrink:0;vertical-align:-.125em}.github-repo__title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--ink);line-height:1.35;margin:0}.github-repo__owner{font-weight:400;color:var(--ink-3)}.github-repo__description{color:var(--ink-2);font-size:.9rem;line-height:1.55;margin:.35rem 0 0}.github-repo__lang-dot{display:inline-block;width:.65rem;height:.65rem;border-radius:50%;background:var(--github-repo-lang-color,var(--accent));box-shadow:0 0 0 3px color-mix(in oklab,var(--github-repo-lang-color,var(--accent)) 15%,transparent);vertical-align:middle;margin-right:.25rem}.github-repo__meta-item{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-3)}.github-repo__meta-item svg{font-size:.85em;color:var(--ink-3)}.github-repo__meta-item--updated{margin-left:auto}.github-repo__topics{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.github-repo__topic{display:inline-block;font-family:var(--font-mono);font-size:.66rem;font-weight:500;color:var(--accent-2);background:color-mix(in oklab,var(--accent) 12%,var(--paper-3));padding:.2rem .6rem;border-radius:999px}.github-repo__external-badge{display:grid;place-items:center;border:1px solid var(--rule);color:var(--ink-3);transition:all var(--dur)var(--ease);flex-shrink:0}.github-repo--card,.github-repo--stats,.github-repo--lang,.github-repo--hero{position:relative;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden}.github-repo--card::before,.github-repo--stats::before,.github-repo--lang::before,.github-repo--hero::before{content:"";position:absolute;top:0;left:0;width:28px;height:2px;background:var(--accent);transition:width var(--dur)var(--ease)}.github-repo--card:hover,.github-repo--stats:hover,.github-repo--lang:hover,.github-repo--hero:hover{border-color:var(--rule-2);box-shadow:var(--sh-2);transform:translateY(-2px);background:var(--paper-2)}.github-repo--card:hover::before,.github-repo--stats:hover::before,.github-repo--lang:hover::before,.github-repo--hero:hover::before{width:64px}.github-repo--card:hover .github-repo__external-badge,.github-repo--stats:hover .github-repo__external-badge,.github-repo--lang:hover .github-repo__external-badge,.github-repo--hero:hover .github-repo__external-badge{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:rotate(-45deg)}.github-repo--inline{display:inline-flex;align-self:flex-start;justify-self:flex-start;max-width:100%;align-items:center;gap:.55rem;padding:.6rem 1rem;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--paper-2);font-size:.9rem;font-weight:500;transition:transform var(--dur-fast)var(--ease),border-color var(--dur-fast)var(--ease),background var(--dur-fast)var(--ease),box-shadow var(--dur-fast)var(--ease)}.github-repo--inline:hover{background:var(--paper-3);border-color:var(--rule-2);transform:translateY(-1px);box-shadow:var(--sh-1)}.github-repo--inline:hover .github-repo__external{color:var(--accent);transform:translate(1px,-1px)}.github-repo--inline .github-repo__icon{font-size:1.2em;color:var(--ink)}.github-repo--inline .github-repo__name{color:var(--ink);min-width:0}.github-repo--inline .github-repo__owner{color:var(--ink-3);font-weight:400}.github-repo--inline .github-repo__separator{color:var(--ink-3);margin:0 .05rem}.github-repo--inline .github-repo__external{font-size:.65em;color:var(--ink-3);margin-left:.15rem;transition:transform var(--dur-fast)var(--ease),color var(--dur-fast)var(--ease)}.github-repo--card{padding:1.35rem 1.4rem 1.3rem}.github-repo--card .github-repo__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}.github-repo--card .github-repo__slug{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}.github-repo--card .github-repo__icon{color:var(--ink-3)}.github-repo--card .github-repo__external-badge{width:22px;height:22px;border-radius:999px;font-size:.58rem}.github-repo--card .github-repo__footer{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.15rem;margin-top:.85rem;padding-top:.75rem;border-top:1px dashed var(--rule)}.github-repo--stats{padding:1.35rem 1.4rem 0}.github-repo--stats .github-repo__head{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:.65rem}.github-repo--stats .github-repo__avatar{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:var(--r-md);background:var(--ink);color:var(--paper);font-family:var(--font-display);font-weight:700;font-size:1.15rem;flex-shrink:0;position:relative;overflow:hidden}.github-repo--stats .github-repo__avatar::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,var(--accent) 120%);mix-blend-mode:screen;opacity:.9}.github-repo--stats .github-repo__avatar>*{position:relative;z-index:2}.github-repo--stats .github-repo__head-meta{flex:1;min-width:0}.github-repo--stats .github-repo__eyebrow{display:flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.65rem;font-weight:600;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;margin-bottom:.15rem}.github-repo--stats .github-repo__external-badge{width:32px;height:32px;border-radius:var(--r-sm);font-size:.95rem;color:var(--ink-2);margin-left:auto;align-self:flex-start}.github-repo--stats .github-repo__stat-row{display:grid;grid-template-columns:repeat(4,1fr);margin:.85rem -1.4rem 0;border-top:1px solid var(--rule)}.github-repo--stats .github-repo__stat{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .9rem;border-right:1px solid var(--rule)}.github-repo--stats .github-repo__stat:last-child{border-right:none}.github-repo--stats .github-repo__stat-label{font-family:var(--font-mono);font-size:.65rem;font-weight:600;letter-spacing:.05em;color:var(--ink-3);text-transform:uppercase}.github-repo--stats .github-repo__stat-value{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.95rem;font-weight:600;color:var(--ink)}.github-repo--lang{padding:1.35rem 1.4rem 1.3rem}.github-repo--lang .github-repo__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.github-repo--lang .github-repo__slug{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}.github-repo--lang .github-repo__star-pill{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.66rem;font-weight:500;color:var(--ink-2);background:var(--paper-3);padding:.18rem .45rem;border:1px solid var(--rule);border-radius:999px;letter-spacing:.04em}.github-repo--lang .github-repo__star-pill svg{color:var(--status-warn)}.github-repo--lang .github-repo__langbar{display:flex;height:4px;border-radius:2px;overflow:hidden;background:var(--paper-3);margin-top:1rem;margin-bottom:.65rem}.github-repo--lang .github-repo__langbar>span{height:100%;display:block}.github-repo--lang .github-repo__lang-legend{display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3);letter-spacing:.02em}.github-repo--lang .github-repo__lang-legend-item{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.75rem}.github-repo--lang .github-repo__lang-dot{box-shadow:none}.github-repo--lang .github-repo__lang-pct{color:var(--ink-3);margin-left:.15rem}.github-repo--hero{padding:1.5rem 1.6rem 1.35rem}.github-repo--hero::before{width:36px}.github-repo--hero:hover::before{width:96px}.github-repo--hero .github-repo__hero-body{display:flex;flex-direction:column}.github-repo--hero .github-repo__hero-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}.github-repo--hero .github-repo__breadcrumb{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}.github-repo--hero .github-repo__breadcrumb-sep{color:var(--rule-2)}.github-repo--hero .github-repo__breadcrumb-type{color:var(--accent-2)}.github-repo--hero .github-repo__sparkline{display:inline-flex;align-items:flex-end;gap:1px;height:20px}.github-repo--hero .github-repo__sparkline>span{width:3px;border-radius:1px;background:color-mix(in oklab,var(--accent) 60%,transparent)}.github-repo--hero .github-repo__title--hero{font-size:1.7rem;font-weight:700}.github-repo--hero .github-repo__hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;margin-top:1rem;padding-top:.85rem;border-top:1px dashed var(--rule)}.github-repo--hero .github-repo__cta{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;font-family:var(--font-sans);font-size:.8rem;font-weight:600;color:var(--ink);transition:color var(--dur-fast)var(--ease)}.github-repo--hero .github-repo__cta-arrow{width:22px;height:22px;border-radius:999px;border:1px solid var(--rule);display:grid;place-items:center;font-size:.58rem;color:var(--ink);transition:all var(--dur)var(--ease)}.github-repo--hero:hover .github-repo__cta{color:var(--accent)}.github-repo--hero:hover .github-repo__cta-arrow{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:rotate(-45deg)}@media(max-width:480px){.github-repo--stats .github-repo__stat-row{grid-template-columns:repeat(2,1fr)}.github-repo--hero{padding:1.25rem}.github-repo__meta-item--updated{margin-left:0}}.table-of-content{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--rule)}.table-of-content summary{background:var(--paper-2);color:var(--ink);font-family:var(--font-mono);font-size:.85rem;padding:.75rem 1rem}.table-of-content #TableOfContents{background:var(--paper);padding:.75rem 1rem}.table-of-content #TableOfContents li,.table-of-content #TableOfContents a{color:var(--ink-2)}.table-of-content #TableOfContents a{text-decoration:none;transition:color var(--dur-fast)var(--ease)}.table-of-content #TableOfContents a:hover{color:var(--accent);text-decoration:none}.article-toc #TableOfContents{background-color:initial;padding:0}.article-toc #TableOfContents li,.article-toc #TableOfContents a{color:var(--ink-2)}.article-toc #TableOfContents a:hover{color:var(--ink);text-decoration:none}html.dark .article-toc #TableOfContents{background-color:initial}html.dark .article-toc #TableOfContents li,html.dark .article-toc #TableOfContents a{color:var(--ink-2)!important}html.dark .table-of-content #TableOfContents{background-color:var(--paper)}html.dark .table-of-content #TableOfContents li,html.dark .table-of-content #TableOfContents a{color:var(--ink-2)!important}.share-icons{display:flex;gap:.4rem}.share-icons .share-link{height:2.25rem;width:2.25rem;line-height:2.25rem;margin:0;border-radius:var(--r-sm);background:var(--paper-3);border:1px solid var(--rule);transition:all var(--dur-fast)var(--ease)}.share-icons .share-link:hover{background:var(--ink);border-color:var(--ink);transform:translateY(-2px)}.share-icons .share-icon svg{fill:var(--ink);transition:fill var(--dur-fast)var(--ease)}.share-icons .share-link:hover .share-icon svg{fill:var(--paper)}.notice{border-radius:var(--r-lg)}.tab{border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden}.tab-nav{border-color:var(--rule);background:var(--paper-2);padding-left:1rem}.tab-nav-item{color:var(--ink);padding-left:1.5rem!important;padding-right:1.5rem!important;padding-top:1rem!important;padding-bottom:1rem!important;font-size:1.125rem!important;line-height:1.75rem!important;font-weight:700!important}.tab-nav-item.active{border-color:var(--accent)}.tab-content{margin-top:1rem;margin-bottom:1rem;padding-left:1rem;padding-right:1rem}.tab-content-panel{padding-left:1rem!important;padding-right:1rem!important;padding-top:0!important}.accordion{border:1px solid var(--rule);background:var(--paper-2);margin-bottom:1.5rem;overflow:hidden;border-radius:var(--r-lg)}.accordion-header{color:var(--ink)}.cookie-box{border-radius:var(--r-lg)!important}.search-wrapper .search-wrapper-content{background:var(--paper)}.search-wrapper input{background:var(--paper-2);color:var(--ink);border-color:var(--rule)}.search-wrapper input:focus{border-color:var(--accent);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.search-wrapper kbd{background:var(--paper-2)}.search-wrapper .search-wrapper-body{background:var(--paper-2);box-shadow:var(--sh-2)}.search-wrapper.search-page .search-wrapper-body{background:0 0}.search-wrapper .search-result-info em{color:var(--ink);font-weight:600}.search-wrapper .search-result-item{background:var(--paper);border-color:var(--rule);padding:1rem}.search-wrapper .search-result-item .search-title{color:var(--ink)}.search-wrapper .search-result-item u{color:var(--accent);text-decoration:none}.search-wrapper .search-result-item .search-result-item-title{text-decoration:none}.search-wrapper .search-result-item:focus,.search-wrapper .search-result-item.search-item-selected,.search-wrapper .search-result-item:hover{background:color-mix(in oklab,var(--accent) 10%,transparent)}.search-wrapper .search-result-item:focus *,.search-wrapper .search-result-item.search-item-selected *,.search-wrapper .search-result-item:hover *{color:inherit}.search-wrapper .search-result-item:focus .search-title,.search-wrapper .search-result-item:focus .search-result-item-title,.search-wrapper .search-result-item.search-item-selected .search-title,.search-wrapper .search-result-item.search-item-selected .search-result-item-title,.search-wrapper .search-result-item:hover .search-title,.search-wrapper .search-result-item:hover .search-result-item-title{color:var(--ink)}.search-wrapper .search-result-item:focus .search-result-item-content,.search-wrapper .search-result-item:focus .search-result-item-description,.search-wrapper .search-result-item.search-item-selected .search-result-item-content,.search-wrapper .search-result-item.search-item-selected .search-result-item-description,.search-wrapper .search-result-item:hover .search-result-item-content,.search-wrapper .search-result-item:hover .search-result-item-description{color:var(--ink-2)}.search-wrapper .search-result-item:focus .search-result-item-taxonomies>div,.search-wrapper .search-result-item.search-item-selected .search-result-item-taxonomies>div,.search-wrapper .search-result-item:hover .search-result-item-taxonomies>div{color:var(--ink-3)}.search-wrapper .search-result-item:focus u,.search-wrapper .search-result-item.search-item-selected u,.search-wrapper .search-result-item:hover u{color:var(--accent);text-decoration:none}.search-wrapper .search-result-item:focus mark,.search-wrapper .search-result-item.search-item-selected mark,.search-wrapper .search-result-item:hover mark{background-color:color-mix(in oklab,var(--accent) 25%,transparent);color:var(--ink)}.dark .search-modal .search-wrapper{background-color:var(--paper)}.dark .search-modal .search-wrapper-body{background-color:var(--paper-2);box-shadow:none}.dark .search-modal .search-result-item{border-color:var(--rule);background-color:var(--paper)}.dark .search-modal .search-result-item:focus,.dark .search-modal .search-result-item.search-item-selected,.dark .search-modal .search-result-item:hover{background-color:color-mix(in oklab,var(--accent) 10%,transparent)}.dark .search-modal .search-result-item .search-result-item-title{color:var(--ink)}.dark .search-wrapper-footer kbd{background-color:var(--paper-3);color:var(--ink-2)}.dark .search-wrapper-footer .search-result-info em{color:var(--ink)}.dark .search-page .search-result-item{border-color:var(--rule);background-color:var(--paper)}.dark .search-page .search-result-item:focus,.dark .search-page .search-result-item.search-item-selected,.dark .search-page .search-result-item:hover{background-color:color-mix(in oklab,var(--accent) 10%,transparent)}.dark .search-page .search-result-item-title{color:var(--ink)}.gallery-slider{margin-left:0!important}.detail-page.cat-contact h1 em{color:var(--page-accent,var(--accent))}.detail-page.cat-contact .ds-label{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.14em}.detail-page.cat-contact .callout{border-color:color-mix(in oklab,var(--page-accent) 35%,var(--rule))}.detail-page.cat-contact .callout i.lead-icon{color:var(--page-accent,var(--accent))}.detail-page.cat-contact .detail-lede{max-width:none}.detail-page.cat-contact .contact-layout{display:grid;gap:2rem;grid-template-columns:1fr;align-items:start}@media(min-width:1080px){.detail-page.cat-contact .contact-layout{grid-template-columns:minmax(0,1.45fr)minmax(0,1fr);gap:3rem}}.detail-page.cat-contact .contact-layout .contact-aside{display:flex;flex-direction:column;gap:1.25rem}.detail-page.cat-contact .contact-full{margin-top:var(--s-7)}.detail-page.cat-contact .contact-full>.entity-details{margin:0}.detail-page.cat-contact .contact-full>.section-block{margin-top:0}.detail-page.cat-contact .contact-full>.editorial{margin:0}.detail-page.cat-contact .contact-full>*:not(:first-child){margin-top:var(--s-6)}.detail-page.cat-contact .contact-full .status-card{margin-top:0}.detail-page.cat-contact .status-list{grid-column:2/-1;margin:.6rem 0 0;padding:0;list-style:none;display:grid;gap:.4rem}.detail-page.cat-contact .status-list li{display:grid;grid-template-columns:auto 1fr;gap:.55rem;align-items:baseline;font-family:var(--font-sans);font-size:.86rem;color:var(--ink-2)}.detail-page.cat-contact .status-list .status-list__open i{color:var(--page-accent,var(--accent))}.detail-page.cat-contact .status-list .status-list__closed i{color:var(--status-error)}.detail-page.cat-contact .now-card{display:grid;grid-template-columns:1fr;gap:.5rem;padding:1.1rem 1.2rem;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--paper-2)}.detail-page.cat-contact .now-card .row{display:flex;justify-content:space-between;align-items:baseline;font-size:.93rem;color:var(--ink-2)}.detail-page.cat-contact .now-card .row .k{font-family:var(--font-mono);font-size:.68rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em}.detail-page.cat-contact .now-card .row .v{font-family:var(--font-mono);color:var(--ink)}.detail-page.cat-contact .now-card .clock{font-family:var(--font-display);font-size:2.4rem;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1;display:flex;align-items:baseline;gap:.5rem}.detail-page.cat-contact .now-card .clock .tz{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em}.detail-page.cat-contact .hours-strip{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--paper-2);overflow:hidden}@media(min-width:700px){.detail-page.cat-contact .hours-strip{grid-template-columns:repeat(7,1fr)}}.detail-page.cat-contact .hours-strip .day{padding:.85rem .9rem;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:.2rem}@media(max-width:699.9px){.detail-page.cat-contact .hours-strip .day{border-right:0;border-bottom:1px solid var(--rule);flex-direction:row;justify-content:space-between;align-items:baseline}}.detail-page.cat-contact .hours-strip .day:last-child{border-right:0;border-bottom:0}.detail-page.cat-contact .hours-strip .day .name{font-family:var(--font-mono);font-size:.68rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em}.detail-page.cat-contact .hours-strip .day .val{font-family:var(--font-sans);font-size:.92rem;color:var(--ink);font-weight:500}.detail-page.cat-contact .hours-strip .day.off .val{color:var(--ink-3)}.detail-page.cat-contact .hours-strip .day.today{background:color-mix(in oklab,var(--page-accent) 14%,var(--paper-2));position:relative}.detail-page.cat-contact .hours-strip .day.today .name{color:var(--page-accent);font-weight:600}.detail-page.cat-contact .hours-strip .day.today::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--page-accent)}.detail-page.cat-contact .channels-stacked{display:grid;grid-template-columns:1fr;gap:.55rem}.detail-page.cat-contact .channels-stacked .channel{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:.75rem;padding:.8rem .95rem;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-md);text-decoration:none;color:inherit;transition:border-color var(--dur-fast)var(--ease),transform var(--dur-fast)var(--ease),background var(--dur-fast)var(--ease)}.detail-page.cat-contact .channels-stacked .channel:hover{border-color:var(--page-accent);transform:translateY(-1px);background:color-mix(in oklab,var(--page-accent) 5%,var(--paper-2))}.detail-page.cat-contact .channels-stacked .channel .ico{width:34px;height:34px;border-radius:var(--r-sm);display:grid;place-items:center;background:color-mix(in oklab,var(--page-accent) 18%,var(--paper));color:var(--ink)}.detail-page.cat-contact .channels-stacked .channel .label{display:block;font-family:var(--font-mono);font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em}.detail-page.cat-contact .channels-stacked .channel .value{display:block;font-family:var(--font-sans);font-size:.96rem;color:var(--ink);font-weight:500}.detail-page.cat-contact .channels-stacked .channel .arrow{color:var(--ink-3);transition:color var(--dur-fast)var(--ease),transform var(--dur-fast)var(--ease)}.detail-page.cat-contact .channels-stacked .channel:hover .arrow{color:var(--page-accent);transform:translate(2px,-2px)}.detail-page.cat-contact .section-block{display:flex;flex-direction:column;gap:1.5rem;margin-top:var(--s-6)}.detail-page.cat-contact .section-block>h3{font-family:var(--font-display);font-weight:600;color:var(--ink);line-height:1.6;margin-top:.6em;margin-bottom:.3em;letter-spacing:-.025em}.detail-page.cat-contact .section-block>h3::before{content:"";display:block;width:32px;height:2px;background:var(--page-accent);margin-bottom:var(--s-4);opacity:.9}.detail-page.cat-contact .section-block>h3 em{font-style:normal;font-weight:400;color:var(--page-accent)}.detail-page.cat-contact .section-block>p{color:var(--ink-2);font-size:1rem;line-height:1.6;max-width:64ch;margin:0}.detail-page.cat-contact .contact-form{display:flex;flex-direction:column;gap:1.1rem;padding:1.6rem;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-md);position:relative}.detail-page.cat-contact .contact-form::before{content:"";position:absolute;top:0;left:0;width:64px;height:2px;background:var(--page-accent)}.detail-page.cat-contact .contact-form .field{display:flex;flex-direction:column;gap:.35rem}.detail-page.cat-contact .contact-form label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.detail-page.cat-contact .contact-form input,.detail-page.cat-contact .contact-form textarea{border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:var(--r-sm);padding:.7rem .9rem;font-family:var(--font-sans);font-size:.95rem}.detail-page.cat-contact .contact-form input:focus,.detail-page.cat-contact .contact-form textarea:focus{outline:none;border-color:var(--page-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--page-accent) 22%,transparent)}.detail-page.cat-contact .contact-form textarea{resize:vertical;min-height:180px;line-height:1.55}.detail-page.cat-contact .contact-form .form-foot{display:flex;justify-content:flex-start;margin-top:.25rem;padding-top:1rem;border-top:1px dashed var(--rule)}.detail-page.cat-contact .contact-form .btn-send{background:var(--page-accent);color:var(--ink);border:1px solid var(--page-accent);padding:.75rem 1.2rem;border-radius:var(--r-sm);font-family:var(--font-sans);font-weight:600;font-size:.95rem;cursor:pointer;display:inline-flex;align-items:center;gap:.55rem;transition:filter var(--dur-fast)var(--ease),transform var(--dur-fast)var(--ease)}.detail-page.cat-contact .contact-form .btn-send:hover{filter:brightness(.96);transform:translateY(-1px)}.detail-page.cat-contact .faq-list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}.detail-page.cat-contact .faq-list details{border-bottom:1px solid var(--rule);padding:1.05rem .25rem}.detail-page.cat-contact .faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:var(--font-display);font-size:1.1rem;font-weight:500;color:var(--ink);letter-spacing:-.01em}.detail-page.cat-contact .faq-list summary::-webkit-details-marker{display:none}.detail-page.cat-contact .faq-list summary .num{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.1em;margin-right:.4rem}.detail-page.cat-contact .faq-list summary .plus{width:24px;height:24px;border-radius:999px;border:1px solid var(--rule);display:grid;place-items:center;color:var(--ink-2);font-size:.7rem;flex:none;transition:all var(--dur-fast)var(--ease)}.detail-page.cat-contact .faq-list details[open] summary .plus{background:var(--page-accent);border-color:var(--page-accent);color:var(--ink);transform:rotate(45deg)}.detail-page.cat-contact .faq-list details>div{padding-top:.7rem;padding-left:2.85rem;color:var(--ink-2);font-size:.97rem;line-height:1.6;max-width:110ch}.content a:not(.github-repo),.feature-content a,.links a,.cookie-box a{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--rule-2)}.no-links a{text-decoration-line:none}.tooltip{position:absolute;bottom:100%;left:50%;z-index:10;margin-bottom:.5rem;display:none;width:100%;--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));white-space:normal;font-size:.75rem;line-height:1rem}.search-result-item .tooltip{display:none}.group:hover .tooltip{display:block}.tooltip{background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:var(--r-sm);padding:.5rem}.highlight pre,.highlight code{background:0 0;color:var(--ink-2)}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt,.highlight .nb,.highlight .bp{color:var(--accent);font-weight:600}.highlight .s,.highlight .sa,.highlight .sb,.highlight .sc,.highlight .dl,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr,.highlight .s1,.highlight .ss{color:var(--status-ok)}.highlight .c,.highlight .ch,.highlight .cm,.highlight .c1,.highlight .cs,.highlight .cp,.highlight .cpf{color:var(--ink-3);font-style:italic}.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo{color:var(--accent)}.highlight .nf,.highlight .fm{color:var(--ink);font-weight:600}.highlight .o,.highlight .ow{color:var(--accent)}.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi,.highlight .vm{color:var(--ink)}.highlight .nc,.highlight .no,.highlight .nd,.highlight .ni,.highlight .ne,.highlight .nn,.highlight .nt{color:var(--ink);font-weight:600}.highlight .ln{color:var(--ink-3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-wrapper{position:relative}.code-block-wrapper .highlight{position:relative;border-radius:var(--r-md)}.code-block-wrapper .highlight pre{font-family:var(--font-mono);background:var(--paper-3);border:1px solid var(--rule);border-radius:var(--r-md);padding:1.1rem 1.2rem;font-size:.82rem;line-height:1.55;color:var(--ink-2);overflow-x:auto;margin:0}.code-block-wrapper .highlight pre>code{display:inline-block}.copy-code-button{position:absolute;right:.5rem;top:.5rem;width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-3);background:color-mix(in oklab,var(--paper-2) 80%,transparent);backdrop-filter:blur(4px);border:1px solid var(--rule);cursor:pointer;transition:all var(--dur-fast)var(--ease);z-index:10;font-size:.8rem;opacity:0;padding:0}.copy-code-button:hover{color:var(--ink);background:var(--paper-2);border-color:var(--rule-2)}.copy-code-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.copy-code-button:active{transform:scale(.92)}.copy-code-button.success{color:var(--status-ok);border-color:var(--status-ok)}.copy-code-button.error{color:var(--status-error);border-color:var(--status-error)}.code-block-wrapper:hover .copy-code-button,.code-block-wrapper .copy-code-button:focus-visible{opacity:1}.article-toc{border-left:1px solid var(--rule);padding-left:1.25rem}.article-toc .toc-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.75rem}.article-toc .toc-links #TableOfContents ol,.article-toc .toc-links #TableOfContents ul{list-style:none;padding:0;margin:0}.article-toc .toc-links #TableOfContents ol li,.article-toc .toc-links #TableOfContents ul li{margin:0}.article-toc .toc-links #TableOfContents ol a,.article-toc .toc-links #TableOfContents ul a{display:block;padding:.35rem 0;color:var(--ink-2);text-decoration:none;border-left:2px solid transparent;margin-left:-1.25rem;padding-left:calc(1.25rem - 2px);transition:all var(--dur-fast)var(--ease);font-size:.88rem}.article-toc .toc-links #TableOfContents ol a:hover,.article-toc .toc-links #TableOfContents ul a:hover{color:var(--ink);border-left-color:var(--accent)}.article-toc .toc-links #TableOfContents ol ol,.article-toc .toc-links #TableOfContents ol ul,.article-toc .toc-links #TableOfContents ul ol,.article-toc .toc-links #TableOfContents ul ul{padding-left:1rem}.article-toc .toc-links #TableOfContents ol ol a,.article-toc .toc-links #TableOfContents ol ul a,.article-toc .toc-links #TableOfContents ul ol a,.article-toc .toc-links #TableOfContents ul ul a{font-size:.84rem;color:var(--ink-3)}.article-toc .toc-links #TableOfContents ol ol a:hover,.article-toc .toc-links #TableOfContents ol ul a:hover,.article-toc .toc-links #TableOfContents ul ol a:hover,.article-toc .toc-links #TableOfContents ul ul a:hover{color:var(--ink)}.detail-page.cat-skills{--page-accent:var(--cat-skills)}.detail-page.cat-experience{--page-accent:var(--cat-experience)}.detail-page.cat-projects{--page-accent:var(--cat-projects)}.detail-page.cat-certifications{--page-accent:var(--cat-certifications)}.detail-page.cat-education{--page-accent:var(--cat-education)}.detail-page.cat-blog{--page-accent:var(--cat-blog)}.detail-page.cat-contact{--page-accent:var(--cat-contact)}.detail-page .eyebrow .dot{background:var(--page-accent,var(--accent));box-shadow:0 0 0 3px color-mix(in oklab,var(--page-accent,var(--accent)) 20%,transparent)}.detail-lede{font-family:var(--font-sans);font-size:clamp(1.1rem,1.5vw,1.25rem);color:var(--ink-2);line-height:1.55;font-weight:300;max-width:58ch;margin:var(--s-3)0 1.75rem}.entity-details{display:grid;grid-template-columns:1fr;gap:1.1rem 1.5rem;padding:1.25rem 1.5rem;border:1px solid var(--page-accent,var(--accent));border-radius:var(--r-md);background:var(--paper-2);margin:1.5rem 0 2.5rem}@media(min-width:768px){.entity-details{grid-template-columns:repeat(2,1fr)}}@media(min-width:1280px){.entity-details{grid-template-columns:repeat(3,1fr)}}.entity-details .meta-row{display:flex;flex-direction:column;gap:.5rem;padding-top:.35rem}.entity-details .meta-label{font-family:var(--font-mono);font-size:.72rem;line-height:1.05;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-weight:500;white-space:nowrap;margin:0 0 .2rem}.entity-details .meta-value{display:flex;align-items:baseline;gap:.5rem;font-family:var(--font-sans);font-size:.93rem;color:var(--ink)}.entity-details .meta-value i{color:var(--page-accent,var(--accent));font-size:.88em;min-width:1em;text-align:center;flex-shrink:0}.entity-details .meta-value img{display:inline-block;height:.88em;max-width:none;flex-shrink:0}.entity-details .meta-value a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--rule-2)}.entity-details .meta-value a:hover{color:var(--page-accent,var(--accent));text-decoration-color:var(--page-accent,var(--accent))}.entity-details .related-group{display:flex;flex-direction:column;gap:.5rem;padding-top:.35rem}.entity-details .related-group h4{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-weight:500;margin:0 0 .2rem}.entity-details .related-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.entity-details .related-list li{display:flex;align-items:baseline;gap:.5rem;font-size:.92rem}.entity-details .related-list li i{min-width:1em;text-align:center;font-size:.88em}.entity-details .related-list li img{display:inline-block;height:.88em;max-width:none;flex-shrink:0}.entity-details .related-list a{color:var(--ink);text-decoration:underline;text-decoration-style:dashed;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--rule-2);transition:color var(--dur-fast)var(--ease),text-decoration-color var(--dur-fast)var(--ease)}.entity-details .related-list a:hover{color:var(--page-accent,var(--accent));text-decoration-color:var(--page-accent,var(--accent));text-decoration-style:solid}.rel-skills i{color:var(--cat-skills)}.rel-experience i{color:var(--cat-experience)}.rel-projects i{color:var(--cat-projects)}.rel-certifications i{color:var(--cat-certifications)}.rel-education i{color:var(--cat-education)}.prose-long{display:flex;flex-direction:column;gap:1.15rem;font-family:var(--font-sans);font-size:1.06rem;line-height:1.65;color:var(--ink-2);max-width:none}.prose-long h3:not(.github-repo *){font-family:var(--font-display);font-weight:600;color:var(--ink);line-height:1.6;margin-top:.6em;margin-bottom:.3em}.prose-long h3:not(.github-repo *)::before{content:"";display:block;width:32px;height:2px;background:var(--page-accent,var(--accent));margin-bottom:var(--s-4);opacity:.9}.prose-long p:not(.github-repo *){margin:0}.prose-long p:not(.github-repo *) strong{color:var(--ink);font-weight:600}.prose-long a:not(.github-repo){color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--rule-2)}.prose-long a:not(.github-repo):hover{color:var(--page-accent,var(--accent));text-decoration-color:var(--page-accent,var(--accent))}.prose-long ul:not(.github-repo *){margin-top:0;margin-bottom:0;padding-inline-start:1.625em;list-style-type:disc}.prose-long ul:not(.github-repo *)>li{padding-inline-start:.375em;margin-top:.5em;margin-bottom:.5em;line-height:1.6}.prose-long ul:not(.github-repo *)>li::marker{color:var(--ink-3)}.prose-long ul:not(.github-repo *)>li strong{color:var(--ink);font-weight:600}.prose-long ul ul:not(.github-repo *),.prose-long ul ol:not(.github-repo *),.prose-long ol ul:not(.github-repo *),.prose-long ol ol:not(.github-repo *){margin-top:.75em;margin-bottom:.75em}.prose-long ol:not(.github-repo *){margin-top:0;margin-bottom:0;padding-inline-start:1.625em;list-style-type:decimal}.prose-long ol:not(.github-repo *)>li{padding-inline-start:.375em;margin-top:.5em;margin-bottom:.5em;line-height:1.6}.prose-long ol:not(.github-repo *)>li::marker{color:var(--ink-3);font-weight:400}.prose-long ol:not(.github-repo *)>li strong{color:var(--ink);font-weight:600}.prose-long blockquote:not(.github-repo *){margin:0;padding:1.2rem var(--s-5);border-left:2px solid var(--accent);background:color-mix(in oklab,var(--accent) 6%,transparent);border-radius:0 var(--r-md)var(--r-md)0;font-family:var(--font-display);font-size:1.25rem;line-height:1.4;font-weight:400;letter-spacing:-.01em;color:var(--ink);font-style:normal;quotes:none}.prose-long blockquote:not(.github-repo *) cite{display:block;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3);font-style:normal;margin-top:var(--s-3)}.prose-long blockquote:not(.github-repo *) p:first-of-type::before,.prose-long blockquote:not(.github-repo *) p:last-of-type::after{content:none}.prose-long table:not(.github-repo *){position:relative;overflow:hidden;border-radius:var(--r-lg);width:100%}.prose-long table:not(.github-repo *)::before{content:"";position:absolute;left:0;top:0;height:100%;width:100%;border-radius:inherit;border:1px solid var(--rule)}.prose-long thead:not(.github-repo *){border-color:var(--rule);background:var(--paper-2)}.prose-long th:not(.github-repo *){position:relative;z-index:10;padding:1.125rem var(--s-4);color:var(--ink)}.prose-long tr:not(.github-repo *){border-color:var(--rule)}.prose-long td:not(.github-repo *){position:relative;z-index:10;padding:1.125rem var(--s-3);color:var(--ink-2)}.prose-long :where(pre):not(.github-repo *){font-family:var(--font-mono);background:var(--paper-3);border:1px solid var(--rule);border-radius:var(--r-md);padding:1.1rem 1.2rem;font-size:.82rem;line-height:1.55;color:var(--ink-2);overflow:auto;margin:0}.prose-long :where(code):not(.github-repo *){padding:.1em .3em;color:var(--ink-2)}.prose-long img:not(.github-repo *){max-width:100%;border-radius:var(--r-md)}.prose-long hr:not(.github-repo *){border-color:var(--rule);margin:var(--s-5)0}.content .github-repo,.prose-long .github-repo{font-size:initial;line-height:normal;color:var(--ink);letter-spacing:normal;text-decoration:none;font-family:var(--font-sans)}.content .github-repo:hover,.prose-long .github-repo:hover{text-decoration:none}nav[aria-label=Pagination] a:hover{background:var(--paper-2);border-radius:var(--r-sm)}body.nav-open{overflow:hidden}.hover\:cursor-zoom-in:hover{cursor:zoom-in}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--sh-2)}.dark\:opacity-0:is(.dark *){opacity:0}.dark\:opacity-100:is(.dark *){opacity:1}@media(min-width:540px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:w-48{width:12rem}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:flex-row{flex-direction:row}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media(min-width:768px){.md\:bottom-10{bottom:2.5rem}.md\:right-10{right:2.5rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}}@media(min-width:1200px){.lg\:order-last{order:9999}.lg\:ml-0{margin-left:0}.lg\:mt-0{margin-top:0}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:hidden{display:none}.lg\:grid-cols-\[1fr_320px\]{grid-template-columns:1fr 320px}.lg\:items-center{align-items:center}.lg\:space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}}@media(min-width:1280px){.xl\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}}