/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:"Geist Variable", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--radius-md:calc(var(--radius) * .8);--blur-sm:8px;--blur-xl:24px;--blur-2xl:40px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Variable", sans-serif;--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,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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}html{font-family:Geist Variable,sans-serif}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-top-1{top:calc(var(--spacing) * -1)}.-top-10{top:calc(var(--spacing) * -10)}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:0}.-bottom-1{bottom:calc(var(--spacing) * -1)}.-bottom-2{bottom:calc(var(--spacing) * -2)}.left-1\/2{left:50%}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-1{margin-inline:var(--spacing)}.my-1{margin-block:var(--spacing)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.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)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.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-\[1px\]{height:1px}.h-\[60\%\]{height:60%}.h-\[120px\]{height:120px}.h-full{height:100%}.min-h-\[120px\]{min-height:120px}.min-h-\[400px\]{min-height:400px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-5{width:calc(var(--spacing) * 5)}.w-10{width:calc(var(--spacing) * 10)}.w-\[1px\]{width:1px}.w-\[60\%\]{width:60%}.w-full{width:100%}.min-w-\[20px\]{min-width:20px}.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)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.touch-none{touch-action:none}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:calc(var(--radius) * 1.8)}.rounded-3xl{border-radius:calc(var(--radius) * 2.2)}.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)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.border-white\/5{border-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.bg-background{background-color:var(--background)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200\/50{background-color:#e5e5e580}@supports (color:color-mix(in lab, red, red)){.bg-neutral-200\/50{background-color:color-mix(in oklab, var(--color-neutral-200) 50%, transparent)}}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-600{background-color:var(--color-neutral-600)}.bg-neutral-950\/60{background-color:#0a0a0a99}@supports (color:color-mix(in lab, red, red)){.bg-neutral-950\/60{background-color:color-mix(in oklab, var(--color-neutral-950) 60%, transparent)}}.bg-primary{background-color:var(--primary)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-neutral-100{--tw-gradient-from:var(--color-neutral-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-neutral-50{--tw-gradient-to:var(--color-neutral-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-padding{background-clip:padding-box}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.font-mono{font-family:var(--font-mono)}.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}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.text-destructive{color:var(--destructive)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-800{color:var(--color-neutral-800)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-black\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.shadow-black\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,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))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@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\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-2:focus-visible{--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)}.focus-visible\:ring-3: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)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-neutral-400:focus-visible{--tw-ring-color:var(--color-neutral-400)}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.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)}.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)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.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)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}@media (width>=48rem){.md\:right-8{right:calc(var(--spacing) * 8)}.md\:h-\[180px\]{height:180px}.md\:min-h-\[180px\]{min-height:180px}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-neutral-700:is(.dark *){border-color:var(--color-neutral-700)}.dark\:border-neutral-950:is(.dark *){border-color:var(--color-neutral-950)}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:border-white\/10:is(.dark *){border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:bg-neutral-800:is(.dark *){background-color:var(--color-neutral-800)}.dark\:bg-neutral-900:is(.dark *){background-color:var(--color-neutral-900)}.dark\:bg-neutral-900\/80:is(.dark *){background-color:#171717cc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-neutral-900\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-neutral-900) 80%, transparent)}}.dark\:bg-neutral-900\/95:is(.dark *){background-color:#171717f2}@supports (color:color-mix(in lab, red, red)){.dark\:bg-neutral-900\/95:is(.dark *){background-color:color-mix(in oklab, var(--color-neutral-900) 95%, transparent)}}.dark\:bg-white\/10:is(.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/10:is(.dark *){background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\:bg-white\/80:is(.dark *){background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.dark\:from-neutral-800:is(.dark *){--tw-gradient-from:var(--color-neutral-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\:to-neutral-900:is(.dark *){--tw-gradient-to:var(--color-neutral-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\:text-white:is(.dark *){color:var(--color-white)}.dark\:shadow-black\/20:is(.dark *){--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.dark\:shadow-black\/20:is(.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-black\/30:is(.dark *){--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.dark\:shadow-black\/30:is(.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 30%, transparent) var(--tw-shadow-alpha), transparent)}}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:focus-visible\:ring-white\/50:is(.dark *):focus-visible{--tw-ring-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-white\/50:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_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)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");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}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--bg:#0b0b0f;--bg-hover:#ffffff0a;--ink:#e8e8ea;--ink-dim:#8b8b92;--ink-mute:#5c5c64;--line:#ffffff0f;--max-width:680px;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.625rem;--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:var(--font-body);background:var(--bg);color:var(--ink-dim);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:15px;line-height:1.7;position:relative}body:after{content:"";z-index:9998;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;inset:0}:focus-visible{outline-offset:2px;outline:1px solid #fff3}a{color:var(--ink);text-decoration:none;transition:color .2s}a:hover{color:var(--ink-dim)}::selection{color:var(--ink);background:#e8e8ea1f}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.page-section{padding:80px 0}.section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-mute);margin-bottom:24px;font-size:12px;font-weight:500;display:block}hr{border:none;border-top:1px solid var(--line);max-width:var(--max-width);margin:0 auto}@media (width<=600px){.page-section{padding:48px 0}}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@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-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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}.splash{z-index:9999;cursor:pointer;background:var(--bg);justify-content:center;align-items:center;transition:opacity .8s cubic-bezier(.25,1,.5,1);display:flex;position:fixed;inset:0}.splash--fade{opacity:0;pointer-events:none}.splash-bg{pointer-events:none;background:radial-gradient(60% 50% at 50% 42%,#e8e8ea09,#0000 70%);position:absolute;inset:0}.splash-grain{opacity:.045;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:absolute;inset:0}.splash-btn{cursor:pointer;background:0 0;border:none;outline:none;position:relative}.splash-content{opacity:0;filter:blur(8px);flex-direction:column;align-items:center;gap:36px;transition:all .8s cubic-bezier(.22,1,.36,1);display:flex;transform:translateY(10px)}.splash-content--show{opacity:1;filter:blur();transform:translateY(0)}.splash-name{font-family:var(--font-display);letter-spacing:-.045em;color:var(--ink);-webkit-user-select:none;user-select:none;font-size:clamp(48px,10vw,80px);font-weight:800;line-height:.92}.splash-hint{font-family:var(--font-mono);letter-spacing:.14em;color:var(--ink-mute);font-size:11px;animation:2.5s ease-in-out infinite splash-breathe}@keyframes splash-breathe{0%,to{opacity:.6}50%{opacity:.2}}.splash-content--fade{opacity:0!important;filter:blur(24px)!important;transition:all .8s cubic-bezier(.25,1,.5,1)!important;transform:translateY(-20px)scale(.96)!important}.cursor-glow{pointer-events:none;z-index:9997;background:radial-gradient(600px circle at var(--x,-200px) var(--y,-200px), #e8e8ea18, transparent 40%);width:100vw;height:100vh;transition:background .1s;position:fixed;top:0;left:0}.nav-wrapper{z-index:100;pointer-events:none;justify-content:center;padding:0 24px;animation:.8s cubic-bezier(.16,1,.3,1) forwards nav-slide-down;display:flex;position:fixed;inset:16px 0 auto}.nav{pointer-events:auto;-webkit-backdrop-filter:blur(24px)saturate(140%);background:#0a0a0eb3;border:1px solid #ffffff14;border-radius:9999px;align-items:center;height:48px;padding:0 8px;transition:all .3s;display:flex;box-shadow:inset 0 1px 1px #ffffff14,0 1px #000c,0 12px 40px #00000080}.nav:hover{border-color:#ffffff26;box-shadow:inset 0 1px 1px #ffffff1f,0 0 24px #ffffff05,0 16px 48px #0009}.nav-list{align-items:center;gap:2px;list-style:none;display:flex}.nav-item{position:relative}.nav-link{font-family:var(--font-mono);color:var(--ink-dim);-webkit-user-select:none;user-select:none;border-radius:9999px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .3s cubic-bezier(.25,.8,.25,1);display:block;position:relative}.nav-link:hover{color:var(--ink);background:#ffffff08}.nav-link--active{color:#fff;text-shadow:0 0 12px #ffffff4d}.nav-active-pill{z-index:0;background:#ffffff14;border:1px solid #ffffff14;border-radius:9999px;animation:.25s cubic-bezier(.16,1,.3,1) both pill-fade;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff1a}.nav-link-text{z-index:1;position:relative}.nav-divider{background:#ffffff1a;width:1px;height:20px;margin:0 12px}.nav-clock{font-family:var(--font-mono);color:var(--ink-dim);text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.02em;-webkit-user-select:none;user-select:none;min-width:7ch;margin-right:12px;font-size:12px;font-weight:500;display:none}.nav-sound-btn{cursor:pointer;width:34px;height:34px;color:var(--ink-dim);background:0 0;border:none;border-radius:50%;outline:none;place-items:center;padding:0;transition:all .3s cubic-bezier(.25,.8,.25,1);display:grid}.nav-sound-btn:hover{color:var(--ink);background:#ffffff0f;transform:rotate(8deg)}.nav-sound-btn:active{transform:scale(.9)rotate(-4deg)}.nav-sound-icon{opacity:.75;transition:opacity .3s}.nav-sound-icon--muted{opacity:.35}@keyframes pill-fade{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes nav-slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (width<=680px){.nav-wrapper{padding:0 12px;inset:12px 0 auto}.nav{height:44px;padding:0 4px}.nav-link{padding:6px 12px;font-size:12px}.nav-divider{height:16px;margin:0 6px}.nav-sound-btn{width:30px;height:30px}}@media (width>=768px){.nav-clock{display:block}}.footer{border-top:1px solid var(--line);margin-top:40px;padding:60px 0 80px}.footer-text{color:var(--ink-mute);margin-bottom:4px;font-size:14px}.footer-year{color:var(--ink-mute);opacity:.5;font-size:12px;font-family:var(--font-mono)}.home{flex-direction:column;max-width:1408px;min-height:100dvh;margin:0 auto;padding:0 40px;display:flex;position:relative;overflow:hidden}.home-content{flex-direction:column;flex:1;justify-content:center;display:flex;position:relative}.mesh-glow{filter:blur(140px);pointer-events:none;opacity:.12;z-index:1;mix-blend-mode:screen;border-radius:50%;width:500px;height:500px;position:absolute}.mesh-glow--1{background:radial-gradient(circle,#6366f1 0%,#0000 80%);animation:25s ease-in-out infinite alternate mesh-drift-1;top:-10%;left:10%}.mesh-glow--2{background:radial-gradient(circle,#ffb066 0%,#0000 80%);animation:30s ease-in-out infinite alternate mesh-drift-2;bottom:-10%;right:15%}@keyframes mesh-drift-1{0%{transform:translate(0)scale(1)}50%{transform:translate(60px,40px)scale(1.1)}to{transform:translate(-40px,80px)scale(.9)}}@keyframes mesh-drift-2{0%{transform:translate(0)scale(1)}50%{transform:translate(-80px,-60px)scale(.9)}to{transform:translate(50px,40px)scale(1.2)}}.room-light-glow{z-index:0;pointer-events:none;background:radial-gradient(circle at 60% 40%,#ffb06614,#0000 75%);animation:1.2s cubic-bezier(.25,1,.5,1) forwards room-glow-fade;position:fixed;inset:0}.room-light-glow:after{content:"";pointer-events:none;background:#ffb06602;position:absolute;inset:0}@keyframes room-glow-fade{0%{opacity:0}to{opacity:1}}.home-main{z-index:5;margin-top:0;padding-bottom:0;position:relative}.home-name-wrapper{opacity:0;transition:all .8s cubic-bezier(.16,1,.3,1);transform:translateY(16px)}.home-name-wrapper--show{opacity:1;transform:translateY(0)}.home-name{font-family:var(--font-display);letter-spacing:-.045em;color:var(--ink);-webkit-user-select:none;user-select:none;font-size:clamp(64px,18vw,150px);font-weight:800;line-height:.9}.name-letters{align-items:baseline;display:inline-flex}.name-char{opacity:0;will-change:transform, opacity;cursor:default;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1),color .3s,text-shadow .3s;display:inline-block;transform:translateY(.35em)}.name-char--show{opacity:1;transform:translateY(0)}.name-char:hover{color:#fff;text-shadow:0 4px 12px #ffffff40,0 12px 36px #ffffff1a;transform:translateY(-8px)scale(1.08)}.lamp-dot{cursor:pointer;vertical-align:baseline;opacity:0;background:#ffffff26;border:none;border-radius:50%;outline:none;width:.14em;height:.14em;margin-left:.06em;transition:opacity .8s cubic-bezier(.25,1,.5,1),transform .8s cubic-bezier(.25,1,.5,1),background-color .4s,box-shadow .4s;display:inline-block;position:relative;transform:scale(.6)}.lamp-dot--show{opacity:1;transform:scale(1)}.lamp-dot:hover{background:#ffffff59;transform:scale(1.1)}.lamp-dot--active{background:#ffb066;box-shadow:0 0 20px #ffb066f2,0 0 40px #ffb0668c,0 0 60px #ffb06640}.lamp-dot-inner{pointer-events:none;border:1px solid #ffffff14;border-radius:50%;position:absolute;inset:-3px}.home-desc{color:var(--ink-dim);opacity:0;filter:blur(8px);max-width:480px;margin-top:24px;font-size:17px;transition:all .8s cubic-bezier(.25,1,.5,1);transform:translateY(16px)}.home-desc--show{opacity:1;filter:blur();transform:translateY(0)}.home-side{text-align:right;z-index:5;flex-direction:column;align-items:flex-end;gap:36px;display:none;position:absolute;top:50%;right:0;transform:translateY(-50%)}.side-block{opacity:0;filter:blur(8px);transition:all .8s cubic-bezier(.25,1,.5,1);transform:translateY(16px)}.side-block--show{opacity:1;filter:blur();transform:translateY(0)}.side-time{font-family:var(--font-mono);color:var(--ink);letter-spacing:.02em;font-size:26px;font-weight:300}.side-tz{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-mute);text-transform:uppercase;margin-top:4px;font-size:11px}.side-status{color:var(--ink-mute);text-wrap:balance;max-width:240px;font-size:14px;line-height:1.5}.home-mobile-info{opacity:0;filter:blur(8px);margin-top:36px;transition:all .8s cubic-bezier(.25,1,.5,1);display:block;transform:translateY(16px)}.home-mobile-info--show{opacity:1;filter:blur();transform:translateY(0)}.mobile-info-divider{background:var(--line);width:100%;height:1px;margin-bottom:24px}.mobile-info-row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.mobile-status{color:var(--ink-mute);font-size:14px;line-height:1.5}.mobile-time{font-family:var(--font-mono);color:var(--ink-mute);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.mobile-tz{color:var(--ink-mute);opacity:.7;text-transform:uppercase;margin-left:6px;font-size:11px}@media (width>=1024px){.home-side{display:flex}}@media (width<=1023px){.home{padding:0 24px}.home-main{padding-bottom:40px}}@media (width<=600px){.home-desc{margin-top:20px;font-size:15px}.home-name{font-size:clamp(48px,16vw,84px)}}.discord-card{background:#111116;border:1px solid #ffffff0d;border-radius:24px;width:100%;max-width:460px;margin:0 auto;transition:all .5s cubic-bezier(.25,.8,.25,1);position:relative;overflow:hidden}.discord-card--online{border-color:#10b98140;box-shadow:0 0 30px #10b98126,0 8px 32px #00000080}.discord-card--idle{border-color:#faa61a40;box-shadow:0 0 30px #faa61a26,0 8px 32px #00000080}.discord-card--dnd{border-color:#ef444440;box-shadow:0 0 30px #ef444426,0 8px 32px #00000080}.discord-card--offline{opacity:.9;border-color:#ffffff0d;box-shadow:0 8px 32px #00000080}.discord-banner{width:100%;height:100px;transition:background .5s}.discord-banner--online{background:linear-gradient(135deg,#047857 0%,#10b981 100%)}.discord-banner--idle{background:linear-gradient(135deg,#b45309 0%,#faa61a 100%)}.discord-banner--dnd{background:linear-gradient(135deg,#b91c1c 0%,#ef4444 100%)}.discord-banner--offline{background:linear-gradient(135deg,#1f2937 0%,#4b5563 100%)}.discord-avatar-container{width:100%;height:38px;position:relative}.discord-avatar-wrapper{z-index:10;background:#111116;border:4px solid #111116;border-radius:50%;place-items:center;width:76px;height:76px;transition:all .3s;display:grid;position:absolute;top:-38px;left:50%;transform:translate(-50%)}.discord-avatar{object-fit:cover;border-radius:50%;width:100%;height:100%}.discord-avatar--placeholder{background:#ffffff0d}.discord-avatar-wrapper--online{box-shadow:0 0 16px #10b98166}.discord-avatar-wrapper--idle{box-shadow:0 0 16px #faa61a66}.discord-avatar-wrapper--dnd{box-shadow:0 0 16px #ef444466}.discord-body-content{flex-direction:column;align-items:center;padding:24px 24px 20px;display:flex}.discord-card-name{font-family:var(--font-body);color:#fff;align-items:center;gap:6px;margin-bottom:8px;font-size:17px;font-weight:700;display:flex}.discord-badge-star{color:#eab308;filter:drop-shadow(0 0 4px #eab30866);font-size:13px}.discord-status-badge-container{margin-bottom:16px}.discord-status-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none;border-radius:9999px;padding:3px 10px;font-size:9px;font-weight:700}.discord-status-badge--online{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.discord-status-badge--idle{color:#faa61a;background:#faa61a1a;border:1px solid #faa61a33}.discord-status-badge--dnd{color:#ef4444;background:#ef44441a;border:1px solid #ef444433}.discord-status-badge--offline{color:#9ca3af;background:#9ca3af1a;border:1px solid #9ca3af33}.discord-quote{font-family:var(--font-body);color:var(--ink-dim);text-align:center;max-width:280px;margin-bottom:24px;font-size:13px;font-style:italic;line-height:1.5}.discord-sub-activities{background:#ffffff04;border:1px solid #ffffff08;border-radius:14px;width:100%;margin-bottom:24px;padding:10px 14px}.discord-sub-activity-row{color:var(--ink-dim);justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.discord-activity-dot{background:#6366f1;border-radius:50%;width:6px;height:6px;animation:1.5s infinite alternate activity-pulse}@keyframes activity-pulse{0%{opacity:.4;transform:scale(.9)}to{opacity:1;transform:scale(1.1);box-shadow:0 0 6px #6366f1}}.discord-action-btn{width:100%;height:38px;font-family:var(--font-body);color:#fff;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff0f;border-radius:9999px;outline:none;font-size:13px;font-weight:600;transition:all .3s cubic-bezier(.25,.8,.25,1)}.discord-action-btn:hover{color:#0b0b0f;background:#fff;border-color:#fff;box-shadow:0 4px 16px #ffffff26}.discord-action-btn:active{transform:scale(.97)}.page--status{position:relative;overflow:hidden}.page--status .container{z-index:5;max-width:900px;position:relative}.page-body{opacity:0;width:100%;transition:all .8s cubic-bezier(.16,1,.3,1);transform:translateY(12px)}.status-hero-text{align-items:center;gap:12px;margin-bottom:24px;display:flex}.status-live-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.8s ease-in-out infinite live-pulse;box-shadow:0 0 8px #10b981,0 0 16px #10b98166}@keyframes live-pulse{0%{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.1);box-shadow:0 0 12px #10b981,0 0 24px #10b98180}to{opacity:.6;transform:scale(.9)}}.page-text{color:var(--ink-dim);margin:0;font-size:16px;line-height:1.6}.status-divider{background:#ffffff0d;height:1px;margin:32px 0}.status-ambient-glow{filter:blur(150px);pointer-events:none;opacity:.08;z-index:1;border-radius:50%;width:600px;height:600px;transition:all 1.5s cubic-bezier(.25,.8,.25,1);position:absolute;top:30%;left:20%}.status-glow--spotify{background:#1db954}.status-glow--online{background:#10b981}.status-glow--idle{background:#faa61a}.status-glow--dnd{background:#ef4444}.status-glow--offline{opacity:.03;background:#6b7280}.status-grid{flex-direction:column;align-items:center;gap:36px;width:100%;display:flex}.status-block{flex-direction:column;gap:16px;width:100%;max-width:460px;display:flex}.status-block-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-mute);text-align:center;font-size:11px;font-weight:600}.spotify-card{background:#111116;border:1px solid #ffffff0d;border-radius:24px;width:100%;max-width:460px;margin:0 auto;transition:all .5s cubic-bezier(.25,.8,.25,1);position:relative;overflow:hidden}.spotify-card--active{border-color:#1db95440;box-shadow:0 0 30px #1db95426,0 8px 32px #00000080}.spotify-card--idle{opacity:.9;border-color:#ffffff0d;box-shadow:0 8px 32px #00000080}.spotify-banner{background-position:50%;background-size:cover;width:100%;height:100px;transition:background .5s;position:relative}.spotify-banner-overlay{-webkit-backdrop-filter:blur(4px);background:linear-gradient(#11111633,#111116);position:absolute;inset:0}.spotify-banner--idle{background:linear-gradient(135deg,#1f2937 0%,#111116 100%)}.spotify-avatar-container{width:100%;height:38px;position:relative}.spotify-avatar-wrapper{z-index:10;background:#111116;border:4px solid #111116;border-radius:50%;place-items:center;width:76px;height:76px;transition:all .3s;display:grid;position:absolute;top:-38px;left:50%;transform:translate(-50%)}.spotify-avatar-img{object-fit:cover;border:1px solid #ffffff14;border-radius:50%;width:100%;height:100%}.spotify-avatar-img--spin{animation:15s linear infinite spinVinyl}.spotify-avatar-img--placeholder{background:#ffffff0d}.spotify-avatar-center-dot{z-index:3;background:#111116;border:3px solid #ffffff40;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes spinVinyl{to{transform:rotate(360deg)}}.spotify-card--active .spotify-avatar-wrapper{box-shadow:0 0 16px #1db95466}.spotify-body-content{flex-direction:column;align-items:center;padding:24px 24px 20px;display:flex}.spotify-card-title{font-family:var(--font-body);color:#fff;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-bottom:8px;font-size:17px;font-weight:700;line-height:1.3;overflow:hidden}.spotify-status-badge-container{margin-bottom:16px}.spotify-status-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:#1db954;-webkit-user-select:none;user-select:none;background:#1db9541a;border:1px solid #1db95433;border-radius:9999px;padding:3px 10px;font-size:9px;font-weight:700}.spotify-status-badge--idle{color:#9ca3af;background:#9ca3af1a;border:1px solid #9ca3af33}.spotify-artist-quote{font-family:var(--font-body);color:var(--ink-dim);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-bottom:24px;font-size:13px;font-style:italic;line-height:1.5;overflow:hidden}.spotify-player-track-section{flex-direction:column;gap:8px;width:100%;margin-bottom:24px;display:flex}.spotify-bar-wrap{cursor:pointer;background:#ffffff0f;border-radius:2px;height:4px;position:relative}.spotify-bar-fill{background:#1db954;border-radius:2px;height:100%;transition:width .3s linear;position:absolute;top:0;left:0}.spotify-bar-knob{opacity:0;background:#fff;border-radius:50%;width:8px;height:8px;transition:opacity .2s,left .3s linear;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 6px #fff9}.spotify-card:hover .spotify-bar-knob{opacity:1}.spotify-bar-time{font-family:var(--font-mono);color:var(--ink-mute);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;font-size:10px;display:flex}.spotify-wave{align-items:center;gap:1.5px;height:12px;display:flex}.spotify-wave span{background:#ffffff1a;border-radius:2px;width:1.5px;transition:background .3s}.spotify-wave--active span{background:#1db954;animation:.6s ease-in-out infinite alternate waveAnim}.spotify-wave span:first-child{height:4px}.spotify-wave span:nth-child(2){height:8px}.spotify-wave span:nth-child(3){height:12px}.spotify-wave span:nth-child(4){height:10px}.spotify-wave span:nth-child(5){height:7px}.spotify-wave span:nth-child(6){height:5px}.spotify-wave span:nth-child(7){height:3px}.spotify-wave--active span:first-child{animation-delay:0s}.spotify-wave--active span:nth-child(2){animation-delay:80ms}.spotify-wave--active span:nth-child(3){animation-delay:.16s}.spotify-wave--active span:nth-child(4){animation-delay:.24s}.spotify-wave--active span:nth-child(5){animation-delay:.12s}.spotify-wave--active span:nth-child(6){animation-delay:40ms}.spotify-wave--active span:nth-child(7){animation-delay:.18s}@keyframes waveAnim{0%{opacity:.5;transform:scaleY(.4)}to{opacity:1;transform:scaleY(1)}}.spotify-action-btn{width:100%;height:38px;font-family:var(--font-body);color:#fff;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff0f;border-radius:9999px;outline:none;place-items:center;font-size:13px;font-weight:600;text-decoration:none;transition:all .3s cubic-bezier(.25,.8,.25,1);display:grid}.spotify-action-btn:hover{color:#fff;background:#1db954;border-color:#1db954;box-shadow:0 4px 16px #1db95440}.spotify-action-btn:active{transform:scale(.97)}.spotify-action-btn[disabled]{cursor:not-allowed;pointer-events:none}.page-body{opacity:0;max-width:520px;margin:0 auto;transition:all .6s cubic-bezier(.22,1,.36,1);transform:translateY(8px)}.page-text{color:var(--ink-dim);margin-bottom:16px;font-size:15px;line-height:1.8}.page-text:last-child{margin-bottom:0}.page-text strong{color:var(--ink);font-weight:600}.about-divider{background:var(--line);height:1px;margin:24px 0}.about-skills{flex-wrap:wrap;gap:8px;display:flex}.about-skill-item{border:1px solid var(--line);color:var(--ink-dim);font-size:13px;font-family:var(--font-mono);border-radius:9999px;padding:4px 14px;transition:all .2s}.about-skill-item:hover{color:var(--ink);border-color:#ffffff1f}.page-body{opacity:0;width:100%;max-width:520px;margin:0 auto;transition:all .6s cubic-bezier(.22,1,.36,1);transform:translateY(8px)}.page-body--show{opacity:1;transform:translateY(0)}.project-item{border-top:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;gap:6px;padding:16px 0;transition:opacity .2s;display:flex}.project-item:first-child{border-top:none}.project-item:hover{opacity:.8}.project-item-header{justify-content:space-between;align-items:center;display:flex}.project-item-title{color:var(--ink);font-size:15px;font-weight:600}.project-item-arrow{color:var(--ink-mute);transition:transform .25s cubic-bezier(.22,1,.36,1);display:flex}.project-item-arrow--expanded{transform:rotate(180deg)}.project-item-desc{color:var(--ink-dim);font-size:13px;line-height:1.6}.project-item-tech{font-family:var(--font-mono);color:var(--ink-mute);font-size:11px}.project-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:12px;display:flex}.project-btn{font-family:var(--font-mono);border:1px solid #0000;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:500;text-decoration:none;transition:all .15s}.project-btn--invite{color:#fff;background:#5865f2}.project-btn--invite:hover{background:#4752c4}.project-btn--support{color:var(--ink-dim);border-color:var(--line);background:#ffffff0f}.project-btn--support:hover{color:var(--ink);background:#ffffff1a}.project-btn--dashboard{color:var(--ink-dim);border-color:var(--line);background:#ffffff0f}.project-btn--dashboard:hover{color:var(--ink);background:#ffffff1a}.project-btn--github{color:var(--ink-dim);border-color:var(--line);background:#ffffff0f}.project-btn--github:hover{color:var(--ink);background:#ffffff1a}.page-body{width:100%;max-width:520px;margin:0 auto}.project-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;outline:none;flex-direction:column;margin:0 -24px;padding:24px;transition:all .2s cubic-bezier(.25,1,.5,1);display:flex}.project-item:hover{background:var(--bg-hover)}.project-item--expanded{background:#ffffff04}.project-item+.project-item{border-top:1px solid var(--line);margin-top:0}.project-item-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.project-item-title{color:var(--ink);font-size:16px;font-weight:700;display:block}.project-item-arrow{color:var(--ink-mute);align-items:center;transition:transform .3s cubic-bezier(.25,1,.5,1),color .3s;display:flex}.project-item-arrow--expanded{color:var(--ink);transform:rotate(180deg)}.project-item-desc{color:var(--ink-dim);margin-bottom:12px;font-size:14px;line-height:1.6;display:block}.project-item-tech{font-size:12px;font-family:var(--font-mono);color:var(--ink-mute);display:block}.project-links{border-top:1px dashed var(--line);flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:18px;animation:.25s cubic-bezier(.25,1,.5,1) slide-down;display:flex}.project-btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line);color:var(--ink-dim);background:#ffffff03;border-radius:9999px;align-items:center;padding:6px 14px;font-size:11px;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.25,1,.5,1);display:inline-flex}.project-btn:hover{color:var(--ink);background:#ffffff0d;border-color:#ffffff26;transform:translateY(-1px)}.project-btn:active{transform:translateY(0)}.project-btn--invite:hover,.project-btn--support:hover{color:#fff;background:#5865f21f;border-color:#5865f259}.project-btn--dashboard:hover{color:#fff;background:#00bcd41a;border-color:#00bcd459}@keyframes slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.page{align-items:center;min-height:100dvh;display:flex}.contact-page-links{flex-wrap:wrap;gap:36px;margin-top:28px;display:flex}.contact-page-link{font-family:var(--font-mono);color:var(--ink-mute);font-size:13px;transition:color .2s}.contact-page-link:hover{color:var(--ink)}
