.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}*,: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,system-ui,sans-serif;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,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{color-scheme:light dark;--paper: #FFFFFF;--ink: #121316;--ink-2: #55575D;--muted: #76787E;--faint: #9A9CA1;--hairline: rgba(18, 19, 22, .1);--edge: rgba(18, 19, 22, .06);--droplet: linear-gradient(in oklab 180deg, #E2588F 0%, #6D4FD6 100%);--iridescent: linear-gradient(in oklab 180deg, #E2588F 0%, #B04FC9 50%, #6D4FD6 100%);--font-sans: "Geist", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace;--font-plex: "IBM Plex Mono", ui-monospace, monospace;--font-serif: "Instrument Serif", Georgia, serif;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--dur-press: .12s;--dur-hover: .16s;--dur-reveal: .22s;--dur-exit: .12s;--dur-enter: .18s;--dur-panel: .48s;--stagger: 35ms;--ease: cubic-bezier(.2, 0, 0, 1);--dur: .45s;view-transition-name:none;transition:--paper var(--dur-panel) var(--ease-in-out),--ink var(--dur-panel) var(--ease-in-out),--ink-2 var(--dur-panel) var(--ease-in-out),--muted var(--dur-panel) var(--ease-in-out),--faint var(--dur-panel) var(--ease-in-out),--hairline var(--dur-panel) var(--ease-in-out),--edge var(--dur-panel) var(--ease-in-out)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:24px}::-moz-selection{background:#efe2a6;color:var(--ink)}::selection{background:#efe2a6;color:var(--ink)}@media(prefers-color-scheme:dark){:root{--paper: #0E0F12;--ink: #ECEDEE;--ink-2: #A3A6AD;--muted: #8A8D94;--faint: #5E6168;--hairline: rgba(236, 237, 238, .1);--edge: rgba(255, 255, 255, .07);--droplet: linear-gradient(in oklab 180deg, #F27BAA 0%, #B48CF5 100%);--iridescent: linear-gradient(in oklab 180deg, #F27BAA 0%, #D684D6 50%, #B48CF5 100%)}[data-shell]{--film-2: #F27BAA;--film-3: #B48CF5}::-moz-selection{background:#b48cf559;color:var(--ink)}::selection{background:#b48cf559;color:var(--ink)}}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.\!shell{display:flex!important;height:100vh!important;height:100dvh!important;overflow:hidden!important}.shell{display:flex;height:100vh;height:100dvh;overflow:hidden}.\!rail{display:flex!important;flex-direction:column!important;flex-shrink:0!important;width:58.75vw!important;padding:44px 72px 24px!important}.rail{display:flex;flex-direction:column;flex-shrink:0;width:58.75vw;padding:44px 72px 24px}[data-state=expanded] .\!rail,.shell[data-geo=wide] .\!rail{width:300px!important;padding-right:32px!important}[data-state=expanded] .rail,.shell[data-geo=wide] .rail{width:300px;padding-right:32px}.\!shell[data-geo=wide] .rail,[data-state=expanded] .\!rail,.shell[data-geo=wide] .\!rail{width:300px!important;padding-right:32px!important}.rail-top{display:flex;align-items:center;height:24px;flex-shrink:0}.rail-space{flex-grow:1}.wordmark{display:inline-flex;align-items:baseline;gap:6px;color:var(--ink);font-size:22px;font-weight:600;letter-spacing:-.04em;line-height:24px}.wordmark-sm{font-size:18px;line-height:22px}.droplet{display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:999px;background:#e2588f;background:var(--droplet);background:linear-gradient(in oklab 180deg,color-mix(in oklab,#E2588F 65%,var(--film-2)),color-mix(in oklab,#6D4FD6 65%,var(--film-3)));transition:--film-2 var(--film-fade, 0ms) linear,--film-3 var(--film-fade, 0ms) linear}.wordmark-sm .droplet{width:6px;height:6px}.intro{flex-shrink:0;width:calc(58.75vw - 144px)}[data-state=expanded] .intro{visibility:hidden;pointer-events:none;animation:intro-out var(--dur-exit) var(--ease-out) both;transition:visibility 0s linear var(--dur-exit)}@keyframes intro-out{to{opacity:0;transform:translateY(-4px);filter:blur(4px)}}.headline{font-size:44px;font-weight:400;letter-spacing:-.035em;line-height:48px;white-space:nowrap}.headline-line{display:block}.headline-serif{height:52px;padding-top:4px}.headline-serif em{display:inline-block;margin:-3px 0;font-family:var(--font-plex);font-size:40px;font-style:normal;font-weight:500;letter-spacing:-.04em;line-height:48px;color:#b04fc9;background:var(--iridescent);background-image:linear-gradient(in oklab 180deg,#e2588f,#b04fc9,#6d4fd6,#b04fc9,#e2588f);background-size:100% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:serif-drift 6s var(--ease-in-out) infinite alternate;transition:--film-2 var(--film-fade, 0ms) linear,--film-3 var(--film-fade, 0ms) linear}@supports (color: oklab(from red l a b)){.headline-serif em{--serif-mid: oklab(from color-mix(in oklab, var(--film-2), var(--film-3)) calc(l + .0052) calc(a + .0285) calc(b - .0334) );background-image:linear-gradient(in oklab 180deg,var(--film-2) 0%,var(--serif-mid) 25%,var(--film-3) 50%,var(--serif-mid) 75%,var(--film-2) 100%)}}@keyframes serif-drift{to{background-position:0 30%}}.sub{max-width:480px;padding-top:20px;color:var(--ink-2);font-size:17px;letter-spacing:-.01em;line-height:26px;text-wrap:pretty}.nav{position:relative;display:flex;flex-direction:column;gap:6px;--nav-i: 0}[data-section=projects] .nav{--nav-i: 1}[data-section=writing] .nav{--nav-i: 2}[data-section=resume] .nav{--nav-i: 3}.nav-link{position:relative;display:flex;align-items:center;align-self:flex-start;height:34px;color:var(--ink);font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:28px;transition:color var(--dur-hover) var(--ease-out)}.nav-label{display:inline-block;transition:transform var(--dur-hover) var(--ease-out)}.nav-droplet{position:absolute;left:-17px;top:14px;opacity:0;pointer-events:none;transform:translateY(calc(var(--nav-i) * 40px));transition:opacity .15s var(--ease-out),transform .3s var(--ease-in-out),--film-2 var(--film-fade, 0ms) linear,--film-3 var(--film-fade, 0ms) linear}[data-state=expanded] .nav-link:not([aria-current]){color:var(--faint)}[data-state=expanded] .nav-droplet{opacity:1}.links{display:flex;flex-wrap:wrap;gap:24px;padding:40px 0 20px;font-size:11px;line-height:14px}.links a{color:var(--muted);transition:color .15s var(--ease-out)}.well{display:flex;flex:1 1 0;min-width:0;padding:14px 14px 14px 0}.\!panel{position:relative!important;flex:1!important;overflow:hidden!important;border-radius:20px!important;isolation:isolate!important}.panel{position:relative;flex:1;overflow:hidden;border-radius:20px;isolation:isolate}.film{position:absolute;inset:0;transform-origin:0 0}.panel-edge{position:absolute;inset:0;z-index:4;border-radius:20px;box-shadow:inset 0 0 0 1px var(--edge);pointer-events:none}.film-fallback,.film-canvas,.film-grain{position:absolute;inset:0;width:100%;height:100%}.film-fallback{overflow:hidden;background-color:#f2f2f0}.film-fallback i{position:absolute;border-radius:999px}.film-canvas{visibility:hidden}.\!panel[data-film=ready] .film-canvas{visibility:visible!important}.panel[data-film=ready] .film-canvas{visibility:visible}.\!panel[data-film=ready] .film-fallback{display:none!important}.panel[data-film=ready] .film-fallback{display:none}.film-grain{opacity:.18;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none;transition:opacity var(--dur-panel) var(--ease-in-out)}[data-state=expanded] .film-grain{opacity:0}.panel-content{position:absolute;inset:0;z-index:2;overflow-y:auto;overscroll-behavior:contain;padding:56px 72px}.panel-content:empty{display:none}@media(min-width:768px){.headline-line:not(.headline-serif),.panel-title,.nudge{position:relative;top:1px}}.panel-content[data-leaving]{pointer-events:none;animation:panel-out var(--dur-exit) var(--ease-out) both}.panel-content[data-entering]{animation:rv-in var(--rv-dur, var(--dur-reveal)) var(--ease-out) var(--rv-base, 0ms) backwards}@keyframes panel-out{to{opacity:0;transform:translateY(-4px)}}[data-rv=wait]{opacity:0}[data-rv=in]{animation:rv-in var(--rv-dur, var(--dur-reveal)) var(--ease-out) calc(var(--rv-base, 0ms) + var(--i, 0) * var(--rv-stagger, var(--stagger))) backwards}@keyframes rv-in{0%{opacity:0;transform:translateY(8px);filter:blur(4px)}}@keyframes rv-fade{0%{opacity:0}}body[data-boot] .\!panel{opacity:0!important}body[data-boot] .panel,body[data-boot] .rail [data-reveal]{opacity:0}body[data-boot] .\!rail [data-reveal]{opacity:0!important}.esc-hint{position:absolute;left:-1px;bottom:calc(100% + 24px);display:flex;align-items:center;gap:8px;width:-moz-max-content;width:max-content;padding:6px 10px 6px 6px;border:1px solid var(--hairline);border-radius:999px;background:var(--paper);font-family:var(--font-mono);font-size:11px;font-weight:500;line-height:14px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .4s var(--ease-out)}.esc-hint kbd{display:inline-block;padding:2px 6px;border:1px solid var(--hairline);border-radius:6px;color:var(--ink);font:inherit}.esc-hint span{color:var(--ink-2);letter-spacing:.08em;text-transform:uppercase}.esc-hint[data-hint]{visibility:visible}.esc-hint[data-hint=on],.esc-hint[data-hint=dim]{animation:rv-in var(--dur-reveal) var(--ease-out) var(--hint-delay, 0ms) backwards}.esc-hint[data-hint=on]{opacity:1}.esc-hint[data-hint=dim]{opacity:.55}.esc-hint[data-hint=out]{opacity:0;transition:opacity var(--dur-exit) var(--ease-out)}@media(max-width:767px),(hover:none){.esc-hint{display:none}}.panel-topbar{display:none}.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:40px}.panel-title{font-size:56px;font-weight:500;letter-spacing:-.04em;line-height:56px}.panel-actions{display:flex;align-items:center;gap:24px;flex-shrink:0}.label-mono{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.08em;line-height:14px;text-transform:uppercase}a.label-mono{transition:color .15s var(--ease-out)}.close{color:var(--ink-2);white-space:nowrap;transition:color .15s var(--ease-out),transform var(--dur-press) var(--ease-out)}.close-x{display:inline-block;transition:transform .2s var(--ease-out)}.close:active{transform:scale(.94)}.rows>:last-child{border-bottom:1px solid var(--hairline)}.row{display:flex;align-items:center;min-height:52px;border-top:1px solid var(--hairline)}.hairline{border-color:var(--hairline)}.row-link{position:relative;isolation:isolate}.row-link:before{content:"";position:absolute;inset:0 -12px;z-index:-1;border-radius:10px;background:#ffffff59;opacity:0;pointer-events:none;transition:opacity var(--dur-hover) var(--ease-out)}.row-link .row-name,.row-link [data-row-name]{display:inline-block;transition:transform var(--dur-hover) var(--ease-out)}.row-arrow{position:absolute;margin-left:6px;opacity:0;transform:translate(-4px);transition:opacity var(--dur-hover) var(--ease-out),transform var(--dur-hover) var(--ease-out)}.row-link:focus-visible:before{opacity:1}.press{transition:transform var(--dur-press) var(--ease-out)}.press:active{transform:scale(.97)}.btn-ink{background-color:var(--ink);color:var(--paper);transition:background-color .15s var(--ease-out),transform var(--dur-press) var(--ease-out)}.btn-ink:active{transform:scale(.97)}.lift{transition:transform .15s var(--ease-out),background-color .15s var(--ease-out)}.chip{background-color:#ffffffb3}@keyframes icon-drop{50%{transform:translateY(3px)}}.ulink,.prose-panel a{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;transition:background-size .22s var(--ease-out),color .15s var(--ease-out)}.prose-panel{max-width:720px;color:var(--ink);font-size:16px;line-height:28px}.prose-panel>*+*{margin-top:20px}.prose-panel h2,.prose-panel h3,.prose-panel h4{font-weight:500;letter-spacing:-.015em}.prose-panel h2{margin-top:48px;font-size:24px;line-height:30px}.prose-panel h3,.prose-panel h4{margin-top:36px;font-size:19px;line-height:26px}.ulink,.prose-panel a{background-image:linear-gradient(currentColor,currentColor),linear-gradient(color-mix(in srgb,currentColor 30%,transparent),color-mix(in srgb,currentColor 30%,transparent));background-size:0% 1px,100% 1px}.ulink:focus-visible,.prose-panel a:focus-visible{background-size:100% 1px,100% 1px}.prose-panel ul,.prose-panel ol{padding-left:22px}.prose-panel ul{list-style:disc}.prose-panel ol{list-style:decimal}.prose-panel li+li{margin-top:6px}.prose-panel li::marker{color:var(--faint)}.prose-panel blockquote{padding-left:18px;border-left:1px solid var(--hairline);color:var(--ink-2)}.prose-panel hr{border:0;border-top:1px solid var(--hairline);margin:40px 0}.prose-panel img{border-radius:12px}.prose-panel code{font-family:var(--font-mono);font-size:.875em}.prose-panel :not(pre)>code{padding:1px 5px;border-radius:5px;background:#1213160d}.prose-panel pre{padding:16px 20px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--hairline);overflow-x:auto;font-size:14px;line-height:22px}.prose-panel table{display:block;overflow-x:auto;font-size:15px}.prose-panel th,.prose-panel td{padding:8px 16px 8px 0;border-bottom:1px solid var(--hairline);text-align:left}.prose-panel th{font-weight:500}@media(max-width:767px){.shell{flex-direction:column;height:auto;min-height:100vh;min-height:100svh;overflow:visible}.rail{display:contents}.rail-top{order:0;height:auto;padding:20px 24px}.rail-space{display:none}.well{order:1;flex:1 0 35svh;min-height:35vh;padding:0 8px}.intro{order:2;width:auto;padding:32px 24px 0}.headline{font-size:30px;letter-spacing:-.03em;line-height:34px;white-space:normal}.headline-serif{height:auto}.headline-serif em{margin:0;font-size:27px;line-height:34px}.sub{padding-top:12px;font-size:15px;line-height:22px}.nav{order:3;gap:0;padding:28px 24px 0}.nav-link{height:40px}.nav-droplet{top:45px;left:7px}.links{order:4;padding:24px 24px 34px}[data-state=expanded] body{overflow:hidden}[data-state=expanded] .rail-top,[data-state=expanded] .nav,[data-state=expanded] .links{visibility:hidden;transition:visibility 0s linear var(--dur-panel)}[data-state=expanded] .panel,.shell[data-geo=wide] .panel{position:fixed;inset:8px;z-index:10}.film-grain{display:none}.panel-content{padding:20px 20px 32px}.panel-topbar{display:flex;align-items:center;justify-content:space-between;height:24px;padding-top:4px}.panel-heading{padding:40px 0 20px}.panel-title{font-size:36px;line-height:40px}.close-desktop{display:none}.\!shell[data-geo=wide] .panel{position:fixed!important;inset:8px!important;z-index:10!important}.\!rail{display:contents!important}[data-state=expanded] .\!panel,.shell[data-geo=wide] .\!panel{position:fixed!important;inset:8px!important;z-index:10!important}.\!shell{flex-direction:column!important;height:auto!important;min-height:100vh!important;min-height:100svh!important;overflow:visible!important}.\!shell[data-geo=wide] .panel,[data-state=expanded] .\!panel,.shell[data-geo=wide] .\!panel{position:fixed!important;inset:8px!important;z-index:10!important}}@media(min-width:768px)and (max-width:1099px){.\!rail{padding-left:48px!important;padding-right:48px!important}.rail{padding-left:48px;padding-right:48px}.intro{width:calc(58.75vw - 96px)}.headline{white-space:normal}.panel-content{padding:48px 40px}}@media(hover:hover)and (pointer:fine){.nav-link:hover .nav-label{transform:translate(4px)}.nav-link:active .nav-label{transform:translate(4px) scale(.97);transition-duration:var(--dur-press)}[data-state=expanded] .nav-link:not([aria-current]):hover{color:var(--ink-2)}[data-state=idle] .nav:has(>.nav-link:nth-of-type(1):hover){--nav-i: 0}[data-state=idle] .nav:has(>.nav-link:nth-of-type(2):hover){--nav-i: 1}[data-state=idle] .nav:has(>.nav-link:nth-of-type(3):hover){--nav-i: 2}[data-state=idle] .nav:has(>.nav-link:nth-of-type(4):hover){--nav-i: 3}[data-state=idle] .nav:has(>.nav-link:hover) .nav-droplet{opacity:.35}.links a:hover,a.label-mono:hover,.close:hover{color:var(--ink)}.close:hover .close-x{transform:rotate(90deg)}.row-link:hover:before{opacity:1}.row-link:hover .row-name,.row-link:hover [data-row-name]{transform:translate(4px)}.row-link:hover .row-arrow{opacity:1;transform:none}.btn-ink:hover{background-color:#2a2b30}:is(a,button):hover .icon-drop{animation:icon-drop .28s var(--ease-out)}.lift:hover{transform:translateY(-1px);background-color:#fff}.ulink:hover,.prose-panel a:hover{background-size:100% 1px,100% 1px}}[data-state=idle] .nav:has(>.nav-link:nth-of-type(2):focus-visible){--nav-i: 1}[data-state=idle] .nav:has(>.nav-link:nth-of-type(3):focus-visible){--nav-i: 2}[data-state=idle] .nav:has(>.nav-link:nth-of-type(4):focus-visible){--nav-i: 3}[data-state=idle] .nav:has(>.nav-link:focus-visible) .nav-droplet{opacity:.35}@media(prefers-reduced-motion:reduce){[data-rv=in],.panel-content[data-entering],.esc-hint[data-hint=on],.esc-hint[data-hint=dim]{animation-name:rv-fade}[data-state=expanded] .intro,.panel-content[data-leaving]{animation-name:rv-out-fade}.headline-serif em{animation:none}.nav-droplet,.nav-label,.close-x,.row-link .row-name,.row-link [data-row-name],.row-arrow,.press,.btn-ink,.lift,.close{transform:none!important}.nav-droplet{transition:opacity .15s var(--ease-out)}.icon-drop{animation:none!important}}@keyframes rv-out-fade{to{opacity:0}}@media(prefers-color-scheme:dark){.droplet{background:#f27baa;background:var(--droplet);background:linear-gradient(in oklab 180deg,color-mix(in oklab,#F27BAA 65%,var(--film-2)),color-mix(in oklab,#B48CF5 65%,var(--film-3)))}.headline-serif em{color:#d684d6;background-image:linear-gradient(in oklab 180deg,#f27baa,#d684d6,#b48cf5,#d684d6,#f27baa)}@supports (color: oklab(from red l a b)){.headline-serif em{--serif-mid: oklab(from color-mix(in oklab, var(--film-2), var(--film-3)) calc(l + .01) a b);background-image:linear-gradient(in oklab 180deg,var(--film-2) 0%,var(--serif-mid) 25%,var(--film-3) 50%,var(--serif-mid) 75%,var(--film-2) 100%)}}.film-fallback{background-color:#121318}.film-grain{opacity:.2;mix-blend-mode:soft-light}.row-link:before{background:#ffffff0d}.prose-panel :not(pre)>code{background:#ffffff12}.prose-panel img{filter:brightness(.88)}.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.chip{background-color:#ffffff0f}@media(hover:hover)and (pointer:fine){.btn-ink:hover{background-color:#d3d5d9}.lift:hover{background-color:#ffffff1a}}}.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.right-3{right:.75rem}.top-2\.5{top:.625rem}.ms-auto{margin-inline-start:auto}.mt-10{margin-top:2.5rem}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.w-\[200px\]{width:200px}.min-w-0{min-width:0px}.max-w-\[540px\]{max-width:540px}.max-w-\[620px\]{max-width:620px}.max-w-\[800px\]{max-width:800px}.max-w-\[840px\]{max-width:840px}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.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))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-5{gap:1.25rem}.gap-7{gap:1.75rem}.gap-\[10px\]{gap:10px}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.self-start{align-self:flex-start}.overflow-visible{overflow:visible}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-hairline{border-color:var(--hairline)}.bg-white\/80{background-color:#fffc}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-\[14px\]{padding-left:14px;padding-right:14px}.px-\[18px\]{padding-left:18px;padding-right:18px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[10px\]{padding-top:10px;padding-bottom:10px}.py-\[6px\]{padding-top:6px;padding-bottom:6px}.pb-14{padding-bottom:3.5rem}.pb-6{padding-bottom:1.5rem}.pt-6{padding-top:1.5rem}.font-mono{font-family:Geist Mono,ui-monospace,monospace}.text-\[12px\]{font-size:12px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[20px\]{font-size:20px}.font-medium{font-weight:500}.lowercase{text-transform:lowercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-\[18px\]{line-height:18px}.leading-\[22px\]{line-height:22px}.leading-\[26px\]{line-height:26px}.leading-\[30px\]{line-height:30px}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.text-ink{color:var(--ink)}.text-ink-2{color:var(--ink-2)}.text-muted{color:var(--muted)}.opacity-0{opacity:0}.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)}.ring{--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(3px + 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)}.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)}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;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}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@property --film-2{syntax: "<color>"; inherits: true; initial-value: #E2588F;}@property --film-3{syntax: "<color>"; inherits: true; initial-value: #6D4FD6;}@property --paper{syntax: "<color>"; inherits: true; initial-value: #FFFFFF;}@property --ink{syntax: "<color>"; inherits: true; initial-value: #121316;}@property --ink-2{syntax: "<color>"; inherits: true; initial-value: #55575D;}@property --muted{syntax: "<color>"; inherits: true; initial-value: #76787E;}@property --faint{syntax: "<color>"; inherits: true; initial-value: #9A9CA1;}@property --hairline{syntax: "<color>"; inherits: true; initial-value: rgba(18,19,22,.1);}@property --edge{syntax: "<color>"; inherits: true; initial-value: rgba(18,19,22,.06);}.focus-visible\:opacity-100:focus-visible{opacity:1}.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:w-\[140px\]{width:140px}.md\:w-\[188px\]{width:188px}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:items-baseline{align-items:baseline}.md\:gap-0{gap:0px}.md\:gap-2{gap:.5rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}.md\:pr-10{padding-right:2.5rem}.md\:text-\[13px\]{font-size:13px}.md\:text-\[15px\]{font-size:15px}.md\:text-\[28px\]{font-size:28px}.md\:leading-\[22px\]{line-height:22px}.md\:leading-\[34px\]{line-height:34px}}@media(min-width:1100px){.min-\[1100px\]\:block{display:block}}@media(prefers-color-scheme:dark){.dark\:bg-\[rgba\(30\,30\,46\,0\.85\)\]{background-color:#1e1e2ed9}}@media(hover:none){.\[\@media\(hover\:none\)\]\:opacity-100{opacity:1}}
