diff --git a/content/proyectos/CoordKeeper/1.gif b/content/proyectos/CoordKeeper/1.gif new file mode 100644 index 0000000..230e307 Binary files /dev/null and b/content/proyectos/CoordKeeper/1.gif differ diff --git a/content/proyectos/CoordKeeper/1.png b/content/proyectos/CoordKeeper/1.png new file mode 100644 index 0000000..8507031 Binary files /dev/null and b/content/proyectos/CoordKeeper/1.png differ diff --git a/content/proyectos/CoordKeeper/2.png b/content/proyectos/CoordKeeper/2.png new file mode 100644 index 0000000..2473499 Binary files /dev/null and b/content/proyectos/CoordKeeper/2.png differ diff --git a/content/proyectos/CoordKeeper/index.md b/content/proyectos/CoordKeeper/index.md index cc13cbf..029ae89 100644 --- a/content/proyectos/CoordKeeper/index.md +++ b/content/proyectos/CoordKeeper/index.md @@ -2,6 +2,7 @@ date : '2025-05-02T01:47:53-03:00' draft : false title : 'CoordKeeper' +image : 'index.png' --- es una aplicación web desarrollada con React diseñada específicamente para jugadores de Minecraft. Esta herramienta permite a los usuarios almacenar, organizar y gestionar fácilmente las coordenadas de ubicaciones importantes dentro del juego. diff --git a/content/proyectos/CoordKeeper/index.png b/content/proyectos/CoordKeeper/index.png new file mode 100644 index 0000000..c51acc6 Binary files /dev/null and b/content/proyectos/CoordKeeper/index.png differ diff --git a/hugo_stats.json b/hugo_stats.json index ac01bf4..888ec91 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -2,12 +2,14 @@ "htmlElements": { "tags": [ "a", + "article", "blockquote", "body", "br", "button", "code", "defs", + "dialog", "div", "em", "footer", @@ -15,6 +17,7 @@ "h2", "h3", "head", + "header", "hr", "html", "img", @@ -32,12 +35,14 @@ "span", "stop", "strong", + "style", "svg", "title", "ul" ], "classes": [ "absolute", + "active:z-0", "animate-bounce", "bg-[radial-gradient(circle,rgba(0,0,0,0)_0%,rgba(0,0,0,0.5)_70%,#ffffff_100%),repeating-linear-gradient(45deg,#000000,#000000_10px,#ffffff_10px,#ffffff_20px)]", "bg-[repeating-linear-gradient(transparent,transparent_27px,#333_28px)]", @@ -47,7 +52,10 @@ "bg-cyan-200", "bg-gray-200", "bg-gray-800", + "bg-opacity-50", "bg-sky-200", + "bg-sky-300", + "bg-sky-600", "bg-white", "border", "border-2", @@ -87,7 +95,10 @@ "h-16", "h-48", "h-6", + "h-[20rem]", + "h-[80%]", "h-auto", + "h-full", "h-screen", "hidden", "highlight", @@ -104,6 +115,7 @@ "hover:text-white", "hover:z-2", "inline-block", + "inset-0", "items-center", "justify-between", "justify-center", @@ -111,8 +123,6 @@ "lg:text-5xl", "m-4", "max-w-4xl", - "max-w-none", - "mb-12", "mb-2", "mb-4", "mb-6", @@ -124,18 +134,21 @@ "md:text-xl", "mr-2", "mt-12", + "mt-16", + "mt-2", "mt-6", "muted", "mx-auto", "object-cover", + "opacity-100", "overflow-hidden", + "p-1", "p-12", "p-2", "p-4", "p-5", "p-8", - "prose", - "prose-lg", + "pt-5", "px-2", "px-3", "px-4", @@ -148,9 +161,11 @@ "py-8", "right-0", "rounded", + "rounded-b-full", "rounded-full", "rounded-lg", "rounded-md", + "rounded-t-full", "rounded-t-lg", "self-center", "shadow-2xl", @@ -158,11 +173,13 @@ "shadow-[0_4px_6px_-1px_rgb(107,114,128)]", "shadow-md", "shadow-xl", + "shadow-xl/30", "sm:flex", "sm:flex-row", "sm:mb-0", "text-2xl", "text-4xl", + "text-6xl", "text-black", "text-blue-500", "text-blue-700", @@ -182,32 +199,54 @@ "transition-transform", "translate-x-full", "underline", + "w-100", "w-22", "w-6", "w-64", "w-[2px]", + "w-[50%]", "w-[80%]", + "w-fit", "w-full", "w-screen", "z-0", - "z-3" + "z-3", + "z-50" ], "ids": [ + "1.gif", + "1.png", + "2.png", "almacenamiento-de-contratos-de-alquiler", "apertura-de-la-coneccion", + "arquitectura-técnica", + "backend", "buenas", + "capturas-de-pantalla-wip", + "características", + "características-principales", "cerrado-de-la-coneccion", "como-funciona-esto", "como-hago-nuevos-posts", + "conclusiones", + "contacto", "cosas-que-necesitamos", "creacion-del-sqlcommand", "el-inicio-de-la-catastrofe", + "estructura-de-navegación-drilling", + "frontend", + "gestión-de-productos", "gimp", "grad", "imagemagick", + "implementación", "instanciacion-del-sqlconnection", "lo-que-termine-haciendo", + "modelo-de-datos", "motivacion", + "nivel-1-cadena-hotelera", + "nivel-2-locaciónhotel-específico", + "nivel-3-estadísticas-detalladas", "non-query", "nota", "notas", @@ -215,6 +254,7 @@ "opcion-atomica", "opcion-web", "paso-a-paso", + "pedidos-a-proveedores", "permisos-para-los-clientes", "posibles-soluciones", "que-es", @@ -222,10 +262,14 @@ "que-es-el-screen-tear", "que-es-esto", "que-tengo-pensado", + "registro-de-ventas", + "requisitos-del-sistema", "sintaxis", "solucion", "sub-query", - "utilizacion-del-executereader" + "tecnologías-utilizadas", + "utilizacion-del-executereader", + "verificación-de-remitos" ] } } diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 060afe6..245ec81 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -5,8 +5,7 @@ {{ .Title }} - - + diff --git a/layouts/partials/carousel.html b/layouts/partials/carousel.html new file mode 100644 index 0000000..85a29a6 --- /dev/null +++ b/layouts/partials/carousel.html @@ -0,0 +1,27 @@ +
.
+
+{{ range .pngFiles }} + +{{ end }} +
+
.
+ +{{ range .pngFiles }} + +{{ end }} + diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index aa70b31..858c70e 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -16,7 +16,7 @@ > CV diff --git a/layouts/partials/proyectos.html b/layouts/partials/proyectos.html index 7c6ded0..94ab5ad 100644 --- a/layouts/partials/proyectos.html +++ b/layouts/partials/proyectos.html @@ -2,12 +2,11 @@
{{ range first 3 (where .Site.RegularPages "Section" "proyectos") }}
{{ if .Params.image }} {{ .Title }} diff --git a/layouts/partials/separador.html b/layouts/partials/separador.html new file mode 100644 index 0000000..6856cdf --- /dev/null +++ b/layouts/partials/separador.html @@ -0,0 +1,13 @@ +
+
+
+

+ {{if .text}} + {{.text}} + {{else}} + o + {{end}} +

+
+
+
diff --git a/layouts/posts/single.html b/layouts/posts/single.html index 0cd3929..052bf6a 100644 --- a/layouts/posts/single.html +++ b/layouts/posts/single.html @@ -34,9 +34,9 @@
-
+
{{ .Content }} -
+ +@font-face { + font-family: 'MiFuente'; + src: url('/calamity.ttf') format('truetype'); +} +header{ + font-family: 'MiFuente', sans-serif; +} + +
+
{{.Title}}
+ + {{ partial "separador.html" }} + +
+ {{ partial "carousel.html" (dict "pngFiles" $pngs) }} +
+ {{ partial "separador.html" }} +
+
{{ .Content }}
+
+
+
+

.

+
+ +{{ end }} diff --git a/public/ManufacturingConsent-Regular.ttf b/public/ManufacturingConsent-Regular.ttf new file mode 100644 index 0000000..28be09b Binary files /dev/null and b/public/ManufacturingConsent-Regular.ttf differ diff --git a/public/Manufacturing_Consent.zip b/public/Manufacturing_Consent.zip new file mode 100644 index 0000000..2f29c7e Binary files /dev/null and b/public/Manufacturing_Consent.zip differ diff --git a/public/Manufacturing_Consent/ManufacturingConsent-Regular.ttf b/public/Manufacturing_Consent/ManufacturingConsent-Regular.ttf new file mode 100644 index 0000000..28be09b Binary files /dev/null and b/public/Manufacturing_Consent/ManufacturingConsent-Regular.ttf differ diff --git a/public/Manufacturing_Consent/OFL.txt b/public/Manufacturing_Consent/OFL.txt new file mode 100644 index 0000000..2b86f09 --- /dev/null +++ b/public/Manufacturing_Consent/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2019 The Manufacturing Consent Project Authors (https://github.com/googlefonts/manufacturing-consent-font) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/calamity.ttf b/public/calamity.ttf new file mode 100644 index 0000000..d4b2f66 Binary files /dev/null and b/public/calamity.ttf differ diff --git a/public/css/main.css b/public/css/main.css index c283fc5..83e9e8b 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.1.3 | 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)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-yellow-200:oklch(94.5% .129 101.54);--color-green-200:oklch(92.5% .084 155.995);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-200:oklch(91.7% .08 205.041);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-stone-300:oklch(86.9% .005 56.366);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-thin:100;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,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;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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.bottom-8{bottom:calc(var(--spacing)*8)}.-z-0{z-index:calc(0*-1)}.-z-1{z-index:calc(1*-1)}.-z-10{z-index:calc(10*-1)}.z-0{z-index:0}.z-1{z-index:1}.z-3{z-index:3}.z-40{z-index:40}.z-50{z-index:50}.float-left{float:left}.float-right{float:right}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-4{margin:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-6{height:calc(var(--spacing)*6)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-6{width:calc(var(--spacing)*6)}.w-22{width:calc(var(--spacing)*22)}.w-64{width:calc(var(--spacing)*64)}.w-\[2px\]{width:2px}.w-\[80\%\]{width:80%}.w-full{width:100%}.w-screen{width:100vw}.max-w-4xl{max-width:var(--container-4xl)}.max-w-none{max-width:none}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-x-3{--tw-rotate-x:rotateX(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-x-30{--tw-rotate-x:rotateX(30deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-y-3{--tw-rotate-y:rotateY(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-bounce{animation:var(--animate-bounce)}.cursor-context-menu{cursor:context-menu}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-center-safe{justify-content:safe center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-black{border-color:var(--color-black)}.border-gray-400{border-color:var(--color-gray-400)}.border-r-transparent{border-right-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-black{background-color:var(--color-black)}.bg-blue-300{background-color:var(--color-blue-300)}.bg-cyan-200{background-color:var(--color-cyan-200)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-sky-200{background-color:var(--color-sky-200)}.bg-white{background-color:var(--color-white)}.bg-\[radial-gradient\(circle\,rgba\(0\,0\,0\,0\)_0\%\,rgba\(0\,0\,0\,0\.5\)_70\%\,\#ffffff_100\%\)\,repeating-linear-gradient\(45deg\,\#000000\,\#000000_10px\,\#ffffff_10px\,\#ffffff_20px\)\]{background-image:radial-gradient(circle,#0000 0%,#00000080 70%,#fff 100%),repeating-linear-gradient(45deg,#000,#000 10px,#fff 10px 20px)}.bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#333_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#333 28px)}.bg-\[size\:100\%_28px\]{background-size:100% 28px}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-16{padding-block:calc(var(--spacing)*16)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.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)}.whitespace-nowrap{white-space:nowrap}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.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-\[0_4px_0_black\]{--tw-shadow:0 4px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_6px_-1px_rgb\(107\,114\,128\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#6b7280);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;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))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.transform-3d{transform-style:preserve-3d}.transform-flat{transform-style:flat}@media (hover:hover){.hover\:z-2:hover{z-index:2}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-120:hover{--tw-scale-x:120%;--tw-scale-y:120%;--tw-scale-z:120%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:rotate-z-2:hover{--tw-rotate-z:rotateZ(2deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-900:hover{color:var(--color-blue-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:shadow-\[0_8px_0_black\]:hover{--tw-shadow:0 8px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--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)}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%);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,)}}@media (min-width:40rem){.sm\:mb-0{margin-bottom:calc(var(--spacing)*0)}.sm\:flex{display:flex}.sm\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media (prefers-color-scheme:dark){.dark\:border-white{border-color:var(--color-white)}.dark\:bg-black{background-color:var(--color-black)}.dark\:bg-emerald-500{background-color:var(--color-emerald-500)}.dark\:bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#aaa_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#aaa 28px)}}}@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;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";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:"";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:"";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-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:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} \ No newline at end of file +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-200:oklch(91.7% .08 205.041);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-600:oklch(58.8% .158 241.966);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-slate-600:oklch(44.6% .043 257.281);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 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-black:#000;--color-white:#fff;--spacing:.25rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-snug:1.375;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,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;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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1{top:calc(var(--spacing)*1)}.top-1\/2{top:50%}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.bottom-8{bottom:calc(var(--spacing)*8)}.left-0{left:calc(var(--spacing)*0)}.-z-0{z-index:calc(0*-1)}.-z-1{z-index:calc(1*-1)}.-z-10{z-index:calc(10*-1)}.z-0{z-index:0}.z-1{z-index:1}.z-3{z-index:3}.z-4{z-index:4}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-99{z-index:99}.float-left{float:left}.float-right{float:right}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-2{margin:calc(var(--spacing)*2)}.m-4{margin:calc(var(--spacing)*4)}.-mx-4{margin-inline:calc(var(--spacing)*-4)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-18{margin-top:calc(var(--spacing)*18)}.mt-20{margin-top:calc(var(--spacing)*20)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-\[0\.4em\]{margin-right:.4em}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-6{height:calc(var(--spacing)*6)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-60{height:calc(var(--spacing)*60)}.h-100{height:calc(var(--spacing)*100)}.h-\[1em\]{height:1em}.h-\[5rem\]{height:5rem}.h-\[20\%\]{height:20%}.h-\[20REM\],.h-\[20rem\]{height:20rem}.h-\[80\%\]{height:80%}.h-\[100vh\]{height:100vh}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-6{width:calc(var(--spacing)*6)}.w-20{width:calc(var(--spacing)*20)}.w-22{width:calc(var(--spacing)*22)}.w-50{width:calc(var(--spacing)*50)}.w-60{width:calc(var(--spacing)*60)}.w-64{width:calc(var(--spacing)*64)}.w-70{width:calc(var(--spacing)*70)}.w-100{width:calc(var(--spacing)*100)}.w-2000{width:calc(var(--spacing)*2000)}.w-\[1\/2\]{width:1/2}.w-\[2px\]{width:2px}.w-\[50\%\]{width:50%}.w-\[50vw\]{width:50vw}.w-\[70\%\]{width:70%}.w-\[70vw\]{width:70vw}.w-\[80\%\]{width:80%}.w-\[100\%\]{width:100%}.w-\[100vw\]{width:100vw}.w-\[700vw\]{width:700vw}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-screen{width:100vw}.max-w-4xl{max-width:var(--container-4xl)}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-x-3{--tw-rotate-x:rotateX(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-x-30{--tw-rotate-x:rotateX(30deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-y-3{--tw-rotate-y:rotateY(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-\[fade_in\]{animation:fade in}.animate-bounce{animation:var(--animate-bounce)}.animate-spin{animation:var(--animate-spin)}.cursor-context-menu{cursor:context-menu}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-center-safe{justify-content:safe center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-full{border-bottom-right-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-black{border-color:var(--color-black)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-r-transparent{border-right-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-black{background-color:var(--color-black)}.bg-blue-300{background-color:var(--color-blue-300)}.bg-cyan-200{background-color:var(--color-cyan-200)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-sky-200{background-color:var(--color-sky-200)}.bg-sky-300{background-color:var(--color-sky-300)}.bg-sky-600{background-color:var(--color-sky-600)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-white{background-color:var(--color-white)}.bg-\[radial-gradient\(circle\,rgba\(0\,0\,0\,0\)_0\%\,rgba\(0\,0\,0\,0\.5\)_70\%\,\#ffffff_100\%\)\,repeating-linear-gradient\(45deg\,\#000000\,\#000000_10px\,\#ffffff_10px\,\#ffffff_20px\)\]{background-image:radial-gradient(circle,#0000 0%,#00000080 70%,#fff 100%),repeating-linear-gradient(45deg,#000,#000 10px,#fff 10px 20px)}.bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#333_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#333 28px)}.bg-\[size\:100\%_28px\]{background-size:100% 28px}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-\[0\.4em\]{padding-inline:.4em}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-15{padding-top:calc(var(--spacing)*15)}.pt-20{padding-top:calc(var(--spacing)*20)}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-700{color:var(--color-neutral-700)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-5{opacity:.05}.opacity-30{opacity:.3}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow-xl\/10{--tw-shadow-alpha:10%;--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,oklab(0% 0 0/.1)),0 8px 10px -6px var(--tw-shadow-color,oklab(0% 0 0/.1));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\/30{--tw-shadow-alpha:30%;--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,oklab(0% 0 0/.3)),0 8px 10px -6px var(--tw-shadow-color,oklab(0% 0 0/.3));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px 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-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-\[0_4px_0_black\]{--tw-shadow:0 4px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_6px_-1px_rgb\(107\,114\,128\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#6b7280);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.grayscale{--tw-grayscale:grayscale(100%);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-opacity-20{--tw-backdrop-opacity:opacity(20%);-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;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))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.transform-3d{transform-style:preserve-3d}.transform-flat{transform-style:flat}@media (hover:hover){.hover\:z-2:hover{z-index:2}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-120:hover{--tw-scale-x:120%;--tw-scale-y:120%;--tw-scale-z:120%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-150:hover{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-200:hover{--tw-scale-x:200%;--tw-scale-y:200%;--tw-scale-z:200%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:rotate-z-2:hover{--tw-rotate-z:rotateZ(2deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-900:hover{color:var(--color-blue-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:shadow-\[0_8px_0_black\]:hover{--tw-shadow:0 8px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--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)}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%);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,)}}.active\:z-0:active{z-index:0}@media (min-width:40rem){.sm\:mb-0{margin-bottom:calc(var(--spacing)*0)}.sm\:flex{display:flex}.sm\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}.ltr\:pl-4:where(:dir(ltr),[dir=ltr],[dir=ltr] *){padding-left:calc(var(--spacing)*4)}.rtl\:left-auto:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:auto}.rtl\:border-l-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){border-left-style:var(--tw-border-style);border-left-width:0}.rtl\:pr-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing)*2)}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing)*4)}.rtl\:pl-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing)*0)}@media (prefers-color-scheme:dark){.dark\:border-white{border-color:var(--color-white)}.dark\:bg-black{background-color:var(--color-black)}.dark\:bg-emerald-500{background-color:var(--color-emerald-500)}.dark\:bg-neutral-600{background-color:var(--color-neutral-600)}.dark\:bg-neutral-700{background-color:var(--color-neutral-700)}.dark\:bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#aaa_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#aaa 28px)}.dark\:text-neutral-200{color:var(--color-neutral-200)}.dark\:text-neutral-300{color:var(--color-neutral-300)}}}@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;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";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:"";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:"";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-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:"";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}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} \ No newline at end of file diff --git a/public/css/styles.css b/public/css/styles.css index 82cc789..f2a94a6 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -1,51 +1,130 @@ +/* Contenedor del artículo */ article { - display: flex; - flex-flow: column; - line-height: 1lh; - - background-color: whitesmoke; - - img{ - margin-top: 1lh; - } - - h1{ - font-size: 2rem; - margin-top:1lh; - text-align: center; - } - - h1::before{ - content:"# "; - opacity: 0.5; - } - - h2{ - font-size: 1.7rem; - margin-top:1lh; - text-align: left; - } - - h2::before{ - content:"## "; - opacity: 0.4; - } - - ol, pre { - margin-top:0.8rem; - } - - p{ - line-height:1lh; - margin-top:0.5lh; - } - - img{ - display: block; - margin-left: auto; - margin-right: auto; - padding: 0%; - box-shadow: 12px 12px 10px rgba(0, 0, 0, 0.5); - } + max-width: 800px; + padding: 1.5rem; + background: #fff; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); + font-family: "Inter", sans-serif; + color: #333; + line-height: 1.8; } +/* Títulos */ +article h1 { + font-size: 2.5rem; + font-weight: bold; + text-align: center; + margin-bottom: 1.5rem; + color: #222; +} + +article h2 { + font-size: 1.8rem; + font-weight: 600; + margin: 2rem 0 1rem; + color: #444; +} + +article h3 { + font-size: 1.4rem; + font-weight: 500; + margin: 1.5rem 0 1rem; + color: #555; +} + +/* Párrafos */ +article p { + margin: 1rem 0; + font-size: 1.1rem; +} + +/* Imágenes */ +article img { + width: 100%; + max-height: 400px; + object-fit: cover; + border-radius: 8px; + margin: 1.5rem 0; + display: block; +} + +/* Listas */ +article ul { + list-style: disc inside; + margin: 1rem 0; + padding-left: 1rem; +} + +article ol { + list-style: decimal inside; + margin: 1rem 0; + padding-left: 1rem; +} + +/* Citas */ +article blockquote { + font-style: italic; + border-left: 4px solid #4b9ce2; + background: #f4faff; + padding: 0.75rem 1rem; + margin: 1.5rem 0; +} + +/* Líneas divisorias */ +article hr { + border: none; + border-top: 2px solid #ddd; + margin: 2rem 0; +} + +/* Enlaces */ +article a { + color: #4b9ce2; + text-decoration: underline; + transition: color 0.2s ease; +} + +article a:hover { + color: #2563eb; +} + +/* Código en línea */ +article code { + background: #f3f4f6; + padding: 0.2rem 0.4rem; + border-radius: 4px; + font-family: monospace; + font-size: 0.95rem; +} + +/* Bloques de código */ +article pre { + background: #f3f4f6; + padding: 1rem; + border-radius: 8px; + overflow-x: auto; + font-family: monospace; + font-size: 1rem; + margin: 1.5rem 0; +} + +/* Secciones dentro del artículo */ +article section { + margin-top: 2rem; +} + +/* Responsive */ +@media (max-width: 600px) { + article h1 { + font-size: 2rem; + } + + article h2 { + font-size: 1.5rem; + } + + article h3 { + font-size: 1.2rem; + } +} diff --git a/public/index.html b/public/index.html index 30b1a88..0f16673 100644 --- a/public/index.html +++ b/public/index.html @@ -1,14 +1,13 @@ - + Blog Fede -
@@ -31,7 +30,7 @@ > CV @@ -187,8 +186,7 @@
-
- No image -
+ CoordKeeper
diff --git a/public/posts/anuncio-aoc-2023/index.html b/public/posts/anuncio-aoc-2023/index.html index 42a36cc..739d6b9 100644 --- a/public/posts/anuncio-aoc-2023/index.html +++ b/public/posts/anuncio-aoc-2023/index.html @@ -7,7 +7,6 @@ -
@@ -30,7 +29,7 @@ > CV @@ -150,7 +149,7 @@
-
+

¿Que es Advent of Code?

Son un grupo de puzzles de programacion presentados en forma de calendario que suelen ser utizados como:

    @@ -162,7 +161,7 @@

    Que tengo pensado

    Cerca de fin de año voy a hacer todos los dias de esa edicion de advent of code usando zig como un ejercicio para aprender ese lenguaje de programacion (aunque de forma básica).

    -
+ -
@@ -30,7 +29,7 @@ > CV @@ -150,7 +149,7 @@
-
+

El inicio de la catastrofe

En pocas palabras, Nunca Corten Un pacman -Syu.
Si utilizan arch sabrán que se pueden configurar ‘hooks’ antes y despues de las operaciones con el comando pacman, uno de estos era responsable de actualizar la entrada en el bootloader (uso systemd-boot btw). Al haber cortado sin querer este proceso me quedé sin entrada en el bootloader para linux y solo podia volver al menu de la UEFI.

@@ -160,7 +159,7 @@ Si utilizan arch sabrán que se pueden configurar ‘hooks&

Lo que termine haciendo

Gracias a que tenia una lectora de dvds con un dvd de Linux, pude utilizar mount y chroot para acceder a la particion con todos mis datos, una vez en este punto reinstalé el kernel (pacman -S linux) para que se activen los hooks que corresponden a actualizar la información sobre las opciones de arranque del bootloader.

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -152,14 +151,14 @@
-
+

Motivacion

He notado que en versiones actuales de minecraft han puesto mucha informacion en el menu de debug (el f3) lo que lo hace cada vez más hostil al jugador promedio intentar encontrar la linea con las coordenadas de donde esta y poderse comunicar con la gente en el mismo servidor, es obvio que esto es totalmente intencionado. Entiendo que el objetivo es que uses las herramientas dadas por los diseñadores del videojuego para poder localizarte. Pero yo necesito una forma de poder guardar las coordenadas localmente en mi computadora. aunque podria haber usado un block de notas para almacenarlas me decidí por hacer algo más inproductivo…. hacer una app de react.

Así que presento Coord-Keeper una app nefasta de React para guardar, compartir y importar Coordenas de minecraft. !!!11!!!

Esta disponible en Coord-keeper

su codigo fuente esta en mi instancia de gitea.

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -150,7 +149,7 @@
-
+

Instanciacion del SqlConnection

using (var connection = new SqlConnection(configuration.GetConnectionString("DefaultConnection")))
 

Eso genera un sql connection que va a existir hasta que salga del scope del programa.

@@ -218,7 +217,7 @@

" Si compila y anda, aprueba " ~Laureano

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -152,7 +151,7 @@
-
+

¿Que es el screen tear?

buenas, Si alguna vez instalaron un wm liviano en linux que no use wayland seguramente habrán notado que al momento de mover una ventana en el escritorio o ver un video sucede algo de este estilo.

Imagen sacada de google donde se demuestra el screen tear

@@ -197,7 +196,7 @@ EndSection

Demostracion de como queda

demo tear resuelto

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -150,7 +149,7 @@
-
+

Gimp

Hay varias formas de pasar una imagen a blanco y negro. yo prefiero la de usar Gimp con la opcion de Color > Desaturacion > Color a gama de grises. Pero voy a listar un par de métodos alternativos para obtener el ~mismo resultado.
Comparación

@@ -166,7 +165,7 @@

Existe esta pagina en la cual para generar la imagen en gama de grises solo hay que poner la imagen y darle a Aplicar.
Gama de grises demo

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -150,12 +149,12 @@
-
+

Hace ya un par de dias que estoy usando un servicio que implementa una api para trackear tu progreso en distintos juegos retro y no tan retro.

Uno de los que estoy jugando es Kirby's dream land 2
kirby

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -150,7 +149,7 @@
-
+

buenas

buenas Luego de sufrir bastante con el nginx y su Reverse Proxy, finalmente me decidí por poner la pagina del blog en el WebRoot y el gitea en un subfolder.

@@ -163,7 +162,7 @@ Luego de sufrir bastante con el nginx y su Reverse Proxy, finalmente me

Luraschi no me robes las llaves del ssh🙏.

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -152,7 +151,7 @@ -
+

¿Que es esto?

Estas son pequeñas updates que voy a estar haciendo sobre el proyecto final mio de “Ingenieria de Software” (asi se llama la materia). El cual consiste de un sistema de gestion de alquileres. Pensado para tener varios tipos de usuario como un propietario que carge las propiedades que desea publicar siempre y cuando este verificado que le pertenecen a él y un inquilino el cual podra efectuar busquedas de propiedades para alquilas, ver el estado de los alquileres, y pagar los alquileres que sean correpondientes.

Ahí arriba describi solo 2 o 3 de los casi 26 casos de uso que tengo descriptos. Además voy a reutilizar los conocimiento que adquirí haciendo el panel de control para la materia de base de datos.

@@ -175,7 +174,7 @@

Almacenarlos con un fileserver simple como Miniserve que es una excelente herramienta si bien para casos donde tenes un solo servidor pareceria masomenos pasable al final termina no siendo tan buena idea si llegas a necesitar algo minimanente distribuido o que maneje permisos.

Así fue como luego de preguntarle a un amigo y a chatgpt. me decidí por darle una oportunidad a Minio que es una alternativa “S3 pero hosteado en casa”. tengo mucho que aprender aún sobre s3 porque tengo solo una idea general de como funciona. Así que voy a dejar una update de esto en unos dias o semanas (no hay chances que sea consistente publicando acá) sobre como va esto. bye.

-
+ -
@@ -30,7 +29,7 @@ > CV @@ -150,7 +149,7 @@ -
+

¿Que es?

Es un proceso de evaluado, en el cual se reemplazan placeholders en string por valores, en nuestro caso, de variables en momento de ejecución.

Sintaxis

@@ -163,7 +162,7 @@ Console.WriteLine($"Vendí {manzanas + bananas} frutas");

Basicamente son plantillas.

-
+ + + + + + Gestor de Stock + + + + + +
+ + + + + + + + + + + + + + + + + + +
+
Gestor de Stock
+ +
+
+
+

+ + o + +

+
+
+
+ + +
+
.
+
+ +
+
.
+ + + + +
+
+
+
+

+ + o + +

+
+
+
+ +
+

Este sistema de gestión de inventario está desarrollado en C# utilizando Windows Forms. La aplicación permite administrar eficientemente el stock de productos, registrar ventas, gestionar pedidos a proveedores y verificar remitos de entrega.

+

Características Principales

+

Gestión de Productos

+
    +
  • Alta, baja y modificación de productos
  • +
  • Categorización de inventario
  • +
  • Control de stock mínimo y máximo
  • +
  • Alertas de stock bajo
  • +
+

Registro de Ventas

+
    +
  • Generación de facturas
  • +
  • Historial de ventas
  • +
  • Seguimiento de productos vendidos
  • +
  • Estadísticas de ventas
  • +
+

Pedidos a Proveedores

+
    +
  • Creación automática de órdenes de compra
  • +
  • Seguimiento de pedidos pendientes
  • +
  • Historial de pedidos
  • +
+

Verificación de Remitos

+
    +
  • Control de recepción de mercadería
  • +
  • Validación de cantidades y productos
  • +
  • Registro de discrepancias
  • +
  • Alertas de productos faltantes
  • +
  • Conformidad de recepción
  • +
+

Tecnologías Utilizadas

+
    +
  • C# (.NET Framework)
  • +
  • Windows Forms
  • +
  • SQL Server (Base de datos)
  • +
  • Entity Framework
  • +
+

Capturas de Pantalla (WIP)

+

(Aquí se insertarían capturas de las principales pantallas del sistema)

+

Requisitos del Sistema

+
    +
  • Windows 7 o superior
  • +
  • .NET core 6
  • +
  • 4 GB de RAM (recomendado) //podrias con menos pero no se si windows puede bootear en menos de 4gb
  • +
+

Contacto

+

Para más información sobre este sistema de gestión de stock, contácteme a través de:

+ +
+
+
+
+

.

+
+ + +
+
+
+ © 2025 Federico Polidoro +
+ + diff --git a/public/proyectos/coordkeeper/1.gif b/public/proyectos/coordkeeper/1.gif new file mode 100644 index 0000000..230e307 Binary files /dev/null and b/public/proyectos/coordkeeper/1.gif differ diff --git a/public/proyectos/coordkeeper/1.png b/public/proyectos/coordkeeper/1.png new file mode 100644 index 0000000..8507031 Binary files /dev/null and b/public/proyectos/coordkeeper/1.png differ diff --git a/public/proyectos/coordkeeper/2.png b/public/proyectos/coordkeeper/2.png new file mode 100644 index 0000000..2473499 Binary files /dev/null and b/public/proyectos/coordkeeper/2.png differ diff --git a/public/proyectos/coordkeeper/Screen Shot 2025-07-04 at 20.40.03-fullpage.png b/public/proyectos/coordkeeper/Screen Shot 2025-07-04 at 20.40.03-fullpage.png new file mode 100644 index 0000000..8507031 Binary files /dev/null and b/public/proyectos/coordkeeper/Screen Shot 2025-07-04 at 20.40.03-fullpage.png differ diff --git a/public/proyectos/coordkeeper/index.html b/public/proyectos/coordkeeper/index.html new file mode 100644 index 0000000..b51469e --- /dev/null +++ b/public/proyectos/coordkeeper/index.html @@ -0,0 +1,270 @@ + + + + + + CoordKeeper + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
CoordKeeper
+ +
+
+
+

+ + o + +

+
+
+
+ + +
+
.
+
+ + + + + + + +
+
.
+ + + + + + + + + + +
+
+
+
+

+ + o + +

+
+
+
+ +
+

es una aplicación web desarrollada con React diseñada específicamente para jugadores de Minecraft. Esta herramienta permite a los usuarios almacenar, organizar y gestionar fácilmente las coordenadas de ubicaciones importantes dentro del juego.

+

Características

+
    +
  • Almacenamiento de coordenadas X, Y, Z de lugares importantes
  • +
  • Organización por Dimensiones
  • +
  • Interfaz intuitiva y fácil de usar
  • +
  • Acceso rápido a tus coordenadas guardadas
  • +
+

Ya no tendrás que depender de notas dispersas o capturas de pantalla para recordar dónde encontraste ese templo submarino o aquella cueva de diamantes. CoordKeeper mantiene toda esta información organizada en un solo lugar.

+

Visita el repositorio para más información o para contribuir al proyecto.

+
+
+
+
+

.

+
+ + +
+
+
+ © 2025 Federico Polidoro +
+ + diff --git a/public/proyectos/coordkeeper/index.png b/public/proyectos/coordkeeper/index.png new file mode 100644 index 0000000..c51acc6 Binary files /dev/null and b/public/proyectos/coordkeeper/index.png differ diff --git a/public/proyectos/paneldb/index.html b/public/proyectos/paneldb/index.html new file mode 100644 index 0000000..2eb95cf --- /dev/null +++ b/public/proyectos/paneldb/index.html @@ -0,0 +1,266 @@ + + + + + + Panel Web + + + + + +
+ + + + + + + + + + + + + + + + + + +
+
Panel Web
+ +
+
+
+

+ + o + +

+
+
+
+ + +
+
.
+
+ +
+
.
+ + + + +
+
+
+
+

+ + o + +

+
+
+
+ +
+

Este panel web es una herramienta de visualización y análisis de datos para una cadena hotelera, desarrollado como trabajo final para el curso de Base de Datos Aplicada. El sistema permite explorar métricas clave de rendimiento a través de una estructura jerárquica de tres niveles.

+

Arquitectura Técnica

+

Backend

+
    +
  • ASP.NET Core 7
  • +
  • Entity Framework Core para acceso a datos
  • +
  • API RESTful para comunicación con el frontend
  • +
  • Autenticación JWT para seguridad
  • +
+

Frontend

+
    +
  • React (18.x)
  • +
  • Material UI para componentes de interfaz
  • +
  • ChartJS para visualización de datos
  • +
  • React Router para navegación entre secciones
  • +
+

Estructura de Navegación (Drilling)

+

El panel implementa un sistema de navegación jerárquica de tres niveles:

+

Nivel 1: Cadena Hotelera

+
    +
  • Nombre de la cadena hotelera
  • +
+

Nivel 2: Locación/Hotel Específico

+
    +
  • Datos detallados de cada propiedad
  • +
+

Nivel 3: Estadísticas Detalladas

+
    +
  • Análisis profundo de datos operativos
  • +
  • Reportes especializados
  • +
+

Características Principales

+
    +
  • Dashboards Interactivos: Gráficos dinámicos con ChartJS para visualización intuitiva de datos.
  • +
  • Filtros Avanzados: Capacidad de filtrar datos por fecha, categoría de habitación, y segmento de cliente.
  • +
  • Alertas Personalizables: Notificaciones cuando métricas clave superan umbrales definidos.
  • +
  • Responsive Design: Adaptable a dispositivos móviles y tablets para monitoreo en movimiento.
  • +
+

Modelo de Datos

+

El sistema se basa en un esquema relacional que incluye las siguientes entidades principales:

+
    +
  • Cadenas Hoteleras
  • +
  • Hoteles/Propiedades
  • +
  • Habitaciones
  • +
  • Reservas
  • +
  • Clientes
  • +
  • Servicios
  • +
  • Facturación
  • +
+

Capturas de Pantalla (WIP)

+

[Aquí se incluirían capturas de pantalla del panel mostrando los tres niveles de navegación y diferentes visualizaciones]

+

Implementación

+

El proyecto ha sido desarrollado siguiendo una metodología ágil, con énfasis en:

+
    +
  • Normalización de la base de datos
  • +
  • Optimización de consultas para grandes volúmenes de datos
  • +
  • Implementación de procedimientos almacenados para operaciones complejas
  • +
  • Medidas de seguridad para protección de datos sensibles
  • +
+

Conclusiones

+

Este panel web demuestra la aplicación práctica de conceptos avanzados de bases de datos relacionales en un entorno empresarial del sector hotelero, proporcionando una herramienta valiosa para la toma de decisiones basada en datos.

+
+
+
+
+

.

+
+ + +
+
+
+ © 2025 Federico Polidoro +
+ + diff --git a/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.content b/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.content index c707666..e7ad398 100644 --- a/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.content +++ b/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.content @@ -1,4 +1,4 @@ -/*!tailwindcss v4.1.3 | MIT License | https://tailwindcss.com*/@layer properties;.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.-z-0{z-index:calc(0 * -1)}.-z-1{z-index:calc(1 * -1)}.-z-10{z-index:calc(10 * -1)}.z-0{z-index:0}.z-1{z-index:1}.z-3{z-index:3}.z-40{z-index:40}.z-50{z-index:50}.float-left{float:left}.float-right{float:right}.container{width:100%}.mx-auto{margin-inline:auto}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-\[2px\]{width:2px}.w-\[80\%\]{width:80%}.w-full{width:100%}.w-screen{width:100vw}.max-w-none{max-width:none}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-x-3{--tw-rotate-x:rotateX(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-x-30{--tw-rotate-x:rotateX(30deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-y-3{--tw-rotate-y:rotateY(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.cursor-context-menu{cursor:context-menu}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-center-safe{justify-content:safe center}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-t-full{border-top-left-radius:calc(infinity * 1px);border-top-right-radius:calc(infinity * 1px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-r-transparent{border-right-color:transparent}.border-l-transparent{border-left-color:transparent}.bg-\[radial-gradient\(circle\,rgba\(0\,0\,0\,0\)_0\%\,rgba\(0\,0\,0\,0\.5\)_70\%\,\#ffffff_100\%\)\,repeating-linear-gradient\(45deg\,\#000000\,\#000000_10px\,\#ffffff_10px\,\#ffffff_20px\)\]{background-image:radial-gradient(circle,transparent 0%,rgba(0,0,0,.5) 70%,#ffffff 100%),repeating-linear-gradient(45deg,#000000,#000000 10px,#ffffff 10px,#ffffff 20px)}.bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#333_28px\)\]{background-image:repeating-linear-gradient(transparent,transparent 27px,#333 28px)}.bg-\[size\:100\%_28px\]{background-size:100% 28px}.object-cover{-o-object-fit:cover;object-fit:cover}.text-center{text-align:center}.leading-none{--tw-leading:1;line-height:1}.whitespace-nowrap{white-space:nowrap}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.shadow-\[0_4px_0_black\]{--tw-shadow:0 4px 0 var(--tw-shadow-color, black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_6px_-1px_rgb\(107\,114\,128\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color, rgb(107,114,128));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.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,ease);transition-duration:var(--tw-duration,0s)}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:100ms;transition-duration:100ms}.duration-200{--tw-duration:200ms;transition-duration:200ms}.duration-300{--tw-duration:300ms;transition-duration:300ms}.duration-1000{--tw-duration:1000ms;transition-duration:1000ms}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.transform-3d{transform-style:preserve-3d}.transform-flat{transform-style:flat}.hover\:z-2{&:hover { @media (hover:hover) { z-index:2; } }}.hover\:scale-105{&:hover { @media (hover:hover) { --tw-scale-x:105%; --tw-scale-y:105%; --tw-scale-z:105%; scale:var(--tw-scale-x) var(--tw-scale-y); } }}.hover\:scale-120{&:hover { @media (hover:hover) { --tw-scale-x:120%; --tw-scale-y:120%; --tw-scale-z:120%; scale:var(--tw-scale-x) var(--tw-scale-y); } }}.hover\:rotate-z-2{&:hover { @media (hover:hover) { --tw-rotate-z:rotateZ(2deg); transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y); } }}.hover\:shadow-\[0_8px_0_black\]{&:hover { @media (hover:hover) { --tw-shadow:0 8px 0 var(--tw-shadow-color,black); box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); } }}.hover\:grayscale-0{&:hover { @media (hover:hover) { --tw-grayscale:grayscale(0%); 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,); } }}.dark\:bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#aaa_28px\)\]{@media(prefers-color-scheme:dark){background-image: repeating-linear-gradient(transparent,transparent 27px,#aaa 28px);}}@property --tw-translate-x{syntax: "*"; +/*!tailwindcss v4.1.3 | MIT License | https://tailwindcss.com*/@layer properties;.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.-z-0{z-index:calc(0 * -1)}.-z-1{z-index:calc(1 * -1)}.-z-10{z-index:calc(10 * -1)}.z-0{z-index:0}.z-1{z-index:1}.z-3{z-index:3}.z-4{z-index:4}.z-40{z-index:40}.z-50{z-index:50}.z-99{z-index:99}.float-left{float:left}.float-right{float:right}.container{width:100%}.mx-auto{margin-inline:auto}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-\[20rem\]{height:20rem}.h-\[80\%\]{height:80%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-\[2px\]{width:2px}.w-\[50\%\]{width:50%}.w-\[80\%\]{width:80%}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-screen{width:100vw}.max-w-none{max-width:none}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-x-3{--tw-rotate-x:rotateX(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-x-30{--tw-rotate-x:rotateX(30deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-y-3{--tw-rotate-y:rotateY(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.cursor-context-menu{cursor:context-menu}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-center-safe{justify-content:safe center}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-t-full{border-top-left-radius:calc(infinity * 1px);border-top-right-radius:calc(infinity * 1px)}.rounded-b-full{border-bottom-right-radius:calc(infinity * 1px);border-bottom-left-radius:calc(infinity * 1px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-r-transparent{border-right-color:transparent}.border-l-transparent{border-left-color:transparent}.bg-\[radial-gradient\(circle\,rgba\(0\,0\,0\,0\)_0\%\,rgba\(0\,0\,0\,0\.5\)_70\%\,\#ffffff_100\%\)\,repeating-linear-gradient\(45deg\,\#000000\,\#000000_10px\,\#ffffff_10px\,\#ffffff_20px\)\]{background-image:radial-gradient(circle,transparent 0%,rgba(0,0,0,.5) 70%,#ffffff 100%),repeating-linear-gradient(45deg,#000000,#000000 10px,#ffffff 10px,#ffffff 20px)}.bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#333_28px\)\]{background-image:repeating-linear-gradient(transparent,transparent 27px,#333 28px)}.bg-\[size\:100\%_28px\]{background-size:100% 28px}.object-cover{-o-object-fit:cover;object-fit:cover}.text-center{text-align:center}.leading-none{--tw-leading:1;line-height:1}.whitespace-nowrap{white-space:nowrap}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-30{opacity:30%}.opacity-100{opacity:100%}.shadow-\[0_4px_0_black\]{--tw-shadow:0 4px 0 var(--tw-shadow-color, black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_6px_-1px_rgb\(107\,114\,128\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color, rgb(107,114,128));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.grayscale{--tw-grayscale:grayscale(100%);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-opacity-20{--tw-backdrop-opacity:opacity(20%);-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;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.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,ease);transition-duration:var(--tw-duration,0s)}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:100ms;transition-duration:100ms}.duration-200{--tw-duration:200ms;transition-duration:200ms}.duration-300{--tw-duration:300ms;transition-duration:300ms}.duration-1000{--tw-duration:1000ms;transition-duration:1000ms}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.transform-3d{transform-style:preserve-3d}.transform-flat{transform-style:flat}.hover\:z-2{&:hover { @media (hover:hover) { z-index:2; } }}.hover\:scale-105{&:hover { @media (hover:hover) { --tw-scale-x:105%; --tw-scale-y:105%; --tw-scale-z:105%; scale:var(--tw-scale-x) var(--tw-scale-y); } }}.hover\:scale-120{&:hover { @media (hover:hover) { --tw-scale-x:120%; --tw-scale-y:120%; --tw-scale-z:120%; scale:var(--tw-scale-x) var(--tw-scale-y); } }}.hover\:rotate-z-2{&:hover { @media (hover:hover) { --tw-rotate-z:rotateZ(2deg); transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y); } }}.hover\:shadow-\[0_8px_0_black\]{&:hover { @media (hover:hover) { --tw-shadow:0 8px 0 var(--tw-shadow-color,black); box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); } }}.hover\:grayscale-0{&:hover { @media (hover:hover) { --tw-grayscale:grayscale(0%); 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,); } }}.active\:z-0{&:active { z-index:0; }}.dark\:bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#aaa_28px\)\]{@media(prefers-color-scheme:dark){background-image: repeating-linear-gradient(transparent,transparent 27px,#aaa 28px);}}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-y{syntax: "*"; @@ -91,6 +91,24 @@ 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; }@property --tw-ease{syntax: "*"; @@ -143,6 +161,15 @@ --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-ease: initial; --tw-scale-x: 1; diff --git a/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.json b/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.json index 232c41a..3720a02 100644 --- a/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.json +++ b/resources/_gen/assets/css/main.css_5d1ae7b26729580b7c0ef1c83fb083f3.json @@ -1 +1 @@ -{"Target":"/css/main.min.c67feb5b0ffe441a09f6855db3c483315a9033f837475b2fecdcd272c1306b4f.css","MediaType":"text/css","Data":{"Integrity":"sha256-xn/rWw/+RBoJ9oVds8SDMVqQM/g3R1sv7NzScsEwa08="}} \ No newline at end of file +{"Target":"/css/main.min.fc26f300cd341b81e5fb5fc80ed743e4a855fd78bd6073ba3fda6ee2b7afbfba.css","MediaType":"text/css","Data":{"Integrity":"sha256-/CbzAM00G4Hl+1/IDtdD5KhV/Xi9YHO6P9pu4revv7o="}} \ No newline at end of file diff --git a/static/ManufacturingConsent-Regular.ttf b/static/ManufacturingConsent-Regular.ttf new file mode 100644 index 0000000..28be09b Binary files /dev/null and b/static/ManufacturingConsent-Regular.ttf differ diff --git a/static/calamity.ttf b/static/calamity.ttf new file mode 100644 index 0000000..d4b2f66 Binary files /dev/null and b/static/calamity.ttf differ diff --git a/static/css/main.css b/static/css/main.css index c283fc5..83e9e8b 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.1.3 | 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)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-yellow-200:oklch(94.5% .129 101.54);--color-green-200:oklch(92.5% .084 155.995);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-200:oklch(91.7% .08 205.041);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-stone-300:oklch(86.9% .005 56.366);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-thin:100;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,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;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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.bottom-8{bottom:calc(var(--spacing)*8)}.-z-0{z-index:calc(0*-1)}.-z-1{z-index:calc(1*-1)}.-z-10{z-index:calc(10*-1)}.z-0{z-index:0}.z-1{z-index:1}.z-3{z-index:3}.z-40{z-index:40}.z-50{z-index:50}.float-left{float:left}.float-right{float:right}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-4{margin:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-6{height:calc(var(--spacing)*6)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-6{width:calc(var(--spacing)*6)}.w-22{width:calc(var(--spacing)*22)}.w-64{width:calc(var(--spacing)*64)}.w-\[2px\]{width:2px}.w-\[80\%\]{width:80%}.w-full{width:100%}.w-screen{width:100vw}.max-w-4xl{max-width:var(--container-4xl)}.max-w-none{max-width:none}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-x-3{--tw-rotate-x:rotateX(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-x-30{--tw-rotate-x:rotateX(30deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-y-3{--tw-rotate-y:rotateY(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-bounce{animation:var(--animate-bounce)}.cursor-context-menu{cursor:context-menu}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-center-safe{justify-content:safe center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-black{border-color:var(--color-black)}.border-gray-400{border-color:var(--color-gray-400)}.border-r-transparent{border-right-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-black{background-color:var(--color-black)}.bg-blue-300{background-color:var(--color-blue-300)}.bg-cyan-200{background-color:var(--color-cyan-200)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-sky-200{background-color:var(--color-sky-200)}.bg-white{background-color:var(--color-white)}.bg-\[radial-gradient\(circle\,rgba\(0\,0\,0\,0\)_0\%\,rgba\(0\,0\,0\,0\.5\)_70\%\,\#ffffff_100\%\)\,repeating-linear-gradient\(45deg\,\#000000\,\#000000_10px\,\#ffffff_10px\,\#ffffff_20px\)\]{background-image:radial-gradient(circle,#0000 0%,#00000080 70%,#fff 100%),repeating-linear-gradient(45deg,#000,#000 10px,#fff 10px 20px)}.bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#333_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#333 28px)}.bg-\[size\:100\%_28px\]{background-size:100% 28px}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-16{padding-block:calc(var(--spacing)*16)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.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)}.whitespace-nowrap{white-space:nowrap}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.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-\[0_4px_0_black\]{--tw-shadow:0 4px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_6px_-1px_rgb\(107\,114\,128\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#6b7280);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;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))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.transform-3d{transform-style:preserve-3d}.transform-flat{transform-style:flat}@media (hover:hover){.hover\:z-2:hover{z-index:2}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-120:hover{--tw-scale-x:120%;--tw-scale-y:120%;--tw-scale-z:120%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:rotate-z-2:hover{--tw-rotate-z:rotateZ(2deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-900:hover{color:var(--color-blue-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:shadow-\[0_8px_0_black\]:hover{--tw-shadow:0 8px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--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)}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%);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,)}}@media (min-width:40rem){.sm\:mb-0{margin-bottom:calc(var(--spacing)*0)}.sm\:flex{display:flex}.sm\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media (prefers-color-scheme:dark){.dark\:border-white{border-color:var(--color-white)}.dark\:bg-black{background-color:var(--color-black)}.dark\:bg-emerald-500{background-color:var(--color-emerald-500)}.dark\:bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#aaa_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#aaa 28px)}}}@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;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";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:"";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:"";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-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:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} \ No newline at end of file +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-200:oklch(91.7% .08 205.041);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-600:oklch(58.8% .158 241.966);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-slate-600:oklch(44.6% .043 257.281);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 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-black:#000;--color-white:#fff;--spacing:.25rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-snug:1.375;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,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;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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1{top:calc(var(--spacing)*1)}.top-1\/2{top:50%}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.bottom-8{bottom:calc(var(--spacing)*8)}.left-0{left:calc(var(--spacing)*0)}.-z-0{z-index:calc(0*-1)}.-z-1{z-index:calc(1*-1)}.-z-10{z-index:calc(10*-1)}.z-0{z-index:0}.z-1{z-index:1}.z-3{z-index:3}.z-4{z-index:4}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-99{z-index:99}.float-left{float:left}.float-right{float:right}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-2{margin:calc(var(--spacing)*2)}.m-4{margin:calc(var(--spacing)*4)}.-mx-4{margin-inline:calc(var(--spacing)*-4)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-18{margin-top:calc(var(--spacing)*18)}.mt-20{margin-top:calc(var(--spacing)*20)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-\[0\.4em\]{margin-right:.4em}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-6{height:calc(var(--spacing)*6)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-60{height:calc(var(--spacing)*60)}.h-100{height:calc(var(--spacing)*100)}.h-\[1em\]{height:1em}.h-\[5rem\]{height:5rem}.h-\[20\%\]{height:20%}.h-\[20REM\],.h-\[20rem\]{height:20rem}.h-\[80\%\]{height:80%}.h-\[100vh\]{height:100vh}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-6{width:calc(var(--spacing)*6)}.w-20{width:calc(var(--spacing)*20)}.w-22{width:calc(var(--spacing)*22)}.w-50{width:calc(var(--spacing)*50)}.w-60{width:calc(var(--spacing)*60)}.w-64{width:calc(var(--spacing)*64)}.w-70{width:calc(var(--spacing)*70)}.w-100{width:calc(var(--spacing)*100)}.w-2000{width:calc(var(--spacing)*2000)}.w-\[1\/2\]{width:1/2}.w-\[2px\]{width:2px}.w-\[50\%\]{width:50%}.w-\[50vw\]{width:50vw}.w-\[70\%\]{width:70%}.w-\[70vw\]{width:70vw}.w-\[80\%\]{width:80%}.w-\[100\%\]{width:100%}.w-\[100vw\]{width:100vw}.w-\[700vw\]{width:700vw}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-screen{width:100vw}.max-w-4xl{max-width:var(--container-4xl)}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-x-3{--tw-rotate-x:rotateX(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-x-30{--tw-rotate-x:rotateX(30deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.rotate-y-3{--tw-rotate-y:rotateY(3deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-\[fade_in\]{animation:fade in}.animate-bounce{animation:var(--animate-bounce)}.animate-spin{animation:var(--animate-spin)}.cursor-context-menu{cursor:context-menu}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-center-safe{justify-content:safe center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-full{border-bottom-right-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-black{border-color:var(--color-black)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-r-transparent{border-right-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-black{background-color:var(--color-black)}.bg-blue-300{background-color:var(--color-blue-300)}.bg-cyan-200{background-color:var(--color-cyan-200)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-sky-200{background-color:var(--color-sky-200)}.bg-sky-300{background-color:var(--color-sky-300)}.bg-sky-600{background-color:var(--color-sky-600)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-white{background-color:var(--color-white)}.bg-\[radial-gradient\(circle\,rgba\(0\,0\,0\,0\)_0\%\,rgba\(0\,0\,0\,0\.5\)_70\%\,\#ffffff_100\%\)\,repeating-linear-gradient\(45deg\,\#000000\,\#000000_10px\,\#ffffff_10px\,\#ffffff_20px\)\]{background-image:radial-gradient(circle,#0000 0%,#00000080 70%,#fff 100%),repeating-linear-gradient(45deg,#000,#000 10px,#fff 10px 20px)}.bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#333_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#333 28px)}.bg-\[size\:100\%_28px\]{background-size:100% 28px}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-\[0\.4em\]{padding-inline:.4em}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-15{padding-top:calc(var(--spacing)*15)}.pt-20{padding-top:calc(var(--spacing)*20)}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-700{color:var(--color-neutral-700)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-5{opacity:.05}.opacity-30{opacity:.3}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow-xl\/10{--tw-shadow-alpha:10%;--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,oklab(0% 0 0/.1)),0 8px 10px -6px var(--tw-shadow-color,oklab(0% 0 0/.1));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\/30{--tw-shadow-alpha:30%;--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,oklab(0% 0 0/.3)),0 8px 10px -6px var(--tw-shadow-color,oklab(0% 0 0/.3));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px 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-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-\[0_4px_0_black\]{--tw-shadow:0 4px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_6px_-1px_rgb\(107\,114\,128\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#6b7280);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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)}.grayscale{--tw-grayscale:grayscale(100%);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-opacity-20{--tw-backdrop-opacity:opacity(20%);-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;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))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.transform-3d{transform-style:preserve-3d}.transform-flat{transform-style:flat}@media (hover:hover){.hover\:z-2:hover{z-index:2}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-2:hover{--tw-translate-y:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-120:hover{--tw-scale-x:120%;--tw-scale-y:120%;--tw-scale-z:120%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-150:hover{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-200:hover{--tw-scale-x:200%;--tw-scale-y:200%;--tw-scale-z:200%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:rotate-z-2:hover{--tw-rotate-z:rotateZ(2deg);transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-900:hover{color:var(--color-blue-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:shadow-\[0_8px_0_black\]:hover{--tw-shadow:0 8px 0 var(--tw-shadow-color,black);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--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)}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%);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,)}}.active\:z-0:active{z-index:0}@media (min-width:40rem){.sm\:mb-0{margin-bottom:calc(var(--spacing)*0)}.sm\:flex{display:flex}.sm\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}.ltr\:pl-4:where(:dir(ltr),[dir=ltr],[dir=ltr] *){padding-left:calc(var(--spacing)*4)}.rtl\:left-auto:where(:dir(rtl),[dir=rtl],[dir=rtl] *){left:auto}.rtl\:border-l-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){border-left-style:var(--tw-border-style);border-left-width:0}.rtl\:pr-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing)*2)}.rtl\:pr-4:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-right:calc(var(--spacing)*4)}.rtl\:pl-0:where(:dir(rtl),[dir=rtl],[dir=rtl] *){padding-left:calc(var(--spacing)*0)}@media (prefers-color-scheme:dark){.dark\:border-white{border-color:var(--color-white)}.dark\:bg-black{background-color:var(--color-black)}.dark\:bg-emerald-500{background-color:var(--color-emerald-500)}.dark\:bg-neutral-600{background-color:var(--color-neutral-600)}.dark\:bg-neutral-700{background-color:var(--color-neutral-700)}.dark\:bg-\[repeating-linear-gradient\(transparent\,transparent_27px\,\#aaa_28px\)\]{background-image:repeating-linear-gradient(#0000,#0000 27px,#aaa 28px)}.dark\:text-neutral-200{color:var(--color-neutral-200)}.dark\:text-neutral-300{color:var(--color-neutral-300)}}}@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;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";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:"";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:"";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-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:"";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}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} \ No newline at end of file diff --git a/static/css/styles.css b/static/css/styles.css index 82cc789..f2a94a6 100644 --- a/static/css/styles.css +++ b/static/css/styles.css @@ -1,51 +1,130 @@ +/* Contenedor del artículo */ article { - display: flex; - flex-flow: column; - line-height: 1lh; - - background-color: whitesmoke; - - img{ - margin-top: 1lh; - } - - h1{ - font-size: 2rem; - margin-top:1lh; - text-align: center; - } - - h1::before{ - content:"# "; - opacity: 0.5; - } - - h2{ - font-size: 1.7rem; - margin-top:1lh; - text-align: left; - } - - h2::before{ - content:"## "; - opacity: 0.4; - } - - ol, pre { - margin-top:0.8rem; - } - - p{ - line-height:1lh; - margin-top:0.5lh; - } - - img{ - display: block; - margin-left: auto; - margin-right: auto; - padding: 0%; - box-shadow: 12px 12px 10px rgba(0, 0, 0, 0.5); - } + max-width: 800px; + padding: 1.5rem; + background: #fff; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); + font-family: "Inter", sans-serif; + color: #333; + line-height: 1.8; } +/* Títulos */ +article h1 { + font-size: 2.5rem; + font-weight: bold; + text-align: center; + margin-bottom: 1.5rem; + color: #222; +} + +article h2 { + font-size: 1.8rem; + font-weight: 600; + margin: 2rem 0 1rem; + color: #444; +} + +article h3 { + font-size: 1.4rem; + font-weight: 500; + margin: 1.5rem 0 1rem; + color: #555; +} + +/* Párrafos */ +article p { + margin: 1rem 0; + font-size: 1.1rem; +} + +/* Imágenes */ +article img { + width: 100%; + max-height: 400px; + object-fit: cover; + border-radius: 8px; + margin: 1.5rem 0; + display: block; +} + +/* Listas */ +article ul { + list-style: disc inside; + margin: 1rem 0; + padding-left: 1rem; +} + +article ol { + list-style: decimal inside; + margin: 1rem 0; + padding-left: 1rem; +} + +/* Citas */ +article blockquote { + font-style: italic; + border-left: 4px solid #4b9ce2; + background: #f4faff; + padding: 0.75rem 1rem; + margin: 1.5rem 0; +} + +/* Líneas divisorias */ +article hr { + border: none; + border-top: 2px solid #ddd; + margin: 2rem 0; +} + +/* Enlaces */ +article a { + color: #4b9ce2; + text-decoration: underline; + transition: color 0.2s ease; +} + +article a:hover { + color: #2563eb; +} + +/* Código en línea */ +article code { + background: #f3f4f6; + padding: 0.2rem 0.4rem; + border-radius: 4px; + font-family: monospace; + font-size: 0.95rem; +} + +/* Bloques de código */ +article pre { + background: #f3f4f6; + padding: 1rem; + border-radius: 8px; + overflow-x: auto; + font-family: monospace; + font-size: 1rem; + margin: 1.5rem 0; +} + +/* Secciones dentro del artículo */ +article section { + margin-top: 2rem; +} + +/* Responsive */ +@media (max-width: 600px) { + article h1 { + font-size: 2rem; + } + + article h2 { + font-size: 1.5rem; + } + + article h3 { + font-size: 1.2rem; + } +}