@font-face{font-family:GeistPixelSquare;src:url(../media/GeistPixel_Square.p.fcca60d3.woff2)format("woff2");font-display:swap;font-weight:500}.geistpixelsquare_cf225766-module__Yt-Tla__className{font-family:GeistPixelSquare,Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace;font-weight:500}.geistpixelsquare_cf225766-module__Yt-Tla__variable{--font-geist-pixel-square:"GeistPixelSquare",Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}
@font-face{font-family:GeistPixelGrid;src:url(../media/GeistPixel_Grid.p.cb11f3cf.woff2)format("woff2");font-display:swap;font-weight:500}.geistpixelgrid_6ebff038-module__NUBdrG__className{font-family:GeistPixelGrid,Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace;font-weight:500}.geistpixelgrid_6ebff038-module__NUBdrG__variable{--font-geist-pixel-grid:"GeistPixelGrid",Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}
@font-face{font-family:GeistPixelCircle;src:url(../media/GeistPixel_Circle.p.96776c6c.woff2)format("woff2");font-display:swap;font-weight:500}.geistpixelcircle_7ee616e3-module__hUl13q__className{font-family:GeistPixelCircle,Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace;font-weight:500}.geistpixelcircle_7ee616e3-module__hUl13q__variable{--font-geist-pixel-circle:"GeistPixelCircle",Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}
@font-face{font-family:GeistPixelTriangle;src:url(../media/GeistPixel_Triangle.p.409b700c.woff2)format("woff2");font-display:swap;font-weight:500}.geistpixeltriangle_d08a9537-module__YhmSWq__className{font-family:GeistPixelTriangle,Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace;font-weight:500}.geistpixeltriangle_d08a9537-module__YhmSWq__variable{--font-geist-pixel-triangle:"GeistPixelTriangle",Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}
@font-face{font-family:GeistPixelLine;src:url(../media/GeistPixel_Line.p.fa9736b1.woff2)format("woff2");font-display:swap;font-weight:500}.geistpixelline_d71857ef-module__Cx3YZq__className{font-family:GeistPixelLine,Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace;font-weight:500}.geistpixelline_d71857ef-module__Cx3YZq__variable{--font-geist-pixel-line:"GeistPixelLine",Geist Mono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}
.drawably-host{--drawably-ease:cubic-bezier(.2,0,0,1);isolation:isolate;font-family:Inter,system-ui,sans-serif;position:relative}.drawably-svg{pointer-events:none;z-index:-1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.drawably-svg path{fill:none;stroke:var(--drawably-ink,var(--drawably-stroke,#2724d1));stroke-width:var(--drawably-width,2);stroke-linecap:round;stroke-linejoin:round}@property --drawably-frame{syntax:"<integer>";inherits:true;initial-value:0}.drawably-svg{--drawably-frame:0;animation:1.2s step-end infinite drawably-boil}@keyframes drawably-boil{0%{--drawably-frame:0}33.33%{--drawably-frame:1}66.67%{--drawably-frame:2}}.drawably-boil{--drawably-i:0;opacity:clamp(0,1 - (var(--drawably-frame) - var(--drawably-i))*(var(--drawably-frame) - var(--drawably-i)),1)}.drawably-boil[data-i="1"]{--drawably-i:1}.drawably-boil[data-i="2"]{--drawably-i:2}.drawably-svg .drawably-blob{fill:var(--drawably-ink,var(--drawably-fill,#2724d1));stroke:var(--drawably-ink,var(--drawably-fill,#2724d1));stroke-width:4px}.drawably-svg .drawably-scribble{stroke-width:1.5px}.drawably-button{font:inherit;color:var(--drawably-ink,var(--drawably-stroke,#2724d1));cursor:pointer;background:0 0;border:0;outline:none;justify-content:center;align-items:center;padding:6px 14px;font-family:Inter,system-ui,sans-serif;transition:transform .12s;display:inline-flex}.drawably-button:active{transform:translateY(1px)scale(.98)}.drawably-button .drawably-outline{transition:stroke-width .12s,fill .12s}.drawably-button:active .drawably-outline{stroke-width:calc(var(--drawably-width,2)*1.4)}@media (hover:hover){.drawably-button:hover:not(:disabled,[data-state=loading]){transform:translateY(-1px)}.drawably-button:not(.drawably-button--solid):hover:not(:disabled) .drawably-outline{fill:color-mix(in srgb,var(--drawably-ink,var(--drawably-stroke,#2724d1))10%,transparent)}.drawably-button:hover:active{transform:translateY(1px)scale(.98)}}.drawably-button:disabled{cursor:not-allowed;opacity:.45;transform:none}.drawably-button--neutral{--drawably-stroke:#6e675f;--drawably-fill:#6e675f}.drawably-button--danger{--drawably-stroke:var(--drawably-error,#d12724);--drawably-fill:var(--drawably-error,#d12724)}.drawably-button[data-state=error]{--drawably-ink:var(--drawably-error,#d12724)}.drawably-button[data-state=success]{--drawably-ink:var(--drawably-success,#188a42)}.drawably-button[data-state=loading]{cursor:progress;opacity:.6}.drawably-button[data-state=loading] .drawably-svg{animation-duration:.45s}.drawably-button--solid{color:var(--drawably-paper,#fff)}.drawably-svg .drawably-focus{visibility:hidden;stroke-width:1.5px}.drawably-host:is(:focus-visible,:has(:focus-visible)) .drawably-focus{visibility:visible}.drawably-checkbox,.drawably-radio{width:22px;height:22px;display:inline-block}.drawably-toggle{width:44px;height:24px;display:inline-block}:is(.drawably-checkbox,.drawably-radio,.drawably-toggle) input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.drawably-svg .drawably-dot{fill:var(--drawably-ink,var(--drawably-fill,#2724d1));stroke:var(--drawably-ink,var(--drawably-fill,#2724d1));visibility:hidden;transform-box:fill-box;transform-origin:50%;transition:transform .16s var(--drawably-ease);transform:scale(.5)}.drawably-radio[data-checked] .drawably-dot{visibility:visible;transform:scale(1)}.drawably-svg .drawably-knob{transition:transform .16s var(--drawably-ease)}.drawably-toggle[data-checked] .drawably-knob{transform:translate(20px)}.drawably-divider{border:0;height:10px;display:block}.drawably-svg .drawably-check{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .24s var(--drawably-ease)}.drawably-checkbox[data-checked] .drawably-check{stroke-dashoffset:0}.drawably-inputbox,.drawably-textarea,.drawably-select{display:inline-block}:is(.drawably-inputbox,.drawably-textarea,.drawably-select) :is(input,textarea,select){font:inherit;color:inherit;box-sizing:border-box;background:0 0;border:0;outline:none;width:100%;padding:8px 12px}.drawably-textarea textarea{resize:vertical;display:block}.drawably-select select{appearance:none;cursor:pointer;padding-right:34px}@supports (appearance:base-select){.drawably-select select{appearance:base-select}.drawably-select select::picker(select){appearance:base-select}.drawably-select select::picker-icon{display:none}.drawably-select select::picker(select){background:var(--drawably-paper,#fff);color:inherit;font:inherit;border:0;margin-top:4px;padding:6px}.drawably-select option{border-radius:3px;padding:4px 8px}.drawably-select option:is(:hover,:focus-visible){background:color-mix(in srgb,var(--drawably-stroke,#2724d1)10%,transparent)}.drawably-select option::checkmark{content:"";width:.875em;height:.875em;display:inline-block}.drawably-select option:checked::checkmark{background:var(--drawably-ink,var(--drawably-stroke,#2724d1));-webkit-mask:var(--drawably-check)center/contain no-repeat;mask:var(--drawably-check)center/contain no-repeat}}.drawably-badge{color:var(--drawably-ink,var(--drawably-stroke,#2724d1));padding:1px 7px;font:500 12px/1.4 Geist Mono,ui-monospace,monospace;display:inline-block}.drawably-list{padding-left:24px;list-style:none}.drawably-card{padding:16px}.drawably-svg .drawably-wash{stroke:var(--drawably-ink,var(--drawably-fill,#2724d1));stroke-width:6px;stroke-opacity:.3;mix-blend-mode:multiply}:is(.drawably-underline,.drawably-circle) .drawably-svg path{stroke-width:var(--drawably-width,1.5)}.drawably-arrow{z-index:1;inset:auto}@media (prefers-reduced-motion:reduce){.drawably-svg{animation:none}.drawably-svg .drawably-check,.drawably-svg .drawably-dot,.drawably-svg .drawably-knob{transition:none}}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-font-weight:initial;--tw-tracking:initial;--tw-outline-style:solid;--tw-ease:initial}}}@layer theme{:root,:host{--spacing:.25rem;--container-2xl:42rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--tracking-tight:-.025em;--tracking-widest:.1em;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--face);--default-mono-font-family:var(--face)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.right-0{right:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.-mx-5{margin-inline:calc(var(--spacing)*-5)}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-7{margin-top:calc(var(--spacing)*7)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.h-7{height:calc(var(--spacing)*7)}.h-dvh{height:100dvh}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.w-8{width:calc(var(--spacing)*8)}.w-\[130vh\]{width:130vh}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x:calc(1/2*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-90{rotate:90deg}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing)*3)}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-6{column-gap:calc(var(--spacing)*6)}.gap-x-8{column-gap:calc(var(--spacing)*8)}.gap-x-10{column-gap:calc(var(--spacing)*10)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.gap-y-3\.5{row-gap:calc(var(--spacing)*3.5)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.object-contain{object-fit:contain}.px-0{padding-inline:calc(var(--spacing)*0)}.px-6{padding-inline:calc(var(--spacing)*6)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-5{padding-top:calc(var(--spacing)*5)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.font-mono{font-family:var(--face)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!text-\[13px\]{font-size:13px!important}.text-\[11px\]{font-size:11px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-ink{color:var(--ink)}.text-ink-2{color:var(--ink-2)}.text-ink-3{color:var(--ink-3)}.text-pen{color:var(--pen)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.decoration-from-font{text-decoration-thickness:from-font}.underline-offset-2{text-underline-offset:2px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-70:hover{opacity:.7}}@media (min-width:40rem){.sm\:-mx-10{margin-inline:calc(var(--spacing)*-10)}.sm\:block{display:block}.sm\:h-9{height:calc(var(--spacing)*9)}.sm\:w-10{width:calc(var(--spacing)*10)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:px-9{padding-inline:calc(var(--spacing)*9)}.sm\:px-16{padding-inline:calc(var(--spacing)*16)}.sm\:pt-6{padding-top:calc(var(--spacing)*6)}}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:px-20{padding-inline:calc(var(--spacing)*20)}}}:root{--paper:#fff;--ink:#18181b;--ink-2:#474645;--ink-3:#a1a1aa;--pen:#2724d1;--face:var(--font-geist-pixel-square),ui-monospace,monospace;--drawably-stroke:#2724d1;--drawably-fill:#2724d1;--drawably-paper:#fff}body{background:var(--paper);color:var(--ink);font-family:var(--face);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.6}.drawably-host{font-family:inherit}.drawably-badge{font-family:var(--face);padding:4px 10px}.drawably-list{padding-left:32px}.drawably-list>li{line-height:1.6}@media (hover:hover){.desc-slot{height:2lh;position:relative}.desc{background:var(--paper);z-index:0;max-height:2lh;transition:max-height var(--desc-dur,.32s)cubic-bezier(.4,0,.2,1),z-index 0s var(--desc-dur,.32s);position:absolute;top:0;left:0;right:0;overflow:hidden}.desc[data-more]:after{content:"";background:linear-gradient(to top,var(--paper),transparent);pointer-events:none;height:.75lh;transition:opacity .22s;position:absolute;bottom:0;left:0;right:0}.project-card:hover .desc,.project-card:focus-within .desc{max-height:var(--desc-h,12lh);z-index:10;transition:max-height var(--desc-dur,.32s)cubic-bezier(.4,0,.2,1),z-index 0s}.project-card:hover .desc[data-more]:after,.project-card:focus-within .desc[data-more]:after{opacity:0}@media (prefers-reduced-motion:reduce){.desc,.project-card:hover .desc,.project-card:focus-within .desc,.desc[data-more]:after{transition-duration:0s}}}@keyframes panel-in{0%{opacity:0}to{opacity:1}}.panel-in{animation:.22s cubic-bezier(.2,0,0,1) both panel-in}@media (prefers-reduced-motion:reduce){.panel-in{animation:none}}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}*{box-sizing:border-box}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ease{syntax:"*";inherits:false}
