@import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Nanum+Pen+Script&display=swap";footer[data-astro-cid-sz7xmlte]{position:relative;display:flex;align-items:center;padding:12px 0;margin-top:24px;width:100%}.footer-text[data-astro-cid-sz7xmlte]{color:inherit;font-size:15px;line-height:1.65;font-weight:inherit;opacity:.6}*,: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 / .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 / .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:Geist,Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:Geist Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:transparent;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}:root{--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--duration-fast: .12s;--duration-base: .15s;--duration-moderate: .2s;--link-line: rgba(0, 0, 0, .25);--link-line-hover: #000000;--link-hover-color: #000000}html{font-size:16px;overflow-y:scroll;scrollbar-gutter:stable}a,button{transition:none!important;-webkit-tap-highlight-color:transparent}html,body{background-color:#fff;color:#111}html.dark{--link-line: rgba(255, 255, 255, .28);--link-line-hover: #ffffff;--link-hover-color: #ffffff}html.dark,html.dark body{background-color:#1a1a1a;color:#e4e4e7}html.blue{--link-line: rgba(13, 31, 60, .25);--link-line-hover: #0d1f3c;--link-hover-color: #0d1f3c}html.blue,html.blue body{background-color:#c8d8f0;color:#0d1f3c}html.pink{--link-line: rgba(45, 18, 25, .25);--link-line-hover: #2d1219;--link-hover-color: #2d1219}html.pink,html.pink body{background-color:#fde8ee;color:#2d1219}html.green{--link-line: rgba(10, 32, 16, .25);--link-line-hover: #0a2010;--link-hover-color: #0a2010}html.green,html.green body{background-color:#d4f0d7;color:#0a2010}html,body{transition:background-color var(--duration-moderate) var(--ease-out),color var(--duration-moderate) var(--ease-out)}html,body,h1,h2,h3,h4,h5,h6,p,li,ul,ol,span,div,button,input,select,textarea{font-family:Geist,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:450;letter-spacing:-.005em}a{color:inherit;text-decoration:none;background-color:transparent;transition:none!important}article a,.prose a,main p a,main li a,.bookmarks-wrapper a,.bookmark-section a,.project-link,.project-links a{color:inherit;font-weight:inherit;text-decoration:underline!important;text-decoration-thickness:1.5px!important;text-underline-offset:4px!important;text-decoration-color:var(--link-line)!important;-webkit-text-decoration-skip:ink!important;text-decoration-skip-ink:auto!important;background:transparent!important;padding:0!important;margin:0!important;border-radius:0!important;transition:text-decoration-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)!important}@media (hover: hover) and (pointer: fine){article a:hover,.prose a:hover,main p a:hover,main li a:hover,.bookmarks-wrapper a:hover,.bookmark-section a:hover,.project-link:hover,.project-links a:hover{color:var(--link-hover-color)!important;text-decoration-color:var(--link-line-hover)!important}}header a,header a:hover,#menu-overlay a,#menu-overlay a:hover,#menu-overlay button,#menu-overlay button:hover,.no-underline,.no-underline:hover,.mo-link,.mo-link:hover,.nav-brand,.nav-brand:hover,.sidebar-brand,.sidebar-brand:hover,.sidebar-link,.sidebar-link:hover,.list-link,.list-link:hover,.mobile-nav-link,.mobile-nav-link:hover,.pill-link,.pill-link:hover,.filter-link,.filter-link:hover,.footnote-back,.footnote-back:hover,a[href^="#fn"],.footnotes a,.footnotes a:hover,.hub-nav-link,.hub-nav-link:hover,.flow-gradient,.flow-gradient:hover{text-decoration:none!important;background:transparent!important;background-color:transparent!important;background-image:none!important;padding:0!important;margin:0!important;border-radius:0!important}.index-page .hub-nav-link{display:flex;width:100%;max-width:100%;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none!important;background-image:none!important}.index-page .hub-nav-link .hub-nav-label{min-width:0}header a{text-decoration:none!important;background-image:none!important}.sidebar-brand,.nav-brand.home-title{font-family:Nanum Pen Script,Caveat,cursive!important;font-size:1.5rem!important;font-weight:400!important;letter-spacing:.01em!important;color:inherit!important;opacity:.6;text-decoration:none!important;background-image:none!important;line-height:1.2!important;display:inline-block;cursor:pointer;margin-top:0;padding-top:0;touch-action:manipulation;transition:opacity var(--duration-fast) var(--ease-out)!important}.sidebar-brand.active,.nav-brand.home-title.active{opacity:1!important}@media (hover: hover) and (pointer: fine){.sidebar-brand:hover,.nav-brand.home-title:hover{opacity:1!important}}.sidebar-link,.list-link{font-family:Geist,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:.875rem!important;font-weight:450!important;letter-spacing:-.005em!important;color:inherit!important;opacity:.6;text-decoration:none!important;background-image:none!important;line-height:1.625!important;display:inline-block;background:transparent;border:none;padding:0;cursor:pointer;text-align:left;transition:opacity var(--duration-fast) var(--ease-out)!important;touch-action:manipulation}.sidebar-link{display:block}.sidebar-link.active,.list-link.active{opacity:1!important;font-weight:500!important}@media (hover: hover) and (pointer: fine){.sidebar-link:hover,.list-link:hover{opacity:1!important}}html.dark .section-heading{color:#e4e4e7}html.blue .section-heading{color:#0d1f3c}html.pink .section-heading{color:#2d1219}html.green .section-heading{color:#0a2010}hr{border:none;border-top:1px solid #e5e5e5;margin:2rem 0}html.dark hr{border-top-color:#27272a}html.blue hr{border-top-color:#0d1f3c33}html.pink hr{border-top-color:#2d121926}html.green hr{border-top-color:#0a201026}article{>*:first-child{margin-top:0!important}p{margin-top:1rem;margin-bottom:1rem}p{line-height:1.625}h1{margin-top:1.5rem;margin-bottom:1.5rem}h1{font-size:.875rem;line-height:1.25rem}h1{font-weight:600}h2{margin-top:1.5rem;margin-bottom:1.5rem}h2{font-size:.875rem;line-height:1.25rem}h2{font-weight:600}h3,h4,h5,h6{margin-top:1rem;margin-bottom:1rem}h3,h4,h5,h6{font-size:.875rem;line-height:1.25rem}h3,h4,h5,h6{font-weight:500}:not(pre)>code{white-space:nowrap}:not(pre)>code{border-radius:.25rem}:not(pre)>code{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}:not(pre)>code{padding-left:.25rem;padding-right:.25rem}:not(pre)>code{padding-top:.125rem;padding-bottom:.125rem}:not(pre)>code{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}:not(pre)>code{font-size:.875rem;line-height:1.25rem}html.dark :not(pre)>code{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}html.dark :not(pre)>code{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}html.blue :not(pre)>code{background-color:#0d1f3c1a;color:#0d1f3c}html.pink :not(pre)>code{background-color:#2d12191a;color:#2d1219}html.green :not(pre)>code{background-color:#0a20101a;color:#0a2010}pre:has(code){margin-top:1rem;margin-bottom:1rem}pre:has(code){max-height:600px}pre:has(code){overflow:auto}pre:has(code){border-radius:.25rem}pre:has(code){border-width:1px}pre:has(code){--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}pre:has(code){--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}pre:has(code){padding:1rem}pre:has(code){font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}pre:has(code){font-size:.875rem;line-height:1.25rem}html.dark pre:has(code){--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}html.dark pre:has(code){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}html.blue pre:has(code){border-color:#0d1f3c33;background-color:#0d1f3c12}html.pink pre:has(code){border-color:#2d121926;background-color:#2d12190d}html.green pre:has(code){border-color:#0a201026;background-color:#0a20100d}img{margin-top:1rem;margin-bottom:1rem}img{border-radius:.25rem}img{border-width:1px}img{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}html.dark img{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}html.blue img{border-color:#0d1f3c33}html.pink img{border-color:#2d121926}html.green img{border-color:#0a201026}video{margin-top:1rem;margin-bottom:1rem}video{border-radius:.25rem}video{border-width:1px}video{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}html.dark video{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}html.blue video{border-color:#0d1f3c33}html.pink video{border-color:#2d121926}html.green video{border-color:#0a201026}blockquote{margin-top:1rem;margin-bottom:1rem}blockquote{border-left-width:2px}blockquote{--tw-border-opacity: 1;border-color:rgb(24 24 27 / var(--tw-border-opacity, 1))}blockquote{padding-left:1rem}blockquote{--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1))}table{margin-top:1rem;margin-bottom:1rem}table{width:100%}table{table-layout:auto}table{border-collapse:collapse}table{font-size:.875rem;line-height:1.25rem}th{border-bottom-width:1px}th{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}th{padding:1rem}th{text-align:left}th{font-weight:500}html.dark th{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}td{border-bottom-width:1px}td{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}td{background-color:#fafafa80}td{padding:1rem}html.dark td{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}html.dark td{background-color:#18181b80}ol{margin-top:.25rem;margin-bottom:.25rem}ol{list-style-position:inside}ol{list-style-type:decimal}ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}ol ol,ol ul{padding-left:1.25rem}ul{margin-top:.25rem;margin-bottom:.25rem}ul{list-style-position:inside}ul{list-style-type:disc}ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}ul ol,ul ul{padding-left:1.25rem}kbd{border-radius:.25rem}kbd{border-width:1px}kbd{--tw-border-opacity: 1;border-color:rgb(212 212 216 / var(--tw-border-opacity, 1))}kbd{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}kbd{padding-left:.25rem;padding-right:.25rem}kbd{padding-top:.125rem;padding-bottom:.125rem}kbd{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}kbd{font-size:.75rem;line-height:1rem}html.dark kbd{--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity, 1))}html.dark kbd{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}html.dark kbd{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}mark{background:var(--highlight-bg);color:var(--highlight-fg)}html.dark mark{background:var(--highlight-bg);color:var(--highlight-fg)}}html.dark blockquote,html.dark article blockquote{border-left-color:#fff;color:#fff}html.blue blockquote,html.blue article blockquote{border-left-color:#0d1f3c;color:#0d1f3c}html.pink blockquote,html.pink article blockquote{border-left-color:#2d1219;color:#2d1219}html.green blockquote,html.green article blockquote{border-left-color:#0a2010;color:#0a2010}article sup a,sup a{color:inherit!important;text-decoration:none!important}article sup a:hover,sup a:hover{text-decoration:underline!important}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[16\/9\]{aspect-ratio:16/9}.h-0{height:0px}.h-1\.5{height:.375rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-72{height:18rem}.h-auto{height:auto}.h-full{height:100%}.min-h-\[300px\]{min-height:300px}.min-h-\[32px\]{min-height:32px}.min-h-\[360px\]{min-height:360px}.min-h-dvh{min-height:100dvh}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1\.5{width:.375rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-\[150px\]{width:150px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[32px\]{min-width:32px}.min-w-\[48px\]{min-width:48px}.max-w-\[600px\]{max-width:600px}.max-w-\[780px\]{max-width:780px}.max-w-\[90px\]{max-width:90px}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.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}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[2px\]{gap:2px}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-0{row-gap:0px}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * 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))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-zinc-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(228 228 231 / var(--tw-divide-opacity, 1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;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-b{border-bottom-width:1px}.border-zinc-200{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}.border-zinc-200\/50{border-color:#e4e4e780}.border-zinc-200\/60{border-color:#e4e4e799}.border-zinc-200\/80{border-color:#e4e4e7cc}.border-zinc-800{--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.bg-amber-400\/20{background-color:#fbbf2433}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-white\/20{background-color:#fff3}.bg-white\/50{background-color:#ffffff80}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.bg-zinc-200{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity, 1))}.bg-zinc-200\/40{background-color:#e4e4e766}.bg-zinc-400{--tw-bg-opacity: 1;background-color:rgb(161 161 170 / var(--tw-bg-opacity, 1))}.bg-zinc-50{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}.bg-zinc-50\/50{background-color:#fafafa80}.bg-zinc-800{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.bg-zinc-950{--tw-bg-opacity: 1;background-color:rgb(9 9 11 / var(--tw-bg-opacity, 1))}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-0{padding-left:0}.pl-5{padding-left:1.25rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.font-mono{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Geist,Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.65\]{line-height:1.65}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-sky-300{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-violet-500{--tw-text-opacity: 1;color:rgb(139 92 246 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-zinc-100{--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.text-zinc-200{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.text-zinc-700{--tw-text-opacity: 1;color:rgb(63 63 70 / var(--tw-text-opacity, 1))}.text-zinc-800{--tw-text-opacity: 1;color:rgb(39 39 42 / var(--tw-text-opacity, 1))}.text-zinc-900{--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[opacity\]{will-change:opacity}::-moz-selection{background-color:#a1a1aa59;color:inherit}::selection{background-color:#a1a1aa59;color:inherit}.notes-separator,.notes-separator~*,.notes-section{color:inherit;opacity:.6}#menu-overlay{background-color:#fff;color:#111}html.dark #menu-overlay{background-color:#1a1a1a;color:#e4e4e7}html.blue #menu-overlay{background-color:#c8d8f0;color:#0d1f3c}html.pink #menu-overlay{background-color:#fde8ee;color:#2d1219}html.green #menu-overlay{background-color:#d4f0d7;color:#0a2010}.mobile-nav-link{color:inherit!important;opacity:.6;font-family:inherit;font-size:1.5rem!important;line-height:1.375!important;font-weight:400;letter-spacing:inherit;background:transparent!important;background-color:transparent!important;border:none;padding:0!important;margin:0!important;border-radius:0!important;text-align:left;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:opacity var(--duration-base) var(--ease-out)!important}@media (min-width: 640px){.mobile-nav-link{font-size:1.875rem!important}}.mobile-nav-link.active{opacity:1!important;font-weight:500}@media (hover: hover) and (pointer: fine){.mobile-nav-link:hover{opacity:1!important}}.project-link,.filter-link{color:inherit!important;opacity:.6;transition:opacity var(--duration-fast) var(--ease-out)}.project-link:hover,.filter-link:hover,.filter-link.is-active{opacity:1!important}.filter-sep{color:inherit!important;opacity:.25;-webkit-user-select:none;-moz-user-select:none;user-select:none}.notes-section a{color:inherit}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:#71717a;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#52525b}html.dark .custom-scrollbar::-webkit-scrollbar-thumb{background:#52525b}html.dark .custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#3f3f46}a[href^="#fn"],.footnote-back,.footnotes a{text-decoration:none!important}.flow-gradient{position:relative;display:inline-block;color:inherit}.flow-gradient:before{content:attr(data-text);position:absolute;inset:0;background:linear-gradient(90deg,#ff6b6b,#f8e71c,#7bed9f,#4facfe,#a29bfe 88%);background-size:400% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;opacity:0;pointer-events:none;transition:opacity var(--duration-moderate) var(--ease-out);white-space:nowrap;animation:flow 12s linear infinite}.flow-gradient:hover:before{opacity:1}@keyframes flow{0%{background-position:0% 50%}to{background-position:100% 50%}}.thank-wrap{position:relative;display:inline-block}.thank-wrap .marquee{position:absolute;left:50%;top:-6px;transform:translate(-50%) translateY(-6px);width:220px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity var(--duration-base) ease,transform var(--duration-base) ease}.thank-wrap:hover .marquee{opacity:1;transform:translate(-50%) translateY(0)}.marquee-svg{display:block}::view-transition-old(root),::view-transition-new(root){animation:none!important}@media (hover: hover) and (pointer: fine){.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-amber-400\/30:hover{background-color:#fbbf244d}}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:cursor-grabbing:active{cursor:grabbing}.dark\:divide-zinc-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(39 39 42 / var(--tw-divide-opacity, 1))}.dark\:border-zinc-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(39 39 42 / var(--tw-border-opacity, 1))}.dark\:border-zinc-800\/50:is(.dark *){border-color:#27272a80}.dark\:border-zinc-800\/60:is(.dark *){border-color:#27272a99}.dark\:border-zinc-800\/80:is(.dark *){border-color:#27272acc}.dark\:bg-\[\#0c0d0e\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 13 14 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#1a1a1a\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(26 26 26 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-100:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-200:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-800\/40:is(.dark *){background-color:#27272a66}.dark\:bg-zinc-900\/20:is(.dark *){background-color:#18181b33}.dark\:bg-zinc-900\/30:is(.dark *){background-color:#18181b4d}.dark\:bg-zinc-900\/40:is(.dark *){background-color:#18181b66}.dark\:bg-zinc-900\/60:is(.dark *){background-color:#18181b99}.dark\:bg-zinc-900\/80:is(.dark *){background-color:#18181bcc}.dark\:text-\[\#e4e4e7\]:is(.dark *){--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.dark\:text-amber-600:is(.dark *){--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.dark\:text-amber-700:is(.dark *){--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-violet-300:is(.dark *){--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.dark\:text-violet-400:is(.dark *){--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.dark\:text-zinc-100:is(.dark *){--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.dark\:text-zinc-200:is(.dark *){--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.dark\:text-zinc-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.dark\:text-zinc-400:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:text-zinc-500:is(.dark *){--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.dark\:text-zinc-900:is(.dark *){--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity, 1))}.dark\:text-zinc-950:is(.dark *){--tw-text-opacity: 1;color:rgb(9 9 11 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width: 768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[160px_1fr\]{grid-template-columns:160px 1fr}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:gap-12{gap:3rem}}.\[\&_p\]\:my-4 p{margin-top:1rem;margin-bottom:1rem}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
