@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-duration:initial;--tw-ease: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-space-y-reverse:0;--tw-font-weight:initial;--tw-leading:initial}}}:root{--projects-text:var(--text);--projects-text-muted:var(--text-muted);--projects-border:var(--border);--projects-accent:var(--accent)}.project-card{border-radius:var(--radius-xl,.75rem);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;--tw-ease:var(--ease-out,cubic-bezier(0, 0, .2, 1));transition-duration:.3s;transition-timing-function:var(--ease-out,cubic-bezier(0, 0, .2, 1));--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);flex-direction:column;justify-content:space-between;display:flex;overflow:hidden}@media(hover:hover){.project-card:hover{--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)}}.project-card{--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);--tw-ring-color:color-mix(in oklab, var(--color-black,#000) 5%, transparent)}@media(prefers-color-scheme:dark){.project-card{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.project-card{--tw-ring-color:color-mix(in oklab, var(--color-white,#fff) 10%, transparent)}}}.project-card-mobile{width:100%;max-width:var(--container-2xl,42rem)}.project-card-content{width:100%;height:100%;padding:calc(var(--spacing,.25rem) * 6);flex-direction:column;justify-content:space-between;display:flex}@media(min-width:64rem){.project-card-content{padding:calc(var(--spacing,.25rem) * 8)}}.project-card-main{flex:1}:where(.project-card-main>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}.project-title{margin-bottom:var(--spacing,.25rem);font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}@media(min-width:64rem){.project-title{font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height, 1.2 ))}}.project-title{color:var(--projects-text)}.project-title-content{align-items:center;gap:calc(var(--spacing,.25rem) * 3);flex-wrap:wrap;display:inline-flex}.project-icon{height:calc(var(--spacing,.25rem) * 6);width:calc(var(--spacing,.25rem) * 6)}.project-description-container{position:relative}.project-description{--tw-leading:var(--leading-relaxed,1.625);font-size:15px;line-height:var(--leading-relaxed,1.625)}@media(min-width:64rem){.project-description{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ))}}.project-description{color:var(--projects-text-muted)}@supports (color:color-mix(in lab,red,red)){.project-description{color:color-mix(in srgb,var(--projects-text-muted) 92%,transparent)}}.project-description{text-wrap:pretty;-webkit-box-orient:vertical;transition:all .3s ease-in-out;display:-webkit-box;overflow:hidden}.project-description-collapsed{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-description-toggle{margin-top:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));color:var(--projects-accent)}.project-description-toggle:hover{color:var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.project-description-toggle:hover{color:color-mix(in srgb,var(--projects-accent) 86%,var(--projects-text))}}.project-description-toggle:focus-visible{text-underline-offset:3px;outline:none;text-decoration:underline}.project-technologies{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.project-technologies-row,.project-tags-row{gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;display:flex}.project-tech-more-button{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:var(--projects-accent);border-radius:3.40282e38px}@supports (color:color-mix(in lab,red,red)){.project-tech-more-button{background-color:color-mix(in srgb,var(--projects-accent) 18%,transparent)}}.project-tech-more-button{color:var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.project-tech-more-button{color:color-mix(in srgb,var(--projects-accent) 88%,var(--projects-text))}}.project-tech-more-button{box-shadow:0 0 0 1px var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.project-tech-more-button{box-shadow:0 0 0 1px color-mix(in srgb,var(--projects-accent) 30%,transparent)}}.dark .project-tech-more-button{background-color:var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.dark .project-tech-more-button{background-color:color-mix(in srgb,var(--projects-accent) 26%,transparent)}}.dark .project-tech-more-button{color:#dbeafe}@supports (color:color-mix(in lab,red,red)){.dark .project-tech-more-button{color:color-mix(in srgb,#dbeafe 92%,var(--projects-text))}}.dark .project-tech-more-button{box-shadow:0 0 0 1px var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.dark .project-tech-more-button{box-shadow:0 0 0 1px color-mix(in srgb,var(--projects-accent) 24%,transparent)}}.project-tech-more-button:hover{background-color:var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.project-tech-more-button:hover{background-color:color-mix(in srgb,var(--projects-accent) 24%,transparent)}}.dark .project-tech-more-button:hover{background-color:var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.dark .project-tech-more-button:hover{background-color:color-mix(in srgb,var(--projects-accent) 32%,transparent)}}.project-tech-less-button{padding-inline:calc(var(--spacing,.25rem) * 2.5);padding-block:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:var(--projects-border);border-radius:3.40282e38px}@supports (color:color-mix(in lab,red,red)){.project-tech-less-button{background-color:color-mix(in srgb,var(--projects-border) 36%,transparent)}}.project-tech-less-button{color:var(--projects-text);box-shadow:0 0 0 1px var(--projects-border)}@supports (color:color-mix(in lab,red,red)){.project-tech-less-button{box-shadow:0 0 0 1px color-mix(in srgb,var(--projects-border) 82%,transparent)}}.dark .project-tech-less-button{color:var(--projects-text);background-color:#ffffff1a;box-shadow:0 0 0 1px #ffffff24}.project-tech-less-button:hover{background-color:var(--projects-border)}@supports (color:color-mix(in lab,red,red)){.project-tech-less-button:hover{background-color:color-mix(in srgb,var(--projects-border) 46%,transparent)}}.dark .project-tech-less-button:hover{background-color:#ffffff24}.project-tech-more-button:focus-visible,.project-tech-less-button:focus-visible{box-shadow:0 0 0 4px var(--focus-ring);outline:none}.project-actions{gap:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 3);margin-top:auto;display:flex}.project-action-button{align-items:center;gap:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-lg,.5rem);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));min-height:44px;display:flex}.project-action-github{color:#f8fafc;background-color:#0f172a;box-shadow:0 0 0 1px #1e293b}.project-action-github:hover{background-color:#1e293b}.dark .project-action-github{color:#f8fafc;background-color:#0f172a;box-shadow:0 0 0 1px #334155}.dark .project-action-github:hover{background-color:#1e293b}.project-action-demo{background-color:var(--color-blue-600,oklch(54.6% .245 262.881));color:var(--color-white,#fff)}@media(hover:hover){.project-action-demo:hover{background-color:var(--color-blue-700,oklch(48.8% .243 264.376))}}.project-action-icon{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.project-action-button:focus-visible{box-shadow:0 0 0 4px var(--focus-ring);outline:none}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@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-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%}}}.project-icon-core-system{color:var(--color-slate-700,oklch(37.2% .044 257.287))}@media(prefers-color-scheme:dark){.project-icon-core-system{color:var(--color-slate-300,oklch(86.9% .022 252.894))}}.project-icon-bg-core-system{--tw-gradient-from:var(--color-slate-50,oklch(98.4% .003 247.858));--tw-gradient-to:var(--color-gray-100,oklch(96.7% .003 264.542));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-core-system{--tw-gradient-from:#1d293d66}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-core-system{--tw-gradient-from:color-mix(in oklab, var(--color-slate-800,oklch(27.9% .041 260.031)) 40%, transparent)}}.project-icon-bg-core-system{--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));--tw-gradient-to:#1e293966}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-core-system{--tw-gradient-to:color-mix(in oklab, var(--color-gray-800,oklch(27.8% .033 256.848)) 40%, transparent)}}.project-icon-bg-core-system{--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))}}.project-icon-calendar{color:var(--color-cyan-600,oklch(60.9% .126 221.723))}@media(prefers-color-scheme:dark){.project-icon-calendar{color:var(--color-cyan-400,oklch(78.9% .154 211.53))}}.project-icon-bg-calendar{--tw-gradient-from:var(--color-cyan-50,oklch(98.4% .019 200.873));--tw-gradient-to:var(--color-blue-50,oklch(97% .014 254.604));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-calendar{--tw-gradient-from:#104e6433}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-calendar{--tw-gradient-from:color-mix(in oklab, var(--color-cyan-900,oklch(39.8% .07 227.392)) 20%, transparent)}}.project-icon-bg-calendar{--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));--tw-gradient-to:#1c398e33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-calendar{--tw-gradient-to:color-mix(in oklab, var(--color-blue-900,oklch(37.9% .146 265.522)) 20%, transparent)}}.project-icon-bg-calendar{--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))}}.project-icon-ballquest{color:var(--color-orange-600,oklch(64.6% .222 41.116))}@media(prefers-color-scheme:dark){.project-icon-ballquest{color:var(--color-orange-400,oklch(75% .183 55.934))}}.project-icon-bg-ballquest{--tw-gradient-from:var(--color-amber-50,oklch(98.7% .022 95.277));--tw-gradient-to:var(--color-orange-50,oklch(98% .016 73.684));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-ballquest{--tw-gradient-from:#7b330633}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-ballquest{--tw-gradient-from:color-mix(in oklab, var(--color-amber-900,oklch(41.4% .112 45.904)) 20%, transparent)}}.project-icon-bg-ballquest{--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));--tw-gradient-to:#7e2a0c33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-ballquest{--tw-gradient-to:color-mix(in oklab, var(--color-orange-900,oklch(40.8% .123 38.172)) 20%, transparent)}}.project-icon-bg-ballquest{--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))}}.project-icon-dungeon{color:var(--color-violet-600,oklch(54.1% .281 293.009))}@media(prefers-color-scheme:dark){.project-icon-dungeon{color:var(--color-violet-400,oklch(70.2% .183 293.541))}}.project-icon-bg-dungeon{--tw-gradient-from:var(--color-violet-50,oklch(96.9% .016 293.756));--tw-gradient-to:var(--color-purple-50,oklch(97.7% .014 308.299));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-dungeon{--tw-gradient-from:#4d179a33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-dungeon{--tw-gradient-from:color-mix(in oklab, var(--color-violet-900,oklch(38% .189 293.745)) 20%, transparent)}}.project-icon-bg-dungeon{--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));--tw-gradient-to:#59168b33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-dungeon{--tw-gradient-to:color-mix(in oklab, var(--color-purple-900,oklch(38.1% .176 304.987)) 20%, transparent)}}.project-icon-bg-dungeon{--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))}}.project-icon-reversi{color:var(--color-zinc-700,oklch(37% .013 285.805))}@media(prefers-color-scheme:dark){.project-icon-reversi{color:var(--color-zinc-300,oklch(87.1% .006 286.286))}}.project-icon-bg-reversi{--tw-gradient-from:var(--color-zinc-50,oklch(98.5% 0 0));--tw-gradient-to:var(--color-slate-50,oklch(98.4% .003 247.858));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-reversi{--tw-gradient-from:#27272a66}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-reversi{--tw-gradient-from:color-mix(in oklab, var(--color-zinc-800,oklch(27.4% .006 286.033)) 40%, transparent)}}.project-icon-bg-reversi{--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));--tw-gradient-to:#1d293d66}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-reversi{--tw-gradient-to:color-mix(in oklab, var(--color-slate-800,oklch(27.9% .041 260.031)) 40%, transparent)}}.project-icon-bg-reversi{--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))}}.project-icon-backend{color:var(--color-blue-600,oklch(54.6% .245 262.881))}@media(prefers-color-scheme:dark){.project-icon-backend{color:var(--color-blue-400,oklch(70.7% .165 254.624))}}.project-icon-bg-backend{--tw-gradient-from:var(--color-blue-50,oklch(97% .014 254.604));--tw-gradient-to:var(--color-cyan-50,oklch(98.4% .019 200.873));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-backend{--tw-gradient-from:#1c398e33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-backend{--tw-gradient-from:color-mix(in oklab, var(--color-blue-900,oklch(37.9% .146 265.522)) 20%, transparent)}}.project-icon-bg-backend{--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));--tw-gradient-to:#104e6433}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-backend{--tw-gradient-to:color-mix(in oklab, var(--color-cyan-900,oklch(39.8% .07 227.392)) 20%, transparent)}}.project-icon-bg-backend{--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))}}.project-icon-docker{color:var(--color-cyan-600,oklch(60.9% .126 221.723))}@media(prefers-color-scheme:dark){.project-icon-docker{color:var(--color-cyan-400,oklch(78.9% .154 211.53))}}.project-icon-bg-docker{--tw-gradient-from:var(--color-cyan-50,oklch(98.4% .019 200.873));--tw-gradient-to:var(--color-blue-50,oklch(97% .014 254.604));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-docker{--tw-gradient-from:#104e6433}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-docker{--tw-gradient-from:color-mix(in oklab, var(--color-cyan-900,oklch(39.8% .07 227.392)) 20%, transparent)}}.project-icon-bg-docker{--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));--tw-gradient-to:#1c398e33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-docker{--tw-gradient-to:color-mix(in oklab, var(--color-blue-900,oklch(37.9% .146 265.522)) 20%, transparent)}}.project-icon-bg-docker{--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))}}.project-icon-database{color:var(--color-indigo-600,oklch(51.1% .262 276.966))}@media(prefers-color-scheme:dark){.project-icon-database{color:var(--color-indigo-400,oklch(67.3% .182 276.935))}}.project-icon-bg-database{--tw-gradient-from:var(--color-indigo-50,oklch(96.2% .018 272.314));--tw-gradient-to:var(--color-blue-50,oklch(97% .014 254.604));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-database{--tw-gradient-from:#312c8533}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-database{--tw-gradient-from:color-mix(in oklab, var(--color-indigo-900,oklch(35.9% .144 278.697)) 20%, transparent)}}.project-icon-bg-database{--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));--tw-gradient-to:#1c398e33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-database{--tw-gradient-to:color-mix(in oklab, var(--color-blue-900,oklch(37.9% .146 265.522)) 20%, transparent)}}.project-icon-bg-database{--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))}}.project-icon-graphql{color:var(--color-pink-600,oklch(59.2% .249 .584))}@media(prefers-color-scheme:dark){.project-icon-graphql{color:var(--color-pink-400,oklch(71.8% .202 349.761))}}.project-icon-bg-graphql{--tw-gradient-from:var(--color-pink-50,oklch(97.1% .014 343.198));--tw-gradient-to:var(--color-purple-50,oklch(97.7% .014 308.299));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-graphql{--tw-gradient-from:#86104333}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-graphql{--tw-gradient-from:color-mix(in oklab, var(--color-pink-900,oklch(40.8% .153 2.432)) 20%, transparent)}}.project-icon-bg-graphql{--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));--tw-gradient-to:#59168b33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-graphql{--tw-gradient-to:color-mix(in oklab, var(--color-purple-900,oklch(38.1% .176 304.987)) 20%, transparent)}}.project-icon-bg-graphql{--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))}}.project-icon-flutter{color:var(--color-sky-600,oklch(58.8% .158 241.966))}@media(prefers-color-scheme:dark){.project-icon-flutter{color:var(--color-sky-400,oklch(74.6% .16 232.661))}}.project-icon-bg-flutter{--tw-gradient-from:var(--color-sky-50,oklch(97.7% .013 236.62));--tw-gradient-to:var(--color-cyan-50,oklch(98.4% .019 200.873));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-flutter{--tw-gradient-from:#024a7033}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-flutter{--tw-gradient-from:color-mix(in oklab, var(--color-sky-900,oklch(39.1% .09 240.876)) 20%, transparent)}}.project-icon-bg-flutter{--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));--tw-gradient-to:#104e6433}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-flutter{--tw-gradient-to:color-mix(in oklab, var(--color-cyan-900,oklch(39.8% .07 227.392)) 20%, transparent)}}.project-icon-bg-flutter{--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))}}.project-icon-game{color:var(--color-gray-700,oklch(37.3% .034 259.733))}@media(prefers-color-scheme:dark){.project-icon-game{color:var(--color-gray-300,oklch(87.2% .01 258.338))}}.project-icon-bg-game{--tw-gradient-from:var(--color-gray-50,oklch(98.5% .002 247.839));--tw-gradient-to:var(--color-slate-50,oklch(98.4% .003 247.858));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-game{--tw-gradient-from:#1e293966}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-game{--tw-gradient-from:color-mix(in oklab, var(--color-gray-800,oklch(27.8% .033 256.848)) 40%, transparent)}}.project-icon-bg-game{--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));--tw-gradient-to:#1d293d66}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-game{--tw-gradient-to:color-mix(in oklab, var(--color-slate-800,oklch(27.9% .041 260.031)) 40%, transparent)}}.project-icon-bg-game{--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))}}.project-icon-ai{color:var(--color-emerald-600,oklch(59.6% .145 163.225))}@media(prefers-color-scheme:dark){.project-icon-ai{color:var(--color-emerald-400,oklch(76.5% .177 163.223))}}.project-icon-bg-ai{--tw-gradient-from:var(--color-emerald-50,oklch(97.9% .021 166.113));--tw-gradient-to:var(--color-teal-50,oklch(98.4% .014 180.72));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-ai{--tw-gradient-from:#004e3b33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-ai{--tw-gradient-from:color-mix(in oklab, var(--color-emerald-900,oklch(37.8% .077 168.94)) 20%, transparent)}}.project-icon-bg-ai{--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));--tw-gradient-to:#0b4f4a33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-ai{--tw-gradient-to:color-mix(in oklab, var(--color-teal-900,oklch(38.6% .063 188.416)) 20%, transparent)}}.project-icon-bg-ai{--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))}}.project-icon-koreji{color:var(--color-purple-600,oklch(55.8% .288 302.321))}@media(prefers-color-scheme:dark){.project-icon-koreji{color:var(--color-purple-400,oklch(71.4% .203 305.504))}}.project-icon-bg-koreji{--tw-gradient-from:var(--color-purple-50,oklch(97.7% .014 308.299));--tw-gradient-to:var(--color-pink-50,oklch(97.1% .014 343.198));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-koreji{--tw-gradient-from:#59168b33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-koreji{--tw-gradient-from:color-mix(in oklab, var(--color-purple-900,oklch(38.1% .176 304.987)) 20%, transparent)}}.project-icon-bg-koreji{--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));--tw-gradient-to:#86104333}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-koreji{--tw-gradient-to:color-mix(in oklab, var(--color-pink-900,oklch(40.8% .153 2.432)) 20%, transparent)}}.project-icon-bg-koreji{--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))}}.project-icon-cal{color:var(--color-teal-600,oklch(60% .118 184.704))}@media(prefers-color-scheme:dark){.project-icon-cal{color:var(--color-teal-400,oklch(77.7% .152 181.912))}}.project-icon-bg-cal{--tw-gradient-from:var(--color-teal-50,oklch(98.4% .014 180.72));--tw-gradient-to:var(--color-cyan-50,oklch(98.4% .019 200.873));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-cal{--tw-gradient-from:#0b4f4a33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-cal{--tw-gradient-from:color-mix(in oklab, var(--color-teal-900,oklch(38.6% .063 188.416)) 20%, transparent)}}.project-icon-bg-cal{--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));--tw-gradient-to:#104e6433}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-cal{--tw-gradient-to:color-mix(in oklab, var(--color-cyan-900,oklch(39.8% .07 227.392)) 20%, transparent)}}.project-icon-bg-cal{--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))}}.project-icon-shorten-url{color:var(--color-indigo-600,oklch(51.1% .262 276.966))}@media(prefers-color-scheme:dark){.project-icon-shorten-url{color:var(--color-indigo-400,oklch(67.3% .182 276.935))}}.project-icon-bg-shorten-url{--tw-gradient-from:var(--color-indigo-50,oklch(96.2% .018 272.314));--tw-gradient-to:var(--color-blue-50,oklch(97% .014 254.604));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-shorten-url{--tw-gradient-from:#312c8533}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-shorten-url{--tw-gradient-from:color-mix(in oklab, var(--color-indigo-900,oklch(35.9% .144 278.697)) 20%, transparent)}}.project-icon-bg-shorten-url{--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));--tw-gradient-to:#1c398e33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-shorten-url{--tw-gradient-to:color-mix(in oklab, var(--color-blue-900,oklch(37.9% .146 265.522)) 20%, transparent)}}.project-icon-bg-shorten-url{--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))}}.project-icon-resume{color:var(--color-amber-600,oklch(66.6% .179 58.318))}@media(prefers-color-scheme:dark){.project-icon-resume{color:var(--color-amber-400,oklch(82.8% .189 84.429))}}.project-icon-bg-resume{--tw-gradient-from:var(--color-amber-50,oklch(98.7% .022 95.277));--tw-gradient-to:var(--color-yellow-50,oklch(98.7% .026 102.212));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-resume{--tw-gradient-from:#7b330633}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-resume{--tw-gradient-from:color-mix(in oklab, var(--color-amber-900,oklch(41.4% .112 45.904)) 20%, transparent)}}.project-icon-bg-resume{--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));--tw-gradient-to:#733e0a33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-resume{--tw-gradient-to:color-mix(in oklab, var(--color-yellow-900,oklch(42.1% .095 57.708)) 20%, transparent)}}.project-icon-bg-resume{--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))}}.project-icon-github-stats{color:var(--color-green-600,oklch(62.7% .194 149.214))}@media(prefers-color-scheme:dark){.project-icon-github-stats{color:var(--color-green-400,oklch(79.2% .209 151.711))}}.project-icon-bg-github-stats{--tw-gradient-from:var(--color-green-50,oklch(98.2% .018 155.826));--tw-gradient-to:var(--color-emerald-50,oklch(97.9% .021 166.113));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-github-stats{--tw-gradient-from:#0d542b33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-github-stats{--tw-gradient-from:color-mix(in oklab, var(--color-green-900,oklch(39.3% .095 152.535)) 20%, transparent)}}.project-icon-bg-github-stats{--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));--tw-gradient-to:#004e3b33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-github-stats{--tw-gradient-to:color-mix(in oklab, var(--color-emerald-900,oklch(37.8% .077 168.94)) 20%, transparent)}}.project-icon-bg-github-stats{--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))}}.project-icon-rsync{color:var(--color-rose-600,oklch(58.6% .253 17.585))}@media(prefers-color-scheme:dark){.project-icon-rsync{color:var(--color-rose-400,oklch(71.2% .194 13.428))}}.project-icon-bg-rsync{--tw-gradient-from:var(--color-rose-50,oklch(96.9% .015 12.422));--tw-gradient-to:var(--color-pink-50,oklch(97.1% .014 343.198));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-rsync{--tw-gradient-from:#8b083633}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-rsync{--tw-gradient-from:color-mix(in oklab, var(--color-rose-900,oklch(41% .159 10.272)) 20%, transparent)}}.project-icon-bg-rsync{--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));--tw-gradient-to:#86104333}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-rsync{--tw-gradient-to:color-mix(in oklab, var(--color-pink-900,oklch(40.8% .153 2.432)) 20%, transparent)}}.project-icon-bg-rsync{--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))}}.project-icon-scheduler{color:var(--color-blue-600,oklch(54.6% .245 262.881))}@media(prefers-color-scheme:dark){.project-icon-scheduler{color:var(--color-blue-400,oklch(70.7% .165 254.624))}}.project-icon-bg-scheduler{--tw-gradient-from:var(--color-blue-50,oklch(97% .014 254.604));--tw-gradient-to:var(--color-indigo-50,oklch(96.2% .018 272.314));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-scheduler{--tw-gradient-from:#1c398e33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-scheduler{--tw-gradient-from:color-mix(in oklab, var(--color-blue-900,oklch(37.9% .146 265.522)) 20%, transparent)}}.project-icon-bg-scheduler{--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));--tw-gradient-to:#312c8533}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-scheduler{--tw-gradient-to:color-mix(in oklab, var(--color-indigo-900,oklch(35.9% .144 278.697)) 20%, transparent)}}.project-icon-bg-scheduler{--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))}}.project-icon-default{color:var(--color-blue-600,oklch(54.6% .245 262.881))}@media(prefers-color-scheme:dark){.project-icon-default{color:var(--color-blue-400,oklch(70.7% .165 254.624))}}.project-icon-bg-default{--tw-gradient-from:var(--color-blue-50,oklch(97% .014 254.604));--tw-gradient-to:var(--color-cyan-50,oklch(98.4% .019 200.873));--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))}@media(prefers-color-scheme:dark){.project-icon-bg-default{--tw-gradient-from:#1c398e33}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-default{--tw-gradient-from:color-mix(in oklab, var(--color-blue-900,oklch(37.9% .146 265.522)) 20%, transparent)}}.project-icon-bg-default{--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));--tw-gradient-to:#104e6433}@supports (color:color-mix(in lab,red,red)){.project-icon-bg-default{--tw-gradient-to:color-mix(in oklab, var(--color-cyan-900,oklch(39.8% .07 227.392)) 20%, transparent)}}.project-icon-bg-default{--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))}}@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%}@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-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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}}}.carousel-container{width:100%;position:relative}.carousel-wrapper{border-radius:var(--radius-2xl,1rem);background-color:var(--projects-surface);position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.carousel-wrapper{background-color:color-mix(in srgb,var(--projects-surface) 82%,transparent)}}.carousel-wrapper{box-shadow:var(--shadow-card);border:1px solid var(--projects-border)}@supports (color:color-mix(in lab,red,red)){.carousel-wrapper{border:1px solid color-mix(in srgb,var(--projects-border) 85%,transparent)}}.carousel-wrapper{backdrop-filter:blur(10px)}.carousel-track{position:relative}.carousel-slides{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.5s;--tw-ease:var(--ease-in-out,cubic-bezier(.4, 0, .2, 1));transition-duration:.5s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4, 0, .2, 1));display:flex}.carousel-slide{flex-shrink:0;width:100%}.carousel-slide-content{gap:calc(var(--spacing,.25rem) * 6);min-height:350px;padding:calc(var(--spacing,.25rem) * 5)}@media(min-width:40rem){.carousel-slide-content{padding:calc(var(--spacing,.25rem) * 6)}}@media(min-width:64rem){.carousel-slide-content{min-height:400px;padding:calc(var(--spacing,.25rem) * 7)}}.carousel-slide-content.multi-column{display:grid}.carousel-slide-content.single-column{justify-content:center;display:flex}@media(max-width:639px){.carousel-slide-content.single-column{padding-left:3.25rem;padding-right:3.25rem}.carousel-control-prev{left:.75rem}.carousel-control-next{right:.75rem}.carousel-indicators{padding-bottom:.75rem}}.card-style-primary{background:linear-gradient(135deg,var(--projects-accent),var(--projects-accent-2))}@supports (color:color-mix(in lab,red,red)){.card-style-primary{background:linear-gradient(135deg,color-mix(in srgb,var(--projects-accent) 10%,transparent),color-mix(in srgb,var(--projects-accent-2) 10%,transparent))}}.card-style-secondary{background:linear-gradient(135deg,var(--projects-accent-2),var(--projects-accent))}@supports (color:color-mix(in lab,red,red)){.card-style-secondary{background:linear-gradient(135deg,color-mix(in srgb,var(--projects-accent-2) 10%,transparent),color-mix(in srgb,var(--projects-accent) 10%,transparent))}}.card-style-tertiary{background:linear-gradient(135deg,var(--projects-accent),var(--projects-text))}@supports (color:color-mix(in lab,red,red)){.card-style-tertiary{background:linear-gradient(135deg,color-mix(in srgb,var(--projects-accent) 10%,transparent),color-mix(in srgb,var(--projects-text) 6%,transparent))}}.carousel-control-button{z-index:10;--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y);--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);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:var(--projects-surface);border-radius:3.40282e38px;place-items:center;display:grid;position:absolute;top:50%}@supports (color:color-mix(in lab,red,red)){.carousel-control-button{background-color:color-mix(in srgb,var(--projects-surface) 88%,transparent)}}.carousel-control-button{border:1px solid var(--projects-border)}@supports (color:color-mix(in lab,red,red)){.carousel-control-button{border:1px solid color-mix(in srgb,var(--projects-border) 75%,transparent)}}.carousel-control-button{backdrop-filter:blur(10px);width:44px;height:44px}.carousel-control-prev{left:calc(var(--spacing,.25rem) * 4)}.carousel-control-next{right:calc(var(--spacing,.25rem) * 4)}.carousel-control-icon{height:calc(var(--spacing,.25rem) * 5);width:calc(var(--spacing,.25rem) * 5);color:var(--projects-text)}.carousel-control-button:focus-visible{box-shadow:0 0 0 4px var(--focus-ring),0 10px 25px #0000001f;outline:none}.carousel-indicators{justify-content:center;gap:calc(var(--spacing,.25rem) * 2);padding-bottom:calc(var(--spacing,.25rem) * 4);display:flex}.carousel-indicator{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-radius:3.40282e38px;width:10px;height:10px;padding:8px}.carousel-indicator-active{background-color:var(--projects-accent);width:28px}.carousel-indicator-inactive{background-color:var(--projects-border)}@supports (color:color-mix(in lab,red,red)){.carousel-indicator-inactive{background-color:color-mix(in srgb,var(--projects-border) 90%,transparent)}}.carousel-indicator-inactive:hover{background-color:var(--projects-text-muted)}@supports (color:color-mix(in lab,red,red)){.carousel-indicator-inactive:hover{background-color:color-mix(in srgb,var(--projects-text-muted) 38%,transparent)}}.carousel-indicator:focus-visible{box-shadow:0 0 0 4px var(--focus-ring);outline:none}@media(hover:hover)and (pointer:fine){.carousel-control-button{opacity:.35;transform:translateY(-50%)scale(.98)}.carousel-wrapper:hover .carousel-control-button,.carousel-wrapper:focus-within .carousel-control-button{opacity:1;transform:translateY(-50%)scale(1)}}.carousel-wrapper:focus-visible{box-shadow:0 0 0 4px var(--focus-ring);outline:none}@media(max-width:640px){.carousel-control-button{opacity:.85;width:40px;height:40px}.carousel-control-prev{left:calc(var(--spacing,.25rem) * 2)}.carousel-control-next{right:calc(var(--spacing,.25rem) * 2)}.carousel-slide-content{padding-inline:calc(var(--spacing,.25rem) * 6)}.carousel-indicators{gap:var(--spacing,.25rem)}.carousel-indicator{background:0 0;border-radius:9999px;width:44px;height:44px;padding:0;position:relative}.carousel-indicator-active{background:0 0;width:44px}.carousel-indicator-inactive{background:0 0}.carousel-indicator:before{content:"";background:var(--projects-border);border-radius:9999px;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@supports (color:color-mix(in lab,red,red)){.carousel-indicator:before{background:color-mix(in srgb,var(--projects-border) 90%,transparent)}}.carousel-indicator-inactive:hover:before{background:var(--projects-text-muted)}@supports (color:color-mix(in lab,red,red)){.carousel-indicator-inactive:hover:before{background:color-mix(in srgb,var(--projects-text-muted) 40%,transparent)}}.carousel-indicator-active:before{background:var(--projects-accent);width:28px;height:10px}}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@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-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}@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-font-weight:initial;--tw-border-style:solid}}}:root{--projects-surface:var(--bg-elev-1);--projects-border:var(--border);--projects-text:var(--text);--projects-text-muted:var(--text-muted);--projects-accent:var(--accent);--projects-accent-2:var(--accent-2)}.github-activity{margin-top:calc(var(--spacing,.25rem) * 20)}.github-activity-title{margin-bottom:calc(var(--spacing,.25rem) * 8);text-align:center;font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--projects-text)}.github-repos-grid{gap:calc(var(--spacing,.25rem) * 6);display:grid}@media(min-width:48rem){.github-repos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.github-repos-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.repo-card{border-radius:var(--radius-xl,.75rem);border-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 6);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));background-color:var(--projects-surface);border-width:1px}@supports (color:color-mix(in lab,red,red)){.repo-card{background-color:color-mix(in srgb,var(--projects-surface) 88%,transparent)}}.repo-card{border-color:var(--projects-border)}@supports (color:color-mix(in lab,red,red)){.repo-card{border-color:color-mix(in srgb,var(--projects-border) 85%,transparent)}}.repo-card{box-shadow:var(--shadow-card)}.repo-card:hover{border-color:var(--projects-border)}@supports (color:color-mix(in lab,red,red)){.repo-card:hover{border-color:color-mix(in srgb,var(--projects-border) 45%,var(--projects-accent))}}.repo-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.repo-card-header{margin-bottom:calc(var(--spacing,.25rem) * 3);justify-content:space-between;align-items:flex-start;display:flex}.repo-card-title{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));color:var(--projects-text)}.repo-card:hover .repo-card-title{color:var(--projects-accent)}.repo-card-icon{height:calc(var(--spacing,.25rem) * 5);width:calc(var(--spacing,.25rem) * 5);color:var(--projects-text-muted)}.repo-card-description-wrapper{margin-bottom:calc(var(--spacing,.25rem) * 4)}.repo-card-description{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--projects-text-muted);-webkit-box-orient:vertical;transition:all .3s ease-in-out;display:-webkit-box;overflow:hidden}.repo-card-description-clamped{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.repo-card-more-button{margin-top:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));color:var(--projects-accent)}.repo-card-more-button:hover{color:var(--projects-accent)}@supports (color:color-mix(in lab,red,red)){.repo-card-more-button:hover{color:color-mix(in srgb,var(--projects-accent) 86%,var(--projects-text))}}.repo-card-footer{align-items:center;gap:calc(var(--spacing,.25rem) * 4);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--projects-text-muted);display:flex}.language-indicator{align-items:center;gap:var(--spacing,.25rem);display:flex}.language-dot{height:calc(var(--spacing,.25rem) * 3);width:calc(var(--spacing,.25rem) * 3);background-color:var(--color-blue-500,oklch(62.3% .214 259.815));border-radius:3.40282e38px}.star-indicator{align-items:center;gap:var(--spacing,.25rem);display:flex}.star-icon{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.github-repos-toggle-container{margin-top:calc(var(--spacing,.25rem) * 6);text-align:center}.github-repos-toggle-button{height:calc(var(--spacing,.25rem) * 12);width:calc(var(--spacing,.25rem) * 12);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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));color:var(--projects-text);justify-content:center;align-items:center;display:inline-flex}.github-repos-toggle-button:hover{color:var(--projects-text-muted)}.github-repos-toggle-icon{height:calc(var(--spacing,.25rem) * 6);width:calc(var(--spacing,.25rem) * 6)}.github-button-container{margin-top:calc(var(--spacing,.25rem) * 8);text-align:center}.github-button{align-items:center;gap:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-lg,.5rem);padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 3);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));color:#f8fafc;background-color:#0f172a;display:inline-flex;box-shadow:0 0 0 1px #1e293b}.github-button:hover{background-color:#1e293b}.dark .github-button{color:#f8fafc;background-color:#0f172a;box-shadow:0 0 0 1px #334155}.dark .github-button:hover{background-color:#1e293b}.github-button-icon{height:calc(var(--spacing,.25rem) * 5);width:calc(var(--spacing,.25rem) * 5)}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}.carousel,.carousel-inner,.carousel-item{background-color:transparent!important}.carousel-control-prev,.carousel-control-next{background-color:#ffffffe6!important;border-radius:50%!important;width:50px!important;height:50px!important;top:50%!important;transform:translateY(-50%)!important}.dark .carousel-control-prev,.dark .carousel-control-next{background-color:#1f2937e6!important}.carousel-control-prev{left:16px!important}.carousel-control-next{right:16px!important}.carousel-control-prev-icon,.carousel-control-next-icon{filter:invert(.4)!important;width:24px!important;height:24px!important}.dark .carousel-control-prev-icon,.dark .carousel-control-next-icon{filter:invert(.8)!important}.carousel-indicators{bottom:-50px!important;margin-bottom:0!important}.carousel-indicators button{width:12px!important;height:12px!important;border-radius:50%!important;background-color:#d1d5db!important;border:none!important;margin:0 4px!important;opacity:.5!important}.dark .carousel-indicators button{background-color:#6b7280!important}.carousel-indicators button.active{background-color:#2563eb!important;opacity:1!important}.dark .carousel-indicators button.active{background-color:#60a5fa!important}.dark .carousel-item,.dark .carousel-inner{background-color:#1f2937!important}
