diff --git a/README.md b/README.md index e9cd259..c89080c 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,3 @@ Event Ticketing of the future Events is built with [Deno Deploy](https://deno.com/deploy) support in mind but you should be able to selfhost this anywhere, just copy `.env.example` to `.env` and update the variables. If you're selfhosting then KV requires an extra step with either creating a `db` folder for the database to be stored in or setting `DENO_DEPLOYMENT_ID` to anything for it to use the global version. - diff --git a/deno.jsonc b/deno.jsonc index f57ab6f..c6f9b5f 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -1,19 +1,19 @@ { "lock": false, + "nodeModulesDir": true, "tasks": { "check": "deno fmt --check && deno lint && deno check **/*.ts && deno check **/*.tsx", "fmt": "npx prettier . --write", "start": "deno run -A --unstable --watch=static/,routes/ dev.ts", "build": "deno run -A --unstable dev.ts build", - "preview": "deno run -A main.ts", - "update": "deno run --unstable -A -r https://fresh.deno.dev/update .", - "css": "npx tailwindcss -i ./static/styles.css -o ./static/output.css --watch --minify" + "preview": "deno run --unstable -A main.ts", + "update": "deno run --unstable -A -r https://fresh.deno.dev/update ." }, "lint": { "rules": { "tags": ["fresh", "recommended"] } }, "imports": { - "$fresh/": "https://deno.land/x/fresh@1.5.4/", - "preact": "https://esm.sh/preact@10.18.1", - "preact/": "https://esm.sh/preact@10.18.1/", + "$fresh/": "https://deno.land/x/fresh@1.6.0/", + "preact": "https://esm.sh/preact@10.19.2", + "preact/": "https://esm.sh/preact@10.19.2/", "preact-render-to-string": "https://esm.sh/*preact-render-to-string@6.2.2", "@preact/signals": "https://esm.sh/*@preact/signals@1.2.1", "@preact/signals-core": "https://esm.sh/*@preact/signals-core@1.5.0", @@ -22,9 +22,11 @@ "$tabler/": "https://deno.land/x/tabler_icons_tsx@0.0.5/tsx/", "yup": "https://esm.sh/yup@1.2.0", "imagekit": "npm:imagekit@4.1.3", - "barcode-polyfill": "https://esm.sh/barcode-detector@2.0.3" + "barcode-polyfill": "https://esm.sh/barcode-detector@2.0.3", + "tailwindcss": "npm:tailwindcss@3.3.5", + "tailwindcss/": "npm:/tailwindcss@3.3.5/", + "tailwindcss/plugin": "npm:/tailwindcss@3.3.5/plugin.js" }, "compilerOptions": { "jsx": "react-jsx", "jsxImportSource": "preact" }, - "nodeModulesDir": true, "exclude": ["**/_fresh/*"] } diff --git a/fresh.config.ts b/fresh.config.ts index 5cace59..333787d 100644 --- a/fresh.config.ts +++ b/fresh.config.ts @@ -1,13 +1,16 @@ import { defineConfig } from "$fresh/server.ts"; import unocssPlugin from "@/utils/plugins/unocss.ts"; +import tailwind from "$fresh/plugins/tailwind.ts"; import { kvInsightsPlugin } from "https://deno.land/x/deno_kv_insights@v0.7.0-beta/mod.ts"; import { kv } from "@/utils/db/kv.ts"; + export default defineConfig({ plugins: [ unocssPlugin(), kvInsightsPlugin({ kv, }), + tailwind() ], }); diff --git a/fresh.gen.ts b/fresh.gen.ts index c2aaab6..ed673fc 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -2,157 +2,176 @@ // This file SHOULD be checked into source version control. // This file is automatically updated during development when running `dev.ts`. -import * as $0 from "./routes/(public)/faq.tsx"; -import * as $1 from "./routes/(public)/features.tsx"; -import * as $2 from "./routes/(public)/pricing.tsx"; -import * as $3 from "./routes/(public)/privacy-policy.tsx"; -import * as $4 from "./routes/(public)/terms-of-service.tsx"; -import * as $5 from "./routes/_404.tsx"; -import * as $6 from "./routes/_app.tsx"; -import * as $7 from "./routes/_layout.tsx"; -import * as $8 from "./routes/api/auth/login.ts"; -import * as $9 from "./routes/api/auth/signout.ts"; -import * as $10 from "./routes/api/events/create.ts"; -import * as $11 from "./routes/api/events/delete.ts"; -import * as $12 from "./routes/api/events/edit.ts"; -import * as $13 from "./routes/api/events/image/fill.ts"; -import * as $14 from "./routes/api/events/image/upload.ts"; -import * as $15 from "./routes/api/events/team/invite.ts"; -import * as $16 from "./routes/api/events/team/remove.ts"; -import * as $17 from "./routes/api/events/team/update.ts"; -import * as $18 from "./routes/api/events/ticket.ts"; -import * as $19 from "./routes/events/(pages)/_layout.tsx"; -import * as $20 from "./routes/events/(pages)/attending/_layout.tsx"; -import * as $21 from "./routes/events/(pages)/attending/index.tsx"; -import * as $22 from "./routes/events/(pages)/organizing/_layout.tsx"; -import * as $23 from "./routes/events/(pages)/organizing/accounting.tsx"; -import * as $24 from "./routes/events/(pages)/organizing/collections.tsx"; -import * as $25 from "./routes/events/(pages)/organizing/create.tsx"; -import * as $26 from "./routes/events/(pages)/organizing/discounts.tsx"; -import * as $27 from "./routes/events/(pages)/organizing/index.tsx"; -import * as $28 from "./routes/events/[id]/(no-layout)/_layout.tsx"; -import * as $29 from "./routes/events/[id]/(no-layout)/index.tsx"; -import * as $30 from "./routes/events/[id]/(no-layout)/tickets/[tixid].tsx"; -import * as $31 from "./routes/events/[id]/_layout.tsx"; -import * as $32 from "./routes/events/[id]/editing.tsx"; -import * as $33 from "./routes/events/[id]/scanning.tsx"; -import * as $34 from "./routes/events/[id]/team.tsx"; -import * as $35 from "./routes/events/[id]/tickets.tsx"; -import * as $36 from "./routes/events/notfound.tsx"; -import * as $37 from "./routes/index.tsx"; -import * as $38 from "./routes/kv-insights/_layout.tsx"; -import * as $39 from "./routes/kv-insights/_middleware.ts"; -import * as $40 from "./routes/login.tsx"; -import * as $$0 from "./islands/components/dropinUI/trash.tsx"; -import * as $$1 from "./islands/components/peices/ticket.tsx"; -import * as $$2 from "./islands/components/pickers/calender.tsx"; -import * as $$3 from "./islands/components/pickers/dropdown.tsx"; -import * as $$4 from "./islands/components/pickers/image.tsx"; -import * as $$5 from "./islands/components/pickers/select.tsx"; -import * as $$6 from "./islands/components/pickers/time.tsx"; -import * as $$7 from "./islands/entriesManagement.tsx"; -import * as $$8 from "./islands/entryManagement.tsx"; -import * as $$9 from "./islands/events/components/card.tsx"; -import * as $$10 from "./islands/events/creation/createForm.tsx"; -import * as $$11 from "./islands/events/creation/one.tsx"; -import * as $$12 from "./islands/events/creation/three.tsx"; -import * as $$13 from "./islands/events/creation/two.tsx"; -import * as $$14 from "./islands/events/creation/zero.tsx"; -import * as $$15 from "./islands/events/editing/delete.tsx"; -import * as $$16 from "./islands/events/editing/images.tsx"; -import * as $$17 from "./islands/events/editing/settings.tsx"; -import * as $$18 from "./islands/events/editing/showtimesettings.tsx"; -import * as $$19 from "./islands/events/editing/ticketSettings.tsx"; -import * as $$20 from "./islands/events/list/filters.tsx"; -import * as $$21 from "./islands/events/scanning.tsx"; -import * as $$22 from "./islands/events/teams/filters.tsx"; -import * as $$23 from "./islands/events/teams/invite.tsx"; -import * as $$24 from "./islands/events/teams/manage.tsx"; -import * as $$25 from "./islands/events/viewing/availability.tsx"; -import * as $$26 from "./islands/events/viewing/register.tsx"; -import * as $$27 from "./islands/events/viewing/showtimes.tsx"; -import * as $$28 from "./islands/loginForm.tsx"; -import * as $$29 from "./islands/queueManagement.tsx"; -import * as $$30 from "./islands/tickets/filters.tsx"; +import * as $_public_faq from "./routes/(public)/faq.tsx"; +import * as $_public_features from "./routes/(public)/features.tsx"; +import * as $_public_pricing from "./routes/(public)/pricing.tsx"; +import * as $_public_privacy_policy from "./routes/(public)/privacy-policy.tsx"; +import * as $_public_terms_of_service from "./routes/(public)/terms-of-service.tsx"; +import * as $_404 from "./routes/_404.tsx"; +import * as $_app from "./routes/_app.tsx"; +import * as $_layout from "./routes/_layout.tsx"; +import * as $api_auth_login from "./routes/api/auth/login.ts"; +import * as $api_auth_signout from "./routes/api/auth/signout.ts"; +import * as $api_events_create from "./routes/api/events/create.ts"; +import * as $api_events_delete from "./routes/api/events/delete.ts"; +import * as $api_events_edit from "./routes/api/events/edit.ts"; +import * as $api_events_fetch from "./routes/api/events/fetch.ts"; +import * as $api_events_image_fill from "./routes/api/events/image/fill.ts"; +import * as $api_events_image_upload from "./routes/api/events/image/upload.ts"; +import * as $api_events_scan from "./routes/api/events/scan.ts"; +import * as $api_events_team_invite from "./routes/api/events/team/invite.ts"; +import * as $api_events_team_remove from "./routes/api/events/team/remove.ts"; +import * as $api_events_team_update from "./routes/api/events/team/update.ts"; +import * as $api_events_ticket from "./routes/api/events/ticket.ts"; +import * as $events_pages_layout from "./routes/events/(pages)/_layout.tsx"; +import * as $events_pages_attending_layout from "./routes/events/(pages)/attending/_layout.tsx"; +import * as $events_pages_attending_index from "./routes/events/(pages)/attending/index.tsx"; +import * as $events_pages_organizing_layout from "./routes/events/(pages)/organizing/_layout.tsx"; +import * as $events_pages_organizing_accounting from "./routes/events/(pages)/organizing/accounting.tsx"; +import * as $events_pages_organizing_collections from "./routes/events/(pages)/organizing/collections.tsx"; +import * as $events_pages_organizing_create from "./routes/events/(pages)/organizing/create.tsx"; +import * as $events_pages_organizing_discounts from "./routes/events/(pages)/organizing/discounts.tsx"; +import * as $events_pages_organizing_index from "./routes/events/(pages)/organizing/index.tsx"; +import * as $events_id_no_layout_layout from "./routes/events/[id]/(no-layout)/_layout.tsx"; +import * as $events_id_no_layout_index from "./routes/events/[id]/(no-layout)/index.tsx"; +import * as $events_id_no_layout_tickets_tixid_ from "./routes/events/[id]/(no-layout)/tickets/[tixid].tsx"; +import * as $events_id_layout from "./routes/events/[id]/_layout.tsx"; +import * as $events_id_editing from "./routes/events/[id]/editing.tsx"; +import * as $events_id_scanning from "./routes/events/[id]/scanning.tsx"; +import * as $events_id_team from "./routes/events/[id]/team.tsx"; +import * as $events_id_tickets from "./routes/events/[id]/tickets.tsx"; +import * as $events_notfound from "./routes/events/notfound.tsx"; +import * as $index from "./routes/index.tsx"; +import * as $kv_insights_layout from "./routes/kv-insights/_layout.tsx"; +import * as $kv_insights_middleware from "./routes/kv-insights/_middleware.ts"; +import * as $login from "./routes/login.tsx"; +import * as $components_dropinUI_trash from "./islands/components/dropinUI/trash.tsx"; +import * as $components_peices_ticket from "./islands/components/peices/ticket.tsx"; +import * as $components_pickers_calender from "./islands/components/pickers/calender.tsx"; +import * as $components_pickers_dropdown from "./islands/components/pickers/dropdown.tsx"; +import * as $components_pickers_image from "./islands/components/pickers/image.tsx"; +import * as $components_pickers_select from "./islands/components/pickers/select.tsx"; +import * as $components_pickers_time from "./islands/components/pickers/time.tsx"; +import * as $entriesManagement from "./islands/entriesManagement.tsx"; +import * as $entryManagement from "./islands/entryManagement.tsx"; +import * as $events_components_card from "./islands/events/components/card.tsx"; +import * as $events_components_registerErrors from "./islands/events/components/registerErrors.tsx"; +import * as $events_creation_createForm from "./islands/events/creation/createForm.tsx"; +import * as $events_creation_one from "./islands/events/creation/one.tsx"; +import * as $events_creation_three from "./islands/events/creation/three.tsx"; +import * as $events_creation_two from "./islands/events/creation/two.tsx"; +import * as $events_creation_zero from "./islands/events/creation/zero.tsx"; +import * as $events_editing_delete from "./islands/events/editing/delete.tsx"; +import * as $events_editing_images from "./islands/events/editing/images.tsx"; +import * as $events_editing_settings from "./islands/events/editing/settings.tsx"; +import * as $events_editing_showtimesettings from "./islands/events/editing/showtimesettings.tsx"; +import * as $events_editing_ticketSettings from "./islands/events/editing/ticketSettings.tsx"; +import * as $events_list_filters from "./islands/events/list/filters.tsx"; +import * as $events_scanning from "./islands/events/scanning.tsx"; +import * as $events_teams_filters from "./islands/events/teams/filters.tsx"; +import * as $events_teams_invite from "./islands/events/teams/invite.tsx"; +import * as $events_teams_manage from "./islands/events/teams/manage.tsx"; +import * as $events_viewing_availability from "./islands/events/viewing/availability.tsx"; +import * as $events_viewing_register from "./islands/events/viewing/register.tsx"; +import * as $events_viewing_showtimes from "./islands/events/viewing/showtimes.tsx"; +import * as $loginForm from "./islands/loginForm.tsx"; +import * as $queueManagement from "./islands/queueManagement.tsx"; +import * as $tickets_filters from "./islands/tickets/filters.tsx"; +import { type Manifest } from "$fresh/server.ts"; const manifest = { routes: { - "./routes/(public)/faq.tsx": $0, - "./routes/(public)/features.tsx": $1, - "./routes/(public)/pricing.tsx": $2, - "./routes/(public)/privacy-policy.tsx": $3, - "./routes/(public)/terms-of-service.tsx": $4, - "./routes/_404.tsx": $5, - "./routes/_app.tsx": $6, - "./routes/_layout.tsx": $7, - "./routes/api/auth/login.ts": $8, - "./routes/api/auth/signout.ts": $9, - "./routes/api/events/create.ts": $10, - "./routes/api/events/delete.ts": $11, - "./routes/api/events/edit.ts": $12, - "./routes/api/events/image/fill.ts": $13, - "./routes/api/events/image/upload.ts": $14, - "./routes/api/events/team/invite.ts": $15, - "./routes/api/events/team/remove.ts": $16, - "./routes/api/events/team/update.ts": $17, - "./routes/api/events/ticket.ts": $18, - "./routes/events/(pages)/_layout.tsx": $19, - "./routes/events/(pages)/attending/_layout.tsx": $20, - "./routes/events/(pages)/attending/index.tsx": $21, - "./routes/events/(pages)/organizing/_layout.tsx": $22, - "./routes/events/(pages)/organizing/accounting.tsx": $23, - "./routes/events/(pages)/organizing/collections.tsx": $24, - "./routes/events/(pages)/organizing/create.tsx": $25, - "./routes/events/(pages)/organizing/discounts.tsx": $26, - "./routes/events/(pages)/organizing/index.tsx": $27, - "./routes/events/[id]/(no-layout)/_layout.tsx": $28, - "./routes/events/[id]/(no-layout)/index.tsx": $29, - "./routes/events/[id]/(no-layout)/tickets/[tixid].tsx": $30, - "./routes/events/[id]/_layout.tsx": $31, - "./routes/events/[id]/editing.tsx": $32, - "./routes/events/[id]/scanning.tsx": $33, - "./routes/events/[id]/team.tsx": $34, - "./routes/events/[id]/tickets.tsx": $35, - "./routes/events/notfound.tsx": $36, - "./routes/index.tsx": $37, - "./routes/kv-insights/_layout.tsx": $38, - "./routes/kv-insights/_middleware.ts": $39, - "./routes/login.tsx": $40, + "./routes/(public)/faq.tsx": $_public_faq, + "./routes/(public)/features.tsx": $_public_features, + "./routes/(public)/pricing.tsx": $_public_pricing, + "./routes/(public)/privacy-policy.tsx": $_public_privacy_policy, + "./routes/(public)/terms-of-service.tsx": $_public_terms_of_service, + "./routes/_404.tsx": $_404, + "./routes/_app.tsx": $_app, + "./routes/_layout.tsx": $_layout, + "./routes/api/auth/login.ts": $api_auth_login, + "./routes/api/auth/signout.ts": $api_auth_signout, + "./routes/api/events/create.ts": $api_events_create, + "./routes/api/events/delete.ts": $api_events_delete, + "./routes/api/events/edit.ts": $api_events_edit, + "./routes/api/events/fetch.ts": $api_events_fetch, + "./routes/api/events/image/fill.ts": $api_events_image_fill, + "./routes/api/events/image/upload.ts": $api_events_image_upload, + "./routes/api/events/scan.ts": $api_events_scan, + "./routes/api/events/team/invite.ts": $api_events_team_invite, + "./routes/api/events/team/remove.ts": $api_events_team_remove, + "./routes/api/events/team/update.ts": $api_events_team_update, + "./routes/api/events/ticket.ts": $api_events_ticket, + "./routes/events/(pages)/_layout.tsx": $events_pages_layout, + "./routes/events/(pages)/attending/_layout.tsx": + $events_pages_attending_layout, + "./routes/events/(pages)/attending/index.tsx": + $events_pages_attending_index, + "./routes/events/(pages)/organizing/_layout.tsx": + $events_pages_organizing_layout, + "./routes/events/(pages)/organizing/accounting.tsx": + $events_pages_organizing_accounting, + "./routes/events/(pages)/organizing/collections.tsx": + $events_pages_organizing_collections, + "./routes/events/(pages)/organizing/create.tsx": + $events_pages_organizing_create, + "./routes/events/(pages)/organizing/discounts.tsx": + $events_pages_organizing_discounts, + "./routes/events/(pages)/organizing/index.tsx": + $events_pages_organizing_index, + "./routes/events/[id]/(no-layout)/_layout.tsx": $events_id_no_layout_layout, + "./routes/events/[id]/(no-layout)/index.tsx": $events_id_no_layout_index, + "./routes/events/[id]/(no-layout)/tickets/[tixid].tsx": + $events_id_no_layout_tickets_tixid_, + "./routes/events/[id]/_layout.tsx": $events_id_layout, + "./routes/events/[id]/editing.tsx": $events_id_editing, + "./routes/events/[id]/scanning.tsx": $events_id_scanning, + "./routes/events/[id]/team.tsx": $events_id_team, + "./routes/events/[id]/tickets.tsx": $events_id_tickets, + "./routes/events/notfound.tsx": $events_notfound, + "./routes/index.tsx": $index, + "./routes/kv-insights/_layout.tsx": $kv_insights_layout, + "./routes/kv-insights/_middleware.ts": $kv_insights_middleware, + "./routes/login.tsx": $login, }, islands: { - "./islands/components/dropinUI/trash.tsx": $$0, - "./islands/components/peices/ticket.tsx": $$1, - "./islands/components/pickers/calender.tsx": $$2, - "./islands/components/pickers/dropdown.tsx": $$3, - "./islands/components/pickers/image.tsx": $$4, - "./islands/components/pickers/select.tsx": $$5, - "./islands/components/pickers/time.tsx": $$6, - "./islands/entriesManagement.tsx": $$7, - "./islands/entryManagement.tsx": $$8, - "./islands/events/components/card.tsx": $$9, - "./islands/events/creation/createForm.tsx": $$10, - "./islands/events/creation/one.tsx": $$11, - "./islands/events/creation/three.tsx": $$12, - "./islands/events/creation/two.tsx": $$13, - "./islands/events/creation/zero.tsx": $$14, - "./islands/events/editing/delete.tsx": $$15, - "./islands/events/editing/images.tsx": $$16, - "./islands/events/editing/settings.tsx": $$17, - "./islands/events/editing/showtimesettings.tsx": $$18, - "./islands/events/editing/ticketSettings.tsx": $$19, - "./islands/events/list/filters.tsx": $$20, - "./islands/events/scanning.tsx": $$21, - "./islands/events/teams/filters.tsx": $$22, - "./islands/events/teams/invite.tsx": $$23, - "./islands/events/teams/manage.tsx": $$24, - "./islands/events/viewing/availability.tsx": $$25, - "./islands/events/viewing/register.tsx": $$26, - "./islands/events/viewing/showtimes.tsx": $$27, - "./islands/loginForm.tsx": $$28, - "./islands/queueManagement.tsx": $$29, - "./islands/tickets/filters.tsx": $$30, + "./islands/components/dropinUI/trash.tsx": $components_dropinUI_trash, + "./islands/components/peices/ticket.tsx": $components_peices_ticket, + "./islands/components/pickers/calender.tsx": $components_pickers_calender, + "./islands/components/pickers/dropdown.tsx": $components_pickers_dropdown, + "./islands/components/pickers/image.tsx": $components_pickers_image, + "./islands/components/pickers/select.tsx": $components_pickers_select, + "./islands/components/pickers/time.tsx": $components_pickers_time, + "./islands/entriesManagement.tsx": $entriesManagement, + "./islands/entryManagement.tsx": $entryManagement, + "./islands/events/components/card.tsx": $events_components_card, + "./islands/events/components/registerErrors.tsx": + $events_components_registerErrors, + "./islands/events/creation/createForm.tsx": $events_creation_createForm, + "./islands/events/creation/one.tsx": $events_creation_one, + "./islands/events/creation/three.tsx": $events_creation_three, + "./islands/events/creation/two.tsx": $events_creation_two, + "./islands/events/creation/zero.tsx": $events_creation_zero, + "./islands/events/editing/delete.tsx": $events_editing_delete, + "./islands/events/editing/images.tsx": $events_editing_images, + "./islands/events/editing/settings.tsx": $events_editing_settings, + "./islands/events/editing/showtimesettings.tsx": + $events_editing_showtimesettings, + "./islands/events/editing/ticketSettings.tsx": + $events_editing_ticketSettings, + "./islands/events/list/filters.tsx": $events_list_filters, + "./islands/events/scanning.tsx": $events_scanning, + "./islands/events/teams/filters.tsx": $events_teams_filters, + "./islands/events/teams/invite.tsx": $events_teams_invite, + "./islands/events/teams/manage.tsx": $events_teams_manage, + "./islands/events/viewing/availability.tsx": $events_viewing_availability, + "./islands/events/viewing/register.tsx": $events_viewing_register, + "./islands/events/viewing/showtimes.tsx": $events_viewing_showtimes, + "./islands/loginForm.tsx": $loginForm, + "./islands/queueManagement.tsx": $queueManagement, + "./islands/tickets/filters.tsx": $tickets_filters, }, baseUrl: import.meta.url, -}; +} satisfies Manifest; export default manifest; diff --git a/routes/_app.tsx b/routes/_app.tsx index 72a7afb..74dda1f 100644 --- a/routes/_app.tsx +++ b/routes/_app.tsx @@ -1,10 +1,10 @@ -import { AppProps } from "$fresh/server.ts"; +import { PageProps } from "$fresh/server.ts"; import { asset } from "$fresh/runtime.ts"; import { Partial } from "$fresh/runtime.ts"; const logo = asset("/orange-logo.svg"); -export default function App({ Component }: AppProps) { +export default function App({ Component }: PageProps) { return ( @@ -12,7 +12,7 @@ export default function App({ Component }: AppProps) { Events - OSS Ticketing Software for the Future - + {/* */} diff --git a/static/output.css b/static/output.css deleted file mode 100644 index 94fe1aa..0000000 --- a/static/output.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #d1d5db}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-top-3{top:-.75rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1{left:.25rem}.left-3{left:.75rem}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-2{right:.5rem}.right-3{right:.75rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-10{top:2.5rem}.top-12{top:3rem}.top-14{top:3.5rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-7{top:1.75rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.m-0{margin:0}.m-0\.5{margin:.125rem}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-auto{margin-top:auto;margin-bottom:auto}.-mb-4{margin-bottom:-1rem}.-mt-0{margin-top:0}.-mt-0\.5{margin-top:-.125rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-36{margin-bottom:9rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-36{margin-top:9rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-6{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-6{-webkit-line-clamp:6}.block{display:block}.flex{display:flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.\!h-8{height:2rem!important}.h-0{height:0}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-36{height:9rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[18rem\]{height:18rem}.h-\[30rem\]{height:30rem}.h-\[calc\(100\%\+1\.5rem\)\]{height:calc(100% + 1.5rem)}.h-\[calc\(100vh-4\.5rem\)\]{height:calc(100vh - 4.5rem)}.max-h-\[20rem\]{max-height:20rem}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[6rem\]{min-height:6rem}.min-h-screen{min-height:100vh}.\!w-10{width:2.5rem!important}.\!w-20{width:5rem!important}.\!w-8{width:2rem!important}.\!w-full{width:100%!important}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[1\.85rem\]{width:1.85rem}.w-\[16\.5rem\]{width:16.5rem}.w-\[30rem\]{width:30rem}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-\[1\.5rem\]{min-width:1.5rem}.min-w-\[18rem\]{min-width:18rem}.min-w-\[3rem\]{min-width:3rem}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[15rem\]{max-width:15rem}.max-w-\[95vw\]{max-width:95vw}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.grow{flex-grow:1}.-translate-x-14{--tw-translate-x:-3.5rem}.-translate-x-14,.-translate-y-10{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-10{--tw-translate-y:-2.5rem}.-translate-y-20{--tw-translate-y:-5rem}.-translate-y-20,.-translate-y-6{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-6{--tw-translate-y:-1.5rem}.translate-x-\[-16\.25rem\]{--tw-translate-x:-16.25rem}.translate-x-\[-16\.25rem\],.translate-x-\[1\.425rem\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[1\.425rem\]{--tw-translate-x:1.425rem}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-start{scroll-snap-align:start}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-28>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(7rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(7rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-300\/20{border-color:#d1d5db33}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity))}.border-theme-normal{--tw-border-opacity:1;border-color:rgb(220 104 67/var(--tw-border-opacity))}.border-theme-normal\/50{border-color:#dc684380}.border-transparent{border-color:#0000}.\!bg-gray-300{--tw-bg-opacity:1!important;background-color:rgb(209 213 219/var(--tw-bg-opacity))!important}.\!bg-purple-600{--tw-bg-opacity:1!important;background-color:rgb(147 51 234/var(--tw-bg-opacity))!important}.bg-\[\#86efac\]{--tw-bg-opacity:1;background-color:rgb(134 239 172/var(--tw-bg-opacity))}.bg-black\/20{background-color:#0003}.bg-blue-800{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-theme-normal{--tw-bg-opacity:1;background-color:rgb(220 104 67/var(--tw-bg-opacity))}.bg-theme-normal\/10{background-color:#dc68431a}.bg-theme-normal\/5{background-color:#dc68430d}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/25{background-color:#ffffff40}.bg-white\/\[0\.85\]{background-color:#ffffffd9}.bg-\[linear-gradient\(180deg\2c rgba\(255\2c 255\2c 255\2c 0\)_0\%\2c rgba\(255\2c 255\2c 255\2c 0\)_20\%\2c rgba\(255\2c 255\2c 255\2c 1\)_100\%\)\]{background-image:linear-gradient(180deg,#fff0,#fff0 20%,#fff)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-\[\#234c70\]{--tw-gradient-from:#234c70 var(--tw-gradient-from-position);--tw-gradient-to:#234c7000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-theme-normal{--tw-gradient-from:#dc6843 var(--tw-gradient-from-position);--tw-gradient-to:#dc684300 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-\[\#0a3860\]{--tw-gradient-to:#0a3860 var(--tw-gradient-to-position)}.to-\[\#d1552c\]{--tw-gradient-to:#d1552c var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-12{padding-bottom:3rem}.pb-2{padding-bottom:.5rem}.pb-36{padding-bottom:9rem}.pb-6{padding-bottom:1.5rem}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-2{padding-left:.5rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pt-1{padding-top:.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-8xl{font-size:6rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-3{line-height:.75rem}.\!text-gray-900{--tw-text-opacity:1!important;color:rgb(17 24 39/var(--tw-text-opacity))!important}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-theme-normal{--tw-text-opacity:1;color:rgb(220 104 67/var(--tw-text-opacity))}.text-transparent{color:#0000}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-white\/75{color:#ffffffbf}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.ring-\[\#da7351\]{--tw-ring-opacity:1;--tw-ring-color:rgb(218 115 81/var(--tw-ring-opacity))}.ring-gray-400\/50{--tw-ring-color:#9ca3af80}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.\[background\:linear-gradient\(white\2c white\)_padding-box\2c linear-gradient\(to_bottom\2c theme\(colors\.gray\.200\)\2c transparent\)_border-box\]{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(180deg,#e5e7eb,#0000) border-box}.\[background\:linear-gradient\(white\2c white\)_padding-box\2c linear-gradient\(to_bottom\2c theme\(colors\.theme\.normal\)\2c rgba\(209\2c 85\2c 44\2c 0\)_97\%\)_border-box\]{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(180deg,#dc6843,#d1552c00 97%) border-box}.\[grid-auto-rows\:1fr\]{grid-auto-rows:1fr}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}*{font-family:Comic Neue,cursive;font-family:Inter,sans-serif}.test{font-size:large}@keyframes blink{50%{opacity:0}}.cursor-blink{animation:blink 1s steps(1) infinite}input:where([type=email],[type=text],[type=number]):not(.nostyle),textarea{border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));padding:.5rem}.nostyle:focus{outline:2px solid #0000;outline-offset:2px}.label-text{margin-bottom:.125rem;font-size:.875rem;line-height:1.25rem;font-weight:500;text-transform:capitalize}.label-required:after{content:" *";font-weight:400;--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.scrollbar-fancy::-webkit-scrollbar{width:10px;height:10px}@media (prefers-color-scheme:dark){.scrollbar-fancy:not(.scrollbar-fancy-glass)::-webkit-scrollbar-thumb{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity))}}.scrollbar-fancy:not(.scrollbar-fancy-glass)::-webkit-scrollbar-thumb{border:4px solid #0000;background-clip:padding-box;border-radius:9999px;background-color:#d1d5db}.scrollbar-fancy-glass::-webkit-scrollbar-thumb{background-color:#ffffff80}@media (prefers-color-scheme:dark){.scrollbar-fancy-glass::-webkit-scrollbar-thumb{background-color:#0003}}.scrollbar-fancy-glass::-webkit-scrollbar-thumb{border:4px solid #0000;background-clip:padding-box;border-radius:9999px}.last\:mt-auto:last-child{margin-top:auto}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-gray-200\/75:hover{background-color:#e5e7ebbf}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.hover\:font-medium:hover{font-weight:500}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:brightness-200:hover{--tw-brightness:brightness(2)}.hover\:brightness-200:hover,.hover\:brightness-95:hover{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)}.hover\:brightness-95:hover{--tw-brightness:brightness(.95)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.hover\:focus\:ring-1:focus:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.hover\:focus\:brightness-100:focus:hover{--tw-brightness:brightness(1);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)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:brightness-90:disabled{--tw-brightness:brightness(.9);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)}.group:hover .group-hover\:-translate-x-0{--tw-translate-x:-0px}.group:hover .group-hover\:-translate-x-0,.group:hover .group-hover\:-translate-x-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:-translate-x-0\.5{--tw-translate-x:-0.125rem}.group:hover .group-hover\:-translate-y-0{--tw-translate-y:-0px}.group:hover .group-hover\:-translate-y-0,.group:hover .group-hover\:-translate-y-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:-translate-y-0\.5{--tw-translate-y:-0.125rem}.group:hover .group-hover\:translate-x-0{--tw-translate-x:0px}.group:hover .group-hover\:translate-x-0,.group:hover .group-hover\:translate-x-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x:0.125rem}.group:hover .group-hover\:translate-y-0{--tw-translate-y:0px}.group:hover .group-hover\:translate-y-0,.group:hover .group-hover\:translate-y-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-0\.5{--tw-translate-y:0.125rem}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.group:hover .group-hover\:text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity))}.peer:hover~.peer-hover\:scale-100{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:hover~.peer-hover\:opacity-100{opacity:1}@media (min-width:640px){.sm\:mr-0{margin-right:0}.sm\:mt-0{margin-top:0}.sm\:mt-auto{margin-top:auto}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:\!w-40{width:10rem!important}.sm\:\!w-72{width:18rem!important}.sm\:w-40{width:10rem}.sm\:w-64{width:16rem}.sm\:w-80{width:20rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:-mt-28{margin-top:-7rem}.md\:mb-16{margin-bottom:4rem}.md\:mt-2{margin-top:.5rem}.md\:mt-24{margin-top:6rem}.md\:h-48{height:12rem}.md\:h-96{height:24rem}.md\:max-h-\[16rem\]{max-height:16rem}.md\:\!w-40{width:10rem!important}.md\:w-56{width:14rem}.md\:\!max-w-md{max-width:28rem!important}.md\:max-w-xl{max-width:36rem}.md\:grow-0{flex-grow:0}.md\:-translate-y-6{--tw-translate-y:-1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-start{justify-content:flex-start}.md\:gap-4{gap:1rem}.md\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.md\:text-left{text-align:left}}.\[\&\>label\]\:grow>label{flex-grow:1}.\[\&\>svg\]\:mr-2>svg{margin-right:.5rem}.\[\&\>svg\]\:w-5>svg{width:1.25rem}@media(min-width:300px){.\[\@media\(min-width\:300px\)\]\:w-72{width:18rem}.\[\@media\(min-width\:300px\)\]\:w-\[18\.5rem\]{width:18.5rem}.\[\@media\(min-width\:300px\)\]\:translate-x-\[-18\.25rem\]{--tw-translate-x:-18.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}@media(min-width:320px){.\[\@media\(min-width\:320px\)\]\:block{display:block}.\[\@media\(min-width\:320px\)\]\:hidden{display:none}.\[\@media\(min-width\:320px\)\]\:\!w-40{width:10rem!important}} \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.ts similarity index 55% rename from tailwind.config.js rename to tailwind.config.ts index f645a85..63fb39b 100644 --- a/tailwind.config.js +++ b/tailwind.config.ts @@ -1,5 +1,9 @@ -module.exports = { - content: ["./{routes,islands,components}/**/*.{tsx,ts}"], +import { type Config } from "tailwindcss"; + +export default { + content: [ + "{routes,islands,components}/**/*.{ts,tsx}", + ], theme: { extend: { colors: { @@ -12,5 +16,4 @@ module.exports = { }, }, }, - plugins: [], -}; +} as Config;