@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_7b064e0d-module__MOT0tq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_7b064e0d-module__MOT0tq__variable{--font-inter:"Inter", "Inter Fallback"}
@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--leading-snug:1.375;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-4xl:2rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.sticky{position:sticky}.right-0{right:0}.bottom-0{bottom:0}.z-10{z-index:10}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-full{width:100%;height:100%}.h-\(--accordion-panel-height\){height:var(--accordion-panel-height)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-full{height:100%}.min-h-full{min-height:100%}.w-fit{width:fit-content}.w-full{width:100%}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-\(--card-spacing\){gap:var(--card-spacing)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}:where(.-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-transparent{border-color:#0000}.bg-background{background-color:var(--canvas)}.bg-clip-padding{background-clip:padding-box}.object-cover{object-fit:cover}.p-\(--card-spacing\){padding:var(--card-spacing)}.px-\(--card-spacing\){padding-inline:var(--card-spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.py-\(--card-spacing\){padding-block:var(--card-spacing)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.pt-0{padding-top:0}.pr-0{padding-right:0}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.text-left{text-align:left}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.text-foreground{color:var(--ink)}.uppercase{text-transform:uppercase}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bg-blend-color{background-blend-mode:color}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-background{--tw-ring-color:var(--canvas)}.ring-foreground\/10{--tw-ring-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--ink) 10%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--card-spacing\:--spacing\(4\)\]{--card-spacing:calc(var(--spacing) * 4)}.not-last\:border-b:not(:last-child){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.group-has-data-\[size\=lg\]\/avatar-group\:size-10:is(:where(.group\/avatar-group):has([data-size=lg]) *){width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.group-has-data-\[size\=sm\]\/avatar-group\:size-6:is(:where(.group\/avatar-group):has([data-size=sm]) *){width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.group-aria-expanded\/accordion-trigger\:hidden:is(:where(.group\/accordion-trigger)[aria-expanded=true] *){display:none}.group-aria-expanded\/accordion-trigger\:inline:is(:where(.group\/accordion-trigger)[aria-expanded=true] *){display:inline}.group-data-\[size\=default\]\/avatar\:size-2\.5:is(:where(.group\/avatar)[data-size=default] *){width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.group-data-\[size\=lg\]\/avatar\:size-3:is(:where(.group\/avatar)[data-size=lg] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[size\=sm\]\/avatar\:size-2:is(:where(.group\/avatar)[data-size=sm] *){width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.group-data-\[size\=sm\]\/avatar\:text-xs:is(:where(.group\/avatar)[data-size=sm] *){font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:0}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:mix-blend-darken:after{content:var(--tw-content);mix-blend-mode:darken}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:text-foreground:hover{color:var(--ink)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius-lg)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:0}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:0}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--ink)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-ending-style\:h-0[data-ending-style]{height:0}.data-horizontal\:h-px[data-horizontal]{height:1px}.data-horizontal\:w-full[data-horizontal]{width:100%}.data-starting-style\:h-0[data-starting-style]{height:0}.data-vertical\:w-px[data-vertical]{width:1px}.data-vertical\:self-stretch[data-vertical]{align-self:stretch}.data-\[size\=lg\]\:size-10[data-size=lg]{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.data-\[size\=sm\]\:size-6[data-size=sm]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.data-\[size\=sm\]\:\[--card-spacing\:--spacing\(3\)\][data-size=sm]{--card-spacing:calc(var(--spacing) * 3)}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:0}:is(.\*\*\:data-\[slot\=accordion-trigger-icon\]\:ml-auto *)[data-slot=accordion-trigger-icon]{margin-left:auto}:is(.\*\*\:data-\[slot\=accordion-trigger-icon\]\:size-4 *)[data-slot=accordion-trigger-icon]{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:data-\[slot\=avatar\]\:ring-2>*)[data-slot=avatar]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.\*\:data-\[slot\=avatar\]\:ring-background>*)[data-slot=avatar]{--tw-ring-color:var(--canvas)}@media (prefers-color-scheme:dark){.dark\:after\:mix-blend-lighten:after{content:var(--tw-content);mix-blend-mode:lighten}}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-3 a{text-underline-offset:3px}@media (hover:hover){.\[\&_a\]\:hover\:text-foreground a:hover{color:var(--ink)}}.\[\&_p\:not\(\:last-child\)\]\:mb-4 p:not(:last-child){margin-bottom:calc(var(--spacing) * 4)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\.border-b\]\:pb-\(--card-spacing\).border-b{padding-bottom:var(--card-spacing)}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.group-has-data-\[size\=lg\]\/avatar-group\:\[\&\>svg\]\:size-5:is(:where(.group\/avatar-group):has([data-size=lg]) *)>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.group-has-data-\[size\=sm\]\/avatar-group\:\[\&\>svg\]\:size-3:is(:where(.group\/avatar-group):has([data-size=sm]) *)>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size=default] *)>svg,.group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size=lg] *)>svg{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden:is(:where(.group\/avatar)[data-size=sm] *)>svg{display:none}}:root{--green:#00d992;--green-soft:#2fd6a1;--green-deep:#10b981;--on-green:#101010;--canvas:#101010;--canvas-soft:#1a1a1a;--canvas-raise:#212121;--ink:#f2f2f2;--ink-strong:#fff;--body:#bdbdbd;--mute:#8b949e;--canvas-text:#f5f6f7;--hairline:#3d3a39;--hairline-soft:#b8b3b0;--sp-xxs:2px;--sp-xs:4px;--sp-sm:8px;--sp-md:12px;--sp-lg:16px;--sp-xl:20px;--sp-2xl:24px;--sp-3xl:32px;--sp-4xl:40px;--sp-5xl:48px;--sp-6xl:64px;--font-sans:var(--font-inter), Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-pill:9999px;--max-w:1200px;--background:#101010;--foreground:#f2f2f2;--card:#101010;--card-foreground:#f2f2f2;--primary:#00d992;--primary-foreground:#101010;--secondary:#1a1a1a;--secondary-foreground:#f2f2f2;--muted:#1a1a1a;--muted-foreground:#bdbdbd;--border:#3d3a39;--ring:#00d992}.code-display{--bg-card:var(--canvas);--text-card-foreground:var(--ink)}.code-display .code-header{padding:var(--sp-md) var(--sp-lg);border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:var(--sp-sm);display:flex}.code-display .code-header .language-tag{color:var(--green);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--eyebrow-uppercase);font-size:12px;font-weight:600}.code-display .code-header .line-count{color:var(--muted-foreground);font-family:var(--font-mono);font-size:12px}.code-display .code-body{overflow-x:auto}.code-display .code-line-numbers{float:left;width:40px;padding:var(--sp-xs) 0;color:var(--muted-foreground);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;border-right:1px solid var(--hairline);font-size:12px}.code-display .code-line-numbers .code-line-number{padding:var(--sp-xxs) var(--sp-xs)}.code-display .code-line-numbers .code-line-number:hover{background:var(--canvas-soft)}.code-display .code-pre{padding:var(--sp-md) var(--sp-lg);font-family:var(--font-mono);color:var(--ink);flex-direction:column;font-size:13px;line-height:1.6;display:flex;overflow-x:auto}.code-display .code-pre .code-line{padding:var(--sp-xxs) 0;white-space:pre;-webkit-user-select:none;user-select:none;align-items:baseline;display:flex}.code-display .code-pre .code-line .line-content{color:var(--ink)}.code-display .code-pre .code-line .token-typescript,.code-display .code-pre .code-line .token-javascript,.code-display .code-pre .code-line .token-python,.code-display .code-pre .code-line .token-bash{color:var(--green)}.code-display .code-footer{padding:var(--sp-md) var(--sp-lg);border-top:1px solid var(--hairline);gap:var(--sp-sm);display:flex}.code-display .copy-button{background:var(--canvas);color:var(--green);border:1px solid var(--hairline);padding:var(--sp-xxs) var(--sp-sm);font-family:var(--font-mono);cursor:pointer;font-size:12px;transition:all .2s}.code-display .copy-button:hover{background:var(--green-soft);color:var(--canvas)}.code-display .copy-button:focus-visible{outline:2px solid var(--green);outline-offset:2px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--canvas);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{background:var(--canvas);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"calt", "rlig";min-height:100dvh;overflow-x:hidden}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:var(--r-xs)}::selection{background:var(--green);color:var(--on-green)}.container{width:min(var(--max-w), calc(100% - var(--sp-6xl)));margin-inline:auto}.skip-link{background:var(--green);color:var(--on-green);left:var(--sp-lg);padding:var(--sp-sm) var(--sp-md);z-index:100;border-radius:var(--r-sm);font-size:14px;font-weight:600;transition:top .2s;position:absolute;top:-60px}.skip-link:focus{top:var(--sp-lg)}.eyebrow{color:var(--green-soft);letter-spacing:2.52px;text-transform:uppercase;font-size:14px;font-weight:600;line-height:20px}.display-xl{color:var(--ink-strong);letter-spacing:-.65px;font-size:clamp(40px,6vw,60px);font-weight:400;line-height:1}.display-lg{color:var(--ink);letter-spacing:-.9px;font-size:36px;font-weight:400;line-height:40px}.section{padding:var(--sp-6xl) 0}.section-soft{background:var(--canvas-soft)}.section-dashed{border-bottom:1px dashed #4f5d7566}.section-heading{gap:var(--sp-2xl);margin-bottom:var(--sp-4xl);flex-direction:column;display:flex}.section-heading--row{justify-content:space-between;align-items:flex-start;gap:var(--sp-3xl);flex-direction:row}.section-heading h2{color:var(--ink);letter-spacing:-.9px;font-size:36px;font-weight:400;line-height:40px}.section-heading>p:last-child{color:var(--body);max-width:58ch;font-size:16px;line-height:26px}.button{border-radius:var(--r-sm);font-family:var(--font-sans);align-items:center;gap:var(--sp-sm);min-height:44px;padding:var(--sp-md) var(--sp-lg);cursor:pointer;border:1px solid #0000;font-size:16px;font-weight:600;line-height:24px;text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .18s;display:inline-flex}.button-primary{background:var(--green);color:var(--on-green);border-color:var(--green)}.button-primary:hover{background:var(--green-soft);border-color:var(--green-soft);transform:translateY(-2px)}.button-secondary{color:var(--ink);border-color:var(--hairline);background:0 0}.button-secondary:hover{border-color:var(--green);color:var(--green);transform:translateY(-2px)}.text-link{color:var(--green-soft);align-items:center;gap:6px;font-size:14px;font-weight:600;transition:color .2s,gap .2s;display:inline-flex}.text-link:hover{color:var(--green);gap:10px}.card-feature{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-2xl);transition:border-color .2s,box-shadow .2s}.card-feature:hover{border-color:#00d9924d;box-shadow:0 0 15px #5c585533}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--hairline);z-index:50;background:#101010e6;transition:border-color .3s;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;height:64px;display:flex}.brand{letter-spacing:-.2px;align-items:center;gap:10px;font-size:14px;font-weight:600;display:inline-flex}.brand-mark{background:var(--green);border-radius:var(--r-xs);color:var(--on-green);font-family:var(--font-mono);letter-spacing:0;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:10px;font-weight:700;display:inline-flex}.desktop-nav{align-items:center;gap:var(--sp-md);display:flex}.desktop-nav a{color:var(--body);border-radius:var(--r-xs);padding:4px 6px;font-size:14px;transition:color .2s}.desktop-nav a:hover{color:var(--ink)}.nav-resume{background:0 0;font-size:14px;font-weight:600;border:1px solid var(--hairline)!important;border-radius:var(--r-sm)!important;color:var(--ink)!important;padding:6px 12px!important;transition:border-color .2s,color .2s!important}.nav-resume:hover{border-color:var(--green)!important;color:var(--green)!important}.mobile-menu{display:none}.mobile-menu summary{color:var(--body);cursor:pointer;padding:6px;font-size:14px;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-links{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-xl);z-index:50;gap:14px;width:220px;display:grid;position:absolute;top:70px;right:20px}.mobile-links a{color:var(--body);font-size:14px}.mobile-links a:hover{color:var(--green)}.hero-band{border-bottom:1px solid var(--hairline);min-height:680px;position:relative;overflow:hidden}.hero-mesh{background-image:linear-gradient(#00d9920d 1px,#0000 1px),linear-gradient(90deg,#00d9920d 1px,#0000 1px);background-size:44px 44px;animation:20s linear infinite meshShift;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 80% at 70%,#000 40%,#0000 100%);mask-image:radial-gradient(80% 80% at 70%,#000 40%,#0000 100%)}@keyframes meshShift{0%{background-position:0 0}to{background-position:44px 44px}}.hero-glow{pointer-events:none;background:radial-gradient(600px 400px at 70%,#00d9920f 0%,#0000 70%);position:absolute;inset:0}.hero-content{padding:var(--sp-4xl) 0 var(--sp-5xl);z-index:1;position:relative}.hero-kicker{border-radius:var(--r-pill);color:var(--body);align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-2xl);background:#00d99212;border:1px solid #00d9922e;padding:5px 14px 5px 10px;font-size:13px;display:inline-flex}.hero-kicker span{color:var(--mute);border-left:1px solid var(--hairline);margin-left:4px;padding-left:8px;font-size:12px}.status-dot{background:var(--green);border-radius:50%;width:7px;height:7px;animation:2.5s ease-in-out infinite pulse;display:inline-block;box-shadow:0 0 0 4px #00d99226}@keyframes pulse{50%{opacity:.5}}.hero-layout{align-items:center;gap:var(--sp-6xl);grid-template-columns:1.15fr .85fr;display:grid}.hero-copy{gap:var(--sp-xl);flex-direction:column;display:flex}.hero-copy .eyebrow{letter-spacing:2.52px}.hero-title{color:var(--ink-strong);letter-spacing:-.65px;font-size:clamp(38px,5.5vw,60px);font-weight:400;line-height:1}.hero-title span{color:var(--green)}.hero-lede{color:var(--body);max-width:52ch;margin-top:0;font-size:18px;line-height:28px}.hero-terminal-line{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--body);font-family:var(--font-mono);align-items:center;gap:var(--sp-sm);padding:6px 14px;font-size:13px;display:inline-flex}.hero-terminal-line span{color:var(--green)}.hero-terminal-line b{color:var(--ink)}.hero-terminal-line i{color:var(--green-soft);font-style:normal}.cursor{background:var(--green);border-radius:1px;width:7px;height:13px;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-actions{gap:var(--sp-md);margin-top:var(--sp-sm);flex-wrap:wrap;display:flex}.hero-proof{gap:var(--sp-2xl);flex-direction:column;display:flex}.hero-mockup{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-md);overflow:hidden;box-shadow:0 0 40px #00000080}.mockup-bar{border-bottom:1px solid var(--hairline);align-items:center;gap:6px;padding:10px 14px;display:flex}.mockup-bar span{background:var(--hairline);border-radius:50%;width:8px;height:8px}.mockup-bar span:first-child{background:#ff5f57}.mockup-bar span:nth-child(2){background:#febc2e}.mockup-bar span:nth-child(3){background:#28c840}.mockup-bar small{color:var(--mute);font-family:var(--font-mono);margin-left:auto;font-size:11px}.mockup-body{font-family:var(--font-mono);padding:var(--sp-xl) var(--sp-lg);font-size:13px;line-height:1.75}.mockup-body .ln{color:var(--hairline);-webkit-user-select:none;user-select:none;width:24px;display:inline-block}.mockup-body .kw{color:#79b8ff}.mockup-body .var{color:var(--ink)}.mockup-body .str{color:#9ecbff}.mockup-body .cm{color:var(--mute)}.mockup-body .fn{color:var(--green)}.mockup-body .ok{color:var(--green-soft)}.mockup-body .num{color:var(--green);font-weight:550}.hero-stats{gap:var(--sp-md);grid-template-columns:repeat(3,1fr);display:grid}.hero-stat{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-xl);flex-direction:column;gap:6px;transition:border-color .2s,transform .2s;display:flex}.hero-stat:hover{border-color:#00d9924d;transform:translateY(-2px)}.stat-icon{width:24px;height:24px;margin-bottom:var(--sp-sm);filter:invert(.8)sepia()saturate(5)hue-rotate(110deg)}.hero-stat strong{color:var(--ink-strong);font-family:var(--font-mono);letter-spacing:-.5px;font-size:20px;font-weight:550}.hero-stat span{color:var(--mute);font-size:11px;line-height:16px}.proof-strip{background:var(--canvas-soft);border-bottom:1px solid var(--hairline)}.proof-grid{background:linear-gradient(90deg, var(--canvas-soft), var(--canvas-soft));grid-template-columns:repeat(4,1fr);display:grid}.proof-grid div{border-left:1px solid var(--hairline);flex-direction:column;gap:5px;padding:22px 20px;display:flex}.proof-grid div:last-child{border-right:1px solid var(--hairline)}.proof-grid strong{color:var(--ink-strong);font-family:var(--font-mono);letter-spacing:-.5px;font-size:22px;font-weight:550}.proof-grid span{color:var(--mute);font-size:12px}.work-section{border-bottom:1px dashed #4f5d7566}.featured-project{border:1px solid var(--hairline);border-radius:var(--r-md);margin-bottom:var(--sp-3xl);grid-template-columns:1.1fr .9fr;gap:0;transition:border-color .25s,box-shadow .25s;display:grid;overflow:hidden}.featured-project:hover{border-color:#00d99240;box-shadow:0 0 30px #00d99212}.project-visual{background:var(--canvas-soft);border-right:1px solid var(--hairline);flex-direction:column;min-height:340px;display:flex}.window-bar{border-bottom:1px solid var(--hairline);align-items:center;gap:6px;padding:10px 14px;display:flex}.window-bar i{background:var(--hairline);border-radius:50%;width:8px;height:8px;font-style:normal;display:block}.window-bar i:first-child{background:#ff5f57}.window-bar i:nth-child(2){background:#febc2e}.window-bar i:nth-child(3){background:#28c840}.window-bar span{color:var(--mute);font-family:var(--font-mono);margin-left:auto;font-size:11px}.dashboard-preview{flex:1;display:flex}.preview-sidebar{border-right:1px solid var(--hairline);gap:var(--sp-md);padding:var(--sp-xl) var(--sp-lg);flex-direction:column;width:100px;display:flex}.preview-sidebar b{color:var(--green);font-family:var(--font-mono);letter-spacing:1px;font-size:10px;font-weight:700}.preview-sidebar span{background:var(--hairline);border-radius:2px;width:100%;height:8px}.active-line{opacity:.7;background:var(--green)!important}.preview-main{gap:var(--sp-lg);padding:var(--sp-xl);flex-direction:column;flex:1;display:flex}.preview-main>p{color:var(--mute);font-family:var(--font-mono);letter-spacing:.5px;gap:12px;font-size:11px;display:flex}.preview-main>p small{color:var(--green)}.preview-stats{gap:var(--sp-md);display:flex}.preview-stats b{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-sm);font-family:var(--font-mono);color:var(--ink-strong);padding:var(--sp-md);flex-direction:column;flex:1;gap:3px;font-size:18px;font-weight:550;display:flex}.preview-stats b small{color:var(--mute);font-size:10px;font-weight:400}.preview-table{gap:var(--sp-sm);flex:1;display:grid}.preview-table span{background:var(--hairline);opacity:.5;border-radius:3px;height:12px;display:block}.preview-table span:nth-child(2n){opacity:.25}.project-copy{gap:var(--sp-2xl);padding:var(--sp-3xl) var(--sp-3xl);flex-direction:column;display:flex}.project-copy h3{color:var(--ink);letter-spacing:-.4px;font-size:22px;font-weight:700;line-height:1.2}.project-copy>p{color:var(--body);font-size:15px;line-height:24px}.project-meta{border-top:1px solid var(--hairline);flex-direction:column;display:flex}.project-meta div{border-bottom:1px solid var(--hairline);justify-content:space-between;padding:10px 0;font-size:13px;display:flex}.project-meta dt{color:var(--mute)}.project-meta dd{color:var(--ink);margin:0;font-weight:500}.project-list{gap:var(--sp-md);grid-template-columns:repeat(2,1fr);display:grid}.project-list article{border:1px solid var(--hairline);border-radius:var(--r-md);gap:var(--sp-md);padding:var(--sp-2xl);flex-direction:column;transition:border-color .2s,transform .2s;display:flex}.project-list article:hover{border-color:#00d9924d;transform:translateY(-3px)}.project-list h3{color:var(--ink);font-size:17px;font-weight:700}.project-list p{color:var(--body);flex:1;font-size:14px;line-height:22px}.project-tag{color:var(--green-soft);font-family:var(--font-mono);letter-spacing:.5px;font-size:11px}.services-section{border-bottom:1px dashed #4f5d7566;position:relative;overflow:hidden}.services-section:before{content:"";pointer-events:none;background:radial-gradient(800px 400px at 50% 100%,#00d9920a 0%,#0000 70%);position:absolute;inset:0}.section-intro{margin-bottom:var(--sp-5xl);max-width:700px}.section-intro h2{color:var(--ink);letter-spacing:-.9px;margin-bottom:var(--sp-lg);font-size:36px;font-weight:400;line-height:40px}.section-intro h2 span{color:var(--green)}.section-intro>p{color:var(--body);max-width:54ch;font-size:16px;line-height:26px}.services-grid{gap:var(--sp-md);grid-template-columns:repeat(3,1fr);display:grid;position:relative}.service-card{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-md);gap:var(--sp-2xl);padding:var(--sp-2xl);flex-direction:column;transition:border-color .25s,box-shadow .25s,transform .25s;display:flex}.service-card:hover{border-color:#00d9924d;transform:translateY(-4px);box-shadow:0 0 20px #00d99212}.service-top{justify-content:space-between;align-items:center;display:flex}.service-top span{color:var(--mute);font-family:var(--font-mono);letter-spacing:1px;font-size:11px}.service-icon{border-radius:var(--r-sm);color:var(--green);background:#00d99212;border:1px solid #00d99226;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.service-card h3{color:var(--ink);letter-spacing:-.4px;font-size:20px;font-weight:600;line-height:26px}.service-card>p{color:var(--body);flex:1;font-size:15px;line-height:24px}.service-link{color:var(--green-soft);letter-spacing:.2px;align-items:center;gap:5px;font-size:13px;font-weight:600;transition:color .2s,gap .2s;display:inline-flex}.service-link:hover{color:var(--green);gap:8px}.experience-section{border-bottom:1px dashed #4f5d7566}.experience-list{border-top:1px solid var(--hairline);position:relative}.experience-list:before{content:"";background:linear-gradient(to bottom, var(--green), transparent);opacity:.25;pointer-events:none;border-radius:99px;width:1px;position:absolute;top:0;bottom:0;left:0}.experience-item{border-bottom:1px solid var(--hairline);gap:var(--sp-4xl);padding:var(--sp-3xl) 0 var(--sp-3xl) var(--sp-3xl);grid-template-columns:140px 1fr;transition:background .2s;display:grid;position:relative}.experience-item:last-child{border-bottom:none}.experience-item:before{content:"";background:var(--green);height:7px;left:-3px;top:calc(var(--sp-3xl) + 9px);border-radius:50%;width:7px;position:absolute;box-shadow:0 0 0 4px #00d9921f}.experience-date{color:var(--green);font-family:var(--font-mono);padding-top:3px;font-size:12px}.experience-item h3{color:var(--ink);letter-spacing:-.3px;margin-bottom:4px;font-size:18px;font-weight:700}.company{color:var(--green-soft);letter-spacing:.3px;margin-bottom:var(--sp-sm);font-size:13px;font-weight:600}.experience-item p{color:var(--body);max-width:68ch;font-size:14px;line-height:24px}.about-grid{gap:var(--sp-6xl);grid-template-columns:.9fr 1.1fr;align-items:start;display:grid}.about-grid h2{color:var(--ink);letter-spacing:-.9px;margin-bottom:var(--sp-lg);font-size:36px;font-weight:400;line-height:40px}.large-copy{color:var(--ink);margin-bottom:var(--sp-lg);font-size:17px;line-height:28px}.about-grid>div:first-child>p:not(.eyebrow):not(.large-copy){color:var(--body);margin-bottom:var(--sp-xl);font-size:15px;line-height:26px}.skills-panel{border:1px solid var(--hairline);border-radius:var(--r-md);overflow:hidden}.skills-panel>.eyebrow{background:var(--canvas-soft);border-bottom:1px solid var(--hairline);padding:var(--sp-md) var(--sp-2xl);display:block}.skill-row{border-bottom:1px solid var(--hairline);gap:var(--sp-lg);padding:var(--sp-md) var(--sp-2xl);grid-template-columns:110px 1fr;display:grid}.skill-row:last-child{border-bottom:none}.skill-row h3{color:var(--green-soft);font-family:var(--font-mono);letter-spacing:.5px;padding-top:2px;font-size:12px;font-weight:600}.skill-row p{color:var(--body);font-size:13px;line-height:22px}.process-section{border-bottom:1px dashed #4f5d7566}.process-heading{margin-bottom:var(--sp-5xl)}.process-heading h2{color:var(--ink);letter-spacing:-.9px;font-size:36px;font-weight:400;line-height:40px}.process-list{gap:var(--sp-md);grid-template-columns:repeat(4,1fr);display:grid}.process-list article{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-md);gap:var(--sp-xl);padding:var(--sp-2xl);flex-direction:column;transition:border-color .2s,transform .2s;display:flex}.process-list article:hover{border-color:#00d9924d;transform:translateY(-3px)}.process-list article span{color:var(--green);font-family:var(--font-mono);letter-spacing:1px;font-size:13px;font-weight:600}.process-list h3{color:var(--ink);font-size:18px;font-weight:700}.process-list p{color:var(--body);font-size:14px;line-height:22px}.dark-band{background:var(--canvas-soft);border-top:2px solid var(--green);border-bottom:1px solid var(--hairline);padding:var(--sp-6xl) 0}.dark-grid{gap:var(--sp-6xl);grid-template-columns:.9fr 1.1fr;align-items:start;display:grid}.dark-grid h2{color:var(--ink);letter-spacing:-.9px;margin-top:var(--sp-lg);font-size:36px;font-weight:400;line-height:40px}.education{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-md);margin-top:var(--sp-2xl);padding:var(--sp-xl) var(--sp-2xl);flex-direction:column;gap:5px;display:flex}.education strong{color:var(--ink);font-size:15px;font-weight:600}.education span{color:var(--body);font-size:13px}.education small{color:var(--mute);font-family:var(--font-mono);font-size:11px}.certifications{gap:var(--sp-xs);flex-direction:column;display:flex}.certification{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:baseline;gap:var(--sp-lg);padding:var(--sp-lg) 0;display:flex}.certification:last-child{border-bottom:none}.certification strong{color:var(--ink);font-size:14px;font-weight:500}.certification span{color:var(--mute);font-family:var(--font-mono);flex-shrink:0;font-size:11px}.faq-section{border-bottom:1px dashed #4f5d7566}.faq-layout{gap:var(--sp-6xl);grid-template-columns:.8fr 1.2fr;align-items:start;display:grid}.faq-layout h2{color:var(--ink);letter-spacing:-.9px;margin-top:var(--sp-lg);font-size:36px;font-weight:400;line-height:40px}.faq-list{flex-direction:column;display:flex}.faq-list details{border-bottom:1px solid var(--hairline)}.faq-list details:first-child{border-top:1px solid var(--hairline)}.faq-list summary{cursor:pointer;color:var(--ink);align-items:center;gap:var(--sp-lg);padding:var(--sp-xl) 0;justify-content:space-between;font-size:15px;font-weight:500;list-style:none;transition:color .2s;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:hover{color:var(--green)}.faq-list summary span{color:var(--green);flex-shrink:0;font-size:20px;font-weight:300;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details>p{color:var(--body);padding-bottom:var(--sp-xl);max-width:60ch;font-size:14px;line-height:24px}.lead-cta{border-top:1px solid var(--hairline);border-bottom:2px solid var(--green)}.lead-cta-inner{align-items:flex-end;gap:var(--sp-3xl);justify-content:space-between;display:flex}.lead-cta h2{color:var(--ink);letter-spacing:-.9px;font-size:36px;font-weight:400;line-height:40px}.lead-cta h2 span{color:var(--green)}.github-section{border-bottom:1px dashed #4f5d7566}.github-cards{gap:var(--sp-md);grid-template-columns:1fr;display:grid}.github-card{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-md);overflow:hidden}.github-card-head{border-bottom:1px solid var(--hairline);padding:var(--sp-lg) var(--sp-2xl);justify-content:space-between;align-items:center;display:flex}.github-card-head h3{color:var(--ink);font-size:14px;font-weight:600}.github-card-head span{color:var(--mute);font-family:var(--font-mono);font-size:11px}.github-card-body{padding:var(--sp-lg) var(--sp-2xl) var(--sp-2xl);justify-content:center;display:flex}.github-card-body img{max-width:100%;height:auto;display:block}.github-private-note{color:var(--mute);font-family:var(--font-mono);text-align:center;margin-top:var(--sp-md);font-size:11px}.ide-mockup{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-md);font-family:var(--font-mono);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 0 40px #00000080}.ide-header{border-bottom:1px solid var(--hairline);align-items:center;gap:6px;padding:10px 14px;display:flex}.ide-header i{background:var(--hairline);border-radius:50%;width:8px;height:8px;font-style:normal;display:block}.ide-header i:first-child{background:#ff5f57}.ide-header i:nth-child(2){background:#febc2e}.ide-header i:nth-child(3){background:#28c840}.ide-header span{color:var(--mute);margin:0 auto;font-size:11px}.ide-body{flex:1;min-height:320px;display:flex}.ide-sidebar{border-right:1px solid var(--hairline);width:180px;padding:var(--sp-md) 0;flex-direction:column;display:flex}.ide-sidebar-item{padding:4px var(--sp-md);color:var(--mute);cursor:pointer;align-items:center;gap:8px;font-size:12px;transition:background .2s,color .2s;display:flex}.ide-sidebar-item:hover,.ide-sidebar-item.active{color:var(--ink);background:#ffffff08}.ide-sidebar-item.active{color:var(--green);border-left:2px solid var(--green);padding-left:calc(var(--sp-md) - 2px)}.ide-content{background:var(--canvas);flex-direction:column;flex:1;display:flex}.ide-tabs{border-bottom:1px solid var(--hairline);background:var(--canvas-soft);display:flex}.ide-tab{color:var(--mute);border-right:1px solid var(--hairline);align-items:center;gap:6px;padding:8px 16px;font-size:12px;display:flex}.ide-tab.active{background:var(--canvas);color:var(--ink);border-top:1px solid var(--green)}.ide-editor{padding:var(--sp-lg);color:var(--body);flex:1;font-size:13px;line-height:1.6;overflow-y:auto}.ide-editor .kw{color:#ff7b72}.ide-editor .fn{color:#d2a8ff}.ide-editor .str{color:#a5d6ff}.ide-editor .var{color:#79c0ff}.ide-editor .cm{color:var(--mute)}.ide-editor .green{color:var(--green)}.contact-section{background:var(--canvas-soft);border-bottom:1px solid var(--hairline);padding:var(--sp-6xl) 0}.contact-inner{gap:var(--sp-5xl);flex-direction:column;display:flex}.contact-intro h2{color:var(--ink);letter-spacing:-.9px;margin:var(--sp-md) 0;font-size:36px;font-weight:400;line-height:40px}.contact-intro h2 em{color:var(--green);font-style:normal}.contact-intro>p{color:var(--body);max-width:52ch;font-size:16px;line-height:26px}.contact-grid{gap:var(--sp-3xl);grid-template-columns:1.2fr .8fr;display:grid}.contact-form{gap:var(--sp-lg);flex-direction:column;display:flex}.contact-form label{color:var(--mute);gap:var(--sp-xs);letter-spacing:.5px;text-transform:uppercase;flex-direction:column;font-size:12px;font-weight:600;display:flex}.contact-form input,.contact-form textarea{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--ink);font-family:var(--font-sans);padding:var(--sp-md) var(--sp-lg);outline:none;width:100%;font-size:14px;line-height:22px;transition:border-color .2s,box-shadow .2s}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--mute)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #00d9921a}.contact-form textarea{resize:vertical;min-height:120px}.contact-form button{margin-top:var(--sp-xs);align-self:flex-start}.contact-card{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-md);gap:var(--sp-md);padding:var(--sp-2xl);flex-direction:column;display:flex}.contact-item{border-bottom:1px solid var(--hairline);color:var(--ink);align-items:center;gap:var(--sp-lg);padding:var(--sp-lg) 0;transition:color .2s;display:flex}.contact-item:last-of-type{border-bottom:none}.contact-item:hover{color:var(--green)}.contact-item span{flex-direction:column;gap:2px;display:flex}.contact-item small{color:var(--mute);font-size:11px}.contact-item>span>span:last-child{font-size:14px;font-weight:500}.contact-card-links{border-top:1px solid var(--hairline);gap:var(--sp-lg);padding-top:var(--sp-lg);display:flex}.contact-card-links a{color:var(--green-soft);align-items:center;gap:4px;font-size:13px;font-weight:600;transition:color .2s;display:flex}.contact-card-links a:hover{color:var(--green)}.site-footer{background:var(--canvas);border-top:1px solid var(--hairline);padding:var(--sp-4xl) 0}.footer-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.footer-row p{color:var(--mute)}.footer-socials{align-items:center;gap:var(--sp-xl);display:flex}.footer-socials a{color:var(--mute);transition:color .2s}.footer-socials a:hover{color:var(--green)}.whatsapp-float{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-pill);color:var(--ink);align-items:center;gap:var(--sp-sm);z-index:40;padding:10px 18px 10px 14px;font-size:13px;font-weight:600;transition:border-color .2s,color .2s,transform .2s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 24px #0006}.whatsapp-float:hover{color:#25d366;border-color:#25d366;transform:translateY(-3px)}.not-found-page{background:var(--canvas);min-height:100dvh;padding:var(--sp-6xl) max(32px, calc((100vw - var(--max-w)) / 2));flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.not-found-terminal{color:var(--green);font-family:var(--font-mono);margin-bottom:var(--sp-xl);font-size:13px}.not-found-page h1{color:var(--ink-strong);letter-spacing:-.65px;margin-bottom:var(--sp-lg);font-size:48px;font-weight:400}.not-found-page p{color:var(--body);margin-bottom:var(--sp-3xl)}.blog-page{min-height:calc(100dvh - 64px)}.blog-hero{border-bottom:1px solid var(--hairline);padding:96px 0 72px}.blog-hero h1{color:var(--ink-strong);letter-spacing:-.65px;margin-bottom:var(--sp-2xl);font-size:60px;font-weight:400;line-height:1}.blog-hero h1 span{color:var(--green)}.blog-hero>p:last-child{color:var(--body);max-width:580px;font-size:18px;line-height:28px}.blog-empty{padding-top:var(--sp-5xl)}.blog-terminal{border:1px solid var(--hairline);color:var(--body);font-family:var(--font-mono);padding:var(--sp-2xl);font-size:13px;line-height:1.8}.blog-terminal span,.blog-terminal b{color:var(--green)}.topic-list{border-top:1px solid var(--hairline);margin:var(--sp-3xl) 0;max-width:760px}.topic-list div{border-bottom:1px solid var(--hairline);align-items:center;gap:var(--sp-lg);padding:var(--sp-lg) 0;grid-template-columns:40px 1fr auto;display:grid}.topic-list span,.topic-list em{color:var(--mute);font-family:var(--font-mono);font-size:12px}.topic-list strong{color:var(--ink);font-size:15px;font-weight:500}.topic-list em{font-style:normal}[data-slot=card]{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-md);color:var(--ink);box-shadow:none}[data-slot=card-header]{padding:var(--sp-lg) var(--sp-xl) 0}[data-slot=card-content]{padding:var(--sp-lg) var(--sp-xl) var(--sp-xl)}[data-slot=card-title]{color:var(--ink);font-size:15px;font-weight:600}[data-slot=card-description]{color:var(--mute);font-size:13px}[data-slot=card-content] img{max-width:100%;height:auto;display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:1023px){.hero-layout{gap:var(--sp-4xl);grid-template-columns:1fr}.hero-proof{grid-template-columns:1fr 1fr;display:grid}.services-grid,.process-list{grid-template-columns:repeat(2,1fr)}.about-grid,.dark-grid,.featured-project{grid-template-columns:1fr}.project-visual{border-right:none;border-bottom:1px solid var(--hairline);min-height:220px}.faq-layout,.contact-grid{grid-template-columns:1fr}}@media (max-width:767px){.container{width:min(100% - 32px,600px)}.desktop-nav{display:none}.mobile-menu{display:block}.hero-band{min-height:auto}.hero-content{padding:var(--sp-5xl) 0 var(--sp-4xl)}.hero-kicker{font-size:12px}.hero-title{font-size:36px}.hero-lede{font-size:16px}.hero-proof{grid-template-columns:1fr}.hero-stats{grid-template-columns:repeat(3,1fr)}.proof-grid{grid-template-columns:repeat(2,1fr)}.proof-grid div:nth-child(3),.proof-grid div:nth-child(4){border-top:1px solid var(--hairline)}.section{padding:var(--sp-5xl) 0}.section-heading h2,.section-intro h2,.dark-grid h2,.process-heading h2,.faq-layout h2,.lead-cta h2,.contact-intro h2{font-size:28px;line-height:34px}.services-grid,.process-list,.project-list{grid-template-columns:1fr}.experience-item{gap:var(--sp-sm);grid-template-columns:1fr}.experience-item:before{display:none}.experience-item .experience-date{font-size:11px}.lead-cta-inner{gap:var(--sp-2xl);flex-direction:column}.footer-row{gap:var(--sp-xl);flex-direction:column;align-items:flex-start}.blog-hero{padding:64px 0 48px}.blog-hero h1{font-size:42px}.topic-list div{grid-template-columns:32px 1fr}.topic-list em{grid-column:2}.not-found-page h1{font-size:40px}}.github-calendar-wrapper{gap:var(--sp-lg);align-items:flex-start;width:100%;display:flex}.calendar-main{border:1px solid var(--hairline);border-radius:var(--r-sm);min-width:0;padding:var(--sp-md);flex:1}.calendar-header{margin-bottom:var(--sp-sm);justify-content:space-between;align-items:center;display:flex}.calendar-title{font-family:var(--font-mono);color:var(--ink);font-size:13px;font-weight:600}.calendar-grid-scroll{padding-bottom:4px;overflow-x:auto}.calendar-grid{grid-auto-rows:11px;align-items:center;gap:3px;display:grid}.calendar-grid .grid-cell{width:11px;height:11px}.calendar-grid .month-spacer{width:28px}.calendar-grid .month-label{font-family:var(--font-mono);color:var(--mute);white-space:nowrap;width:auto;height:auto;margin-bottom:2px;font-size:10px}.calendar-grid .day-label{font-family:var(--font-mono);color:var(--mute);align-items:center;width:28px;height:11px;font-size:10px;display:flex}.calendar-grid .calendar-day{border:1px solid var(--hairline);border-radius:2px}.calendar-meta{font-family:var(--font-mono);color:var(--mute);margin-top:var(--sp-md);justify-content:space-between;align-items:center;font-size:11px;display:flex}.calendar-meta .source-link{color:var(--green-soft);text-decoration:underline;-webkit-text-decoration-color:var(--green);-webkit-text-decoration-color:var(--green);-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}@supports (color:color-mix(in lab, red, red)){.calendar-meta .source-link{-webkit-text-decoration-color:color-mix(in srgb, var(--green) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--green) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--green) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--green) 30%, transparent)}}.calendar-meta .source-link{transition:color .2s}.calendar-meta .source-link:hover{color:var(--green)}.calendar-meta .legend{align-items:center;gap:4px;display:flex}.calendar-meta .legend-swatch{border-radius:2px;width:10px;height:10px}.calendar-year-tabs{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.calendar-year-tabs .calendar-tab{color:var(--mute);font-family:var(--font-mono);cursor:pointer;border-radius:var(--r-xs);text-align:center;background:0 0;border:none;padding:8px 14px;font-size:13px;transition:background .2s,color .2s}.calendar-year-tabs .calendar-tab:hover{color:var(--ink);background:var(--canvas-soft)}.calendar-year-tabs .calendar-tab.active{color:var(--on-green);background:var(--green);font-weight:600}.calendar-grid-scroll::-webkit-scrollbar{height:6px}.calendar-grid-scroll::-webkit-scrollbar-track{background:var(--canvas);border-radius:4px}.calendar-grid-scroll::-webkit-scrollbar-thumb{background:var(--hairline);border-radius:4px}@media (max-width:640px){.github-calendar-wrapper{flex-direction:column}.calendar-year-tabs{flex-direction:row;width:100%;overflow-x:auto}}.opensource-section{border-bottom:1px dashed #4f5d7566}.opensource-card{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-md);overflow:hidden}.opensource-card-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:var(--sp-md);padding:var(--sp-lg) var(--sp-2xl);flex-wrap:wrap;display:flex}.opensource-repo-name{color:var(--ink);font-family:var(--font-mono);align-items:center;gap:var(--sp-sm);font-size:13px;font-weight:600;display:flex}.opensource-stats{color:var(--mute);font-family:var(--font-mono);align-items:center;gap:var(--sp-lg);font-size:12px;display:flex}.opensource-stats span{align-items:center;gap:4px;display:inline-flex}.opensource-card-body{padding:var(--sp-2xl)}.opensource-card-body p{color:var(--body);margin-bottom:var(--sp-xl);max-width:60ch;font-size:15px;line-height:24px}.opensource-actions{gap:var(--sp-md);flex-wrap:wrap;display:flex}.opensource-socials{border-top:1px solid var(--hairline);align-items:center;gap:var(--sp-lg);margin-top:var(--sp-3xl);padding-top:var(--sp-3xl);flex-wrap:wrap;justify-content:space-between;display:flex}.opensource-socials>p{color:var(--mute);font-size:14px}.opensource-social-links{gap:var(--sp-md);flex-wrap:wrap;display:flex}.opensource-social-link{background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--r-pill);color:var(--ink);align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-lg);font-size:14px;font-weight:500;transition:border-color .2s,color .2s,transform .2s;display:inline-flex}.opensource-social-link:hover{border-color:var(--green);color:var(--green);transform:translateY(-2px)}.opensource-social-arrow{color:var(--mute);transition:color .2s,transform .2s}.opensource-social-link:hover .opensource-social-arrow{color:var(--green);transform:translate(2px,-2px)}@media (max-width:767px){.opensource-card-head,.opensource-socials{flex-direction:column;align-items:flex-start}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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}
