.j4Zkxq_card{--project-background:color-mix(in srgb, var(--foreground) 3%, var(--background));--project-surface:var(--background);--project-border:color-mix(in srgb, var(--foreground) 12%, var(--background));--project-text:var(--foreground);--project-muted:color-mix(in srgb, var(--foreground) 65%, var(--background));--project-accent:var(--project-muted);--project-tint:color-mix(in srgb, var(--foreground) 4%, var(--background));--project-tint-text:var(--project-muted);--project-tag:color-mix(in srgb, var(--foreground) 5%, var(--background));background:var(--project-background);color:var(--project-text);border-color:var(--project-border)}.j4Zkxq_languageIcon{filter:grayscale()}.dark .j4Zkxq_languageIcon{filter:grayscale()brightness(2)}
.So3o5G_backdrop{z-index:0;pointer-events:none;opacity:1;height:26rem;max-height:100%;position:absolute;inset:0 0 auto;overflow:hidden}.So3o5G_light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.So3o5G_canvas{z-index:0;max-width:none;position:absolute}.So3o5G_shade{z-index:1;background:linear-gradient(#0c0a0900 0%,#0c0a091f 25%,#0c0a09bf 60%,#0c0a09 100%);position:absolute;inset:0}.So3o5G_light .So3o5G_shade{background:linear-gradient(#fafaf900 0%,#fafaf91f 25%,#fafaf9bf 60%,#fafaf9 100%)}.So3o5G_controls{left:50%;bottom:calc(5rem + env(safe-area-inset-bottom));z-index:40;width:min(300px,100vw - 3rem);font-family:var(--font-sans);position:fixed;transform:translate(-50%)}.So3o5G_canvas[hidden]{display:none!important}@media (min-width:1024px){.So3o5G_backdrop[data-home-layout=split]{z-index:-1;height:100dvh;max-height:none;animation:.8s ease-out .4s both So3o5G_scene-layout-enter;position:fixed;inset:0}.So3o5G_backdrop[data-home-layout=split] .So3o5G_shade{--protected-edge:calc(var(--home-column-width,24rem) + var(--home-layout-gutter,1.5rem));--blend-span:clamp(2rem, calc((100vw - var(--protected-edge) - var(--protected-edge)) / 2), 16rem);--clear-edge:calc(var(--protected-edge) + var(--blend-span));background:linear-gradient(to right, var(--scene-ground) 0%, color-mix(in srgb, var(--scene-ground) 98%, transparent) var(--protected-edge), color-mix(in srgb, var(--scene-ground) 95%, transparent) calc(var(--protected-edge) + var(--blend-span) * .1), color-mix(in srgb, var(--scene-ground) 88%, transparent) calc(var(--protected-edge) + var(--blend-span) * .2), color-mix(in srgb, var(--scene-ground) 77%, transparent) calc(var(--protected-edge) + var(--blend-span) * .3), color-mix(in srgb, var(--scene-ground) 64%, transparent) calc(var(--protected-edge) + var(--blend-span) * .4), color-mix(in srgb, var(--scene-ground) 49%, transparent) calc(var(--protected-edge) + var(--blend-span) * .5), color-mix(in srgb, var(--scene-ground) 35%, transparent) calc(var(--protected-edge) + var(--blend-span) * .6), color-mix(in srgb, var(--scene-ground) 21%, transparent) calc(var(--protected-edge) + var(--blend-span) * .7), color-mix(in srgb, var(--scene-ground) 10%, transparent) calc(var(--protected-edge) + var(--blend-span) * .8), color-mix(in srgb, var(--scene-ground) 3%, transparent) calc(var(--protected-edge) + var(--blend-span) * .9), transparent var(--clear-edge), transparent calc(100% - var(--clear-edge)), color-mix(in srgb, var(--scene-ground) 3%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .9), color-mix(in srgb, var(--scene-ground) 10%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .8), color-mix(in srgb, var(--scene-ground) 21%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .7), color-mix(in srgb, var(--scene-ground) 35%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .6), color-mix(in srgb, var(--scene-ground) 49%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .5), color-mix(in srgb, var(--scene-ground) 64%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .4), color-mix(in srgb, var(--scene-ground) 77%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .3), color-mix(in srgb, var(--scene-ground) 88%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .2), color-mix(in srgb, var(--scene-ground) 95%, transparent) calc(100% - var(--protected-edge) - var(--blend-span) * .1), color-mix(in srgb, var(--scene-ground) 98%, transparent) calc(100% - var(--protected-edge)), var(--scene-ground) 100%)}}@keyframes So3o5G_scene-layout-enter{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.So3o5G_backdrop[data-home-layout=split]{animation:none}}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d72c019e91ffb82f-s.23_tzllc9ug3l.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8557ac4879842fb9-s.0v7f0_qic28v5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c847346577a98de0-s.2im-ylirbcr2x.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/db08d2e20377160a-s.2wq_0j16_l1ke.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8394f9d71e076efc-s.1_84mggmphogq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/19087af2bdec32b5-s.p.0u70gkhz9e0b8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.OS5ZAq_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal;font-weight:400}
._2_gBna_panel{--studio-bg:var(--scene-ground,#000);--studio-fg:var(--scene-ink,#fafafa);--studio-rule:color-mix(in srgb, var(--studio-fg) 13%, transparent);--studio-muted:color-mix(in srgb, var(--studio-fg) 60%, transparent);--studio-text:color-mix(in srgb, var(--studio-fg) 80%, transparent);--studio-field:color-mix(in srgb, var(--studio-fg) 4%, var(--studio-bg));border:1px solid var(--studio-rule);background:var(--studio-bg);width:min(300px,100vw - 3rem);max-height:min(720px,100svh - 9rem);color:var(--studio-fg);color-scheme:var(--scene-color-scheme,dark);border-radius:16px;flex-direction:column;font-size:11px;line-height:1.5;display:flex;position:absolute;bottom:calc(100% + .65rem);left:0;overflow:hidden;box-shadow:0 12px 48px #0002}._2_gBna_header{border-bottom:1px solid var(--studio-rule);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}._2_gBna_header h2{text-transform:uppercase;letter-spacing:.08em;color:var(--studio-muted);font-size:10px;font-weight:400}._2_gBna_header button{padding:3px}._2_gBna_body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--studio-rule) transparent;min-height:0;overflow-y:auto}._2_gBna_section{border-bottom:1px solid var(--studio-rule);padding:12px}._2_gBna_sectionHeading{align-items:center;gap:8px;height:20px;margin-bottom:10px;display:flex}._2_gBna_sectionHeading h3{text-transform:uppercase;letter-spacing:.08em;color:var(--studio-muted);flex-shrink:0;font-size:10px;font-weight:400}._2_gBna_sectionHeading>span{background:var(--studio-rule);flex:1;height:1px}._2_gBna_sectionHeading button{border:1px solid var(--studio-rule);color:var(--studio-muted);border-radius:3px;padding:1px 6px;font-size:10px}._2_gBna_sectionBody{flex-direction:column;gap:10px;display:flex}._2_gBna_sceneFilters{flex-wrap:wrap;gap:4px;display:flex}._2_gBna_sceneFilters button{border:1px solid var(--studio-rule);color:var(--studio-muted);border-radius:4px;padding:4px 6px;font-size:9px}._2_gBna_sceneFilters button:hover{color:var(--studio-fg);background:var(--studio-field)}._2_gBna_sceneFilters button[aria-pressed=true]{color:var(--studio-bg);background:var(--studio-fg);border-color:var(--studio-fg)}._2_gBna_sceneFilters button:focus-visible{outline:2px solid var(--studio-fg);outline-offset:2px}._2_gBna_sceneGrid{scrollbar-width:thin;grid-template-columns:1fr 1fr;gap:4px;max-height:148px;display:grid;overflow-y:auto}._2_gBna_sceneCategory{color:var(--studio-muted);text-transform:uppercase;letter-spacing:.08em;grid-column:1/-1;margin-top:8px;font-size:9px;font-weight:400}._2_gBna_sceneCategory:first-of-type{margin-top:0}._2_gBna_sceneCard{border:1px solid var(--studio-rule);text-transform:capitalize;cursor:pointer;border-radius:3px;padding:7px 8px;font-size:10px;position:relative}._2_gBna_glyphGrid{border:1px solid var(--studio-rule);background:var(--studio-rule);border-radius:3px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}._2_gBna_glyphCard{background:var(--studio-bg);color:var(--studio-text);cursor:pointer;grid-template-columns:1fr auto;column-gap:8px;padding:6px 8px;display:grid;position:relative}._2_gBna_glyphCard small{opacity:.55;font-size:10px}._2_gBna_glyphPreview{letter-spacing:.12em;white-space:nowrap;opacity:.8;grid-column:1/-1;font-size:13px;line-height:1.25;overflow:hidden}._2_gBna_sceneCard:has(:checked){background:var(--studio-fg);color:var(--studio-bg)}._2_gBna_glyphCard:has(:checked){background:var(--studio-fg);color:var(--studio-bg)}._2_gBna_segmented label:has(:checked){background:var(--studio-fg);color:var(--studio-bg)}._2_gBna_glyphCard input,._2_gBna_sceneCard input,._2_gBna_segmented input,._2_gBna_toggle input{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}._2_gBna_sceneNavigation{color:var(--studio-muted);justify-content:space-between;align-items:center;font-size:10px;display:flex}._2_gBna_sceneNavigation button{border:1px solid var(--studio-rule);border-radius:3px;padding:3px}._2_gBna_range{gap:4px;display:grid}._2_gBna_rangeLabel{color:var(--studio-text);justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;display:flex}._2_gBna_rangeLabel output{color:var(--studio-fg);font-variant-numeric:tabular-nums;font-size:11px}._2_gBna_track{border:1px solid var(--studio-rule);background:var(--studio-field);border-radius:2px;align-items:center;height:20px;padding:0 4px;display:flex;position:relative}._2_gBna_track>span{white-space:pre;color:var(--studio-text);font-size:11px;line-height:1;display:block;overflow:hidden}._2_gBna_track input{opacity:0;cursor:ew-resize;width:100%;height:100%;position:absolute;inset:0}._2_gBna_toggle{color:var(--studio-text);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex;position:relative}._2_gBna_toggle>span:first-of-type{white-space:pre;color:var(--studio-muted)}._2_gBna_segmented{border:1px solid var(--studio-rule);border-radius:3px;display:flex;overflow:hidden}._2_gBna_segmented label{text-align:center;cursor:pointer;flex:1;padding:5px 8px;position:relative}._2_gBna_segmented label+label{border-left:1px solid var(--studio-rule)}._2_gBna_textField{color:var(--studio-text);gap:4px;display:grid}._2_gBna_textField input{border:1px solid var(--studio-rule);background:var(--studio-field);width:100%;color:var(--studio-fg);border-radius:3px;padding:5px 8px}._2_gBna_colorField{color:var(--studio-text);justify-content:space-between;align-items:center;font-size:12px;display:flex}._2_gBna_colorField input{background:var(--studio-field);border:1px solid var(--studio-rule);cursor:pointer;border-radius:3px;width:42px;height:24px;padding:2px}._2_gBna_colorField input:disabled{opacity:.3;cursor:not-allowed}._2_gBna_hint{color:var(--studio-muted);font-size:10px}._2_gBna_footer{border-top:1px solid var(--studio-rule);align-items:center;gap:8px;padding:10px 12px;display:flex}._2_gBna_footer button{border:1px solid var(--studio-rule);border-radius:3px;align-items:center;gap:5px;padding:4px 6px;font-size:10px;display:flex}._2_gBna_footer a{color:var(--studio-muted);margin-left:auto;font-size:10px}._2_gBna_panel button{cursor:pointer}._2_gBna_panel button:hover{background:color-mix(in srgb, var(--studio-fg) 8%, var(--studio-bg));color:var(--studio-fg)}._2_gBna_panel :is(button,a,input):focus-visible{outline:2px solid var(--studio-muted);outline-offset:2px}._2_gBna_panel :is(._2_gBna_track,._2_gBna_toggle,._2_gBna_glyphCard,._2_gBna_sceneCard,._2_gBna_segmented label):has(:focus-visible){outline:2px solid var(--studio-muted);outline-offset:-2px;z-index:1}
.t6iMeG_layout{max-width:42rem;padding:1.5rem 1.25rem calc(5rem + env(safe-area-inset-bottom));margin-inline:auto}.t6iMeG_hero{isolation:isolate;border:1px solid color-mix(in srgb, var(--foreground) 8%, transparent);background:var(--background);border-radius:1.5rem;animation:.8s ease-out .4s backwards t6iMeG_hero-enter;position:relative;overflow:hidden}.t6iMeG_bio{z-index:1;padding:8rem 1.5rem 2rem;position:relative}.t6iMeG_content{padding-top:2rem}.t6iMeG_content>div>h2,.t6iMeG_content>section>div>h2{font-weight:500}@media (min-width:640px){.t6iMeG_layout{padding-top:2rem}.t6iMeG_bio{padding:10rem 2.5rem 3rem}.t6iMeG_hero{border-radius:2rem}.t6iMeG_content{padding-top:3rem}}@keyframes t6iMeG_hero-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.t6iMeG_hero{animation:none}}.t6iMeG_root{isolation:isolate;position:relative}@media (min-width:1024px){.t6iMeG_root[data-home-layout=split]{--home-column-width:24rem;--home-layout-gutter:1.5rem}.t6iMeG_root[data-home-layout=split] .t6iMeG_layout{grid-template-columns:repeat(2, minmax(0, var(--home-column-width)));max-width:none;padding-left:max(var(--home-layout-gutter), env(safe-area-inset-left));padding-right:max(var(--home-layout-gutter), env(safe-area-inset-right));justify-content:space-between;align-items:start;column-gap:clamp(2rem,7vw,10rem);display:grid}.t6iMeG_root[data-home-layout=split] .t6iMeG_hero{z-index:0;isolation:auto;background:0 0;border:0;border-radius:0;animation:none;position:sticky;top:6.5rem;overflow:visible}.t6iMeG_root[data-home-layout=split] .t6iMeG_bio{overscroll-behavior:contain;scrollbar-width:thin;max-height:calc(100dvh - 12rem);padding:0 .25rem .25rem 0;animation:.8s ease-out .8s both t6iMeG_split-column-enter;overflow-y:auto}.t6iMeG_root[data-home-layout=split] .t6iMeG_bio h1{letter-spacing:normal;font-size:1rem;line-height:1.5}.t6iMeG_root[data-home-layout=split] .t6iMeG_content{z-index:1;padding-top:0;animation:.8s ease-out .8s both t6iMeG_split-column-enter;position:relative}}@keyframes t6iMeG_split-column-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.t6iMeG_root[data-home-layout=split] .t6iMeG_bio,.t6iMeG_root[data-home-layout=split] .t6iMeG_content{animation:none}}@media (min-width:1536px){.t6iMeG_root[data-home-layout=split]{margin-top:-4.5rem}.t6iMeG_root[data-home-layout=split] .t6iMeG_layout{padding-top:1.5rem}.t6iMeG_root[data-home-layout=split] .t6iMeG_hero{top:1.5rem}}
