diff --git a/README.md b/README.md index 85df1bd..584f27a 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,35 @@ -# MARINA coming-soon page +# MARINA Jekyll theme starter -A minimal Jekyll, Tailwind CSS, and daisyUI page using the supplied maritime image. +A one-page Jekyll starter based on the supplied dataset landing-page design. It uses Tailwind CSS 3 and daisyUI 4. Editors manage homepage content from the clearly commented front matter in `index.md`, while site-wide header, navigation, and footer settings live in `_data/site.yml`. ## Run locally +Requirements: Ruby 3+, Bundler, and Node 18+. + ```bash bundle install npm install npm run dev ``` -Then open `http://127.0.0.1:4000`. +Open `http://127.0.0.1:4000` or `http://localhost:4000`. + +## Production build + +```bash +npm run build +``` + +The generated site will be in `_site/`. -## Edit content +## Editing content -- `index.md` controls the background image, eyebrow, headline, body text, and optional button. -- `_data/site.yml` controls the brand name and footer organization. -- Replace `assets/images/coming-soon-background.jpg` or update `background_image` in `index.md`. +- `index.md` — the single content-editing file for the homepage +- `_data/site.yml` — site-wide branding, navigation, header CTA, and footer organization +- `_layouts/home.html` — protected page structure and Liquid templates +- `tailwind.config.js` — brand colors and the daisyUI theme +- `assets/css/tailwind.css` — reusable Tailwind component classes +- `_includes/header.html` and `_includes/footer.html` — shared chrome +- `assets/js/navigation.js` — reveals the separate fixed navigation after the hero tiles scroll away -Remove the complete `button:` block from `index.md` if the page should not have a call to action. +Keep URLs beginning with `#` in quotation marks, for example `url: "#overview"`. For button styles, use only `primary` or `outline`. diff --git a/_config.yml b/_config.yml index 43deac1..a30d116 100644 --- a/_config.yml +++ b/_config.yml @@ -16,4 +16,4 @@ defaults: - scope: path: "" values: - layout: coming-soon + layout: default diff --git a/_data/site.yml b/_data/site.yml index a1de692..901dc25 100644 --- a/_data/site.yml +++ b/_data/site.yml @@ -1,5 +1,38 @@ +# ================================================== +# SITE-WIDE BRANDING, CALL TO ACTION, AND NAVIGATION +# ================================================== + brand: - name: MARINA + logo: + src_reversed: "/assets/images/logo-white.svg" + src: "/assets/images/logo.svg" + alt: MARINA + +cta: + button: + label: Get the data + url: "#releases" + +# These links populate both the homepage navigation tiles and fixed header. +# Always quote URLs beginning with # because YAML treats # as a comment. +navigation: + - label: Overview + url: "#overview" + - label: Difference + url: "#difference" + - label: Releases + url: "#releases" + - label: Leaderboard + url: "#leaderboards" + - label: Inquiries + url: "#inquiries" + - label: Citation + url: "#citation" footer: + disclaimer: >- + Funded by DARPA under MARINA program, contract W912CG-24-C-0020
+ Disclaimer (DARPA)
+ Data owned by Ocean Networks Canada and available under CC-BY 4.0
+ https://www.oceannetworks.ca/data/data-policy/ organization: Kitware, Inc. diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..ed3e2f4 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,12 @@ + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..ae96d9b --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,25 @@ + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..3116775 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,26 @@ + + + + + + + {{ page.title | default: site.title }} + + + + + + + + {% include header.html %} +
{{ content }}
+ {% include footer.html %} + + + + + + diff --git a/_layouts/home.html b/_layouts/home.html new file mode 100644 index 0000000..a646cfb --- /dev/null +++ b/_layouts/home.html @@ -0,0 +1,533 @@ +--- +layout: default +--- + +
+
+ +
+
+
+ {% if page.hero.subheadline %}

{{ page.hero.subheadline }}

{% endif %} +

{{ page.hero.headline }}

+ {% if page.hero.text %}

{{ page.hero.text }}

{% endif %} + {% if page.hero.buttons %} +
+ {% for button in page.hero.buttons %} + {% if button.style == "primary" %} + + {{ button.label | escape }} + + {% else %} + + {{ button.label | escape }} + + {% endif %} + {% endfor %} +
+ {% endif %} +
+
+ + +
+ +
+
+
+ {% if page.overview.subheadline %} +

{{ page.overview.subheadline | escape }}

+ {% endif %} +

{{ page.overview.headline | escape }}

+ {% if page.overview.paragraphs %} +
+ {% for paragraph in page.overview.paragraphs %} + {{ paragraph | markdownify }} + {% endfor %} + {% if page.overview.cta_section %} +
+ {% for paragraph in page.overview.cta_section.paragraphs %} + {{ paragraph | markdownify }} + {% endfor %} + {% if page.overview.cta_section.buttons %} +
+ {% for button in page.overview.cta_section.buttons %} + + {{ button.label | escape }} + + {% endfor %} +
+ {% endif %} +
+ {% endif %} +
+ {% endif %} +
+ {% if page.overview.stats %} +
+ {% for stat in page.overview.stats %} +
+
{{ stat.value | escape }}
+
{{ stat.label | escape }}
+
+ {% endfor %} +
+ {% endif %} +
+
+ +
+ {% if page.difference.subheadline %} +

{{ page.difference.subheadline | escape }}

+ {% endif %} +

{{ page.difference.headline | escape }}

+ {% if page.difference.items %} +
+ {% for item in page.difference.items %} +
+ 0{{ forloop.index }} +

{{ item.title | escape }}

+

{{ item.text | escape }}

+
+ {% endfor %} +
+ {% endif %} +
+ +
+
+ {% if page.releases.subheadline %} +

{{ page.releases.subheadline | escape }}

+ {% endif %} +

{{ page.releases.headline | escape }}

+ {% if page.releases.text %} +

{{ page.releases.text }}

+ {% endif %} + {% if page.releases.items %} +
+ {% for release in page.releases.items %} +
+ {% if release.image %} + {{ release.image_alt | escape }} + {% endif %} +
+

{{ release.title | escape }}

+

{{ release.description | escape }}

+
+ + + {{ release.size | escape }} + + + + {{ release.views | escape }} + + + + {{ release.date | escape }} + +
+ {% if release.buttons %} +
+ {% for button in release.buttons %} + + {{ button.label | escape }} + + {% endfor %} +
+ {% endif %} +
+
+ {% endfor %} +
+ {% endif %} +
+
+ +{% if page.leaderboards %} +
+
+
+ + +
+ {% if page.leaderboards.subheadline %} +

+ {{ page.leaderboards.subheadline | escape }} +

+ {% endif %} + +
+

+ {{ page.leaderboards.headline | escape }} +

+ + {% if page.leaderboards.status %} + + {{ page.leaderboards.status | escape }} + + {% endif %} +
+ + {% if page.leaderboards.text %} +

+ {{ page.leaderboards.text | escape }} +

+ {% endif %} + +
+ + +

+ Evaluation criteria and submission instructions are + currently being developed. +

+
+
+ + +
+
+
+ + + + Results preview + +
+ + + + In development + +
+ + + + +
+
+ + +

+ Rankings coming soon +

+
+
+
+ +
+
+
+{% endif %} + +
+
+
+ {% if page.inquiries.subheadline %} +

{{ page.inquiries.subheadline | escape }}

+ {% endif %} +

{{ page.inquiries.headline | escape }}

+ {% if page.inquiries.text %} +

{{ page.inquiries.text }}

+ {% endif %} + {% if page.inquiries.benefits %} +
    + {% for benefit in page.inquiries.benefits %} +
  • + + {{ benefit | escape }} +
  • + {% endfor %} +
+ {% endif %} +
+ + {% assign form = page.inquiries.form %} + +
+
+ {% for field in form.fields %} + {% assign field_id = "request-field-" | append: forloop.index %} + + {% if field.width == "half" %} + {% assign field_width = "" %} + {% else %} + {% assign field_width = "sm:col-span-2" %} + {% endif %} + + {% if field.type == "checkbox" %} + + + + {% else %} + + + + {% endif %} + {% endfor %} + + + + +
+ + +
+
+
+ +
+
+ {% if page.citation.subheadline %} +

{{ page.citation.subheadline | escape }}

+ {% endif %} +

{{ page.citation.headline | escape }}

+ {% if page.citation.text %} +

{{ page.citation.text | escape }}

+ {% endif %} +
+
{{ page.citation.code | escape }}
+ +
+
+
+

{{ page.citation.contact.headline | escape }}

+

{{ page.citation.contact.text | escape }}

+
+ {{ page.citation.contact.button_label | escape }} +
+
+
diff --git a/assets/css/site.css b/assets/css/site.css index 17044f5..8c146f5 100644 --- a/assets/css/site.css +++ b/assets/css/site.css @@ -625,7 +625,7 @@ html { } :root { - --p: 72.5487% 0.204994 141.315419; + --p: 66.1952% 0.194469 141.065623; --ac: 13.9154% 0.027649 237.697542; --inc: 91.1915% 0.033075 252.190181; --suc: 14.5097% 0.040999 141.315419; @@ -656,11 +656,15 @@ html { --er: 61.9804% 0.179242 14.27148; } +html { + scroll-behavior: smooth; +} + body { - margin: 0px; --tw-bg-opacity: 1; - background-color: rgb(3 21 41 / var(--tw-bg-opacity, 1)); - font-family: Inter, ui-sans-serif, system-ui, sans-serif; + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity, 1))); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @@ -669,651 +673,3542 @@ body { outline-style: solid; outline-width: 2px; outline-offset: 4px; - outline-color: #4cc43b; + outline-color: #3eae2b; } -@media (hover:hover) { - .label a:hover { - --tw-text-opacity: 1; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); - } +section[id] { + scroll-margin-top: 4rem; } -.btn { - display: inline-flex; - height: 3rem; - min-height: 3rem; - flex-shrink: 0; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - flex-wrap: wrap; - align-items: center; - justify-content: center; - border-radius: var(--rounded-btn, 0.5rem); - border-color: transparent; - border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity)); - padding-left: 1rem; - padding-right: 1rem; - text-align: center; - font-size: 0.875rem; - line-height: 1em; - gap: 0.5rem; - font-weight: 600; - text-decoration-line: none; - transition-duration: 200ms; - transition-timing-function: cubic-bezier(0, 0, 0.2, 1); - border-width: var(--border-btn, 1px); - transition-property: color, background-color, border-color, opacity, box-shadow, transform; - --tw-text-opacity: 1; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); - --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); - --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - outline-color: var(--fallback-bc,oklch(var(--bc)/1)); - background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity)); - --tw-bg-opacity: 1; - --tw-border-opacity: 1; +.\!container { + width: 100% !important; } -.btn-disabled, - .btn[disabled], - .btn:disabled { - pointer-events: none; +.container { + width: 100%; } -:where(.btn:is(input[type="checkbox"])), -:where(.btn:is(input[type="radio"])) { - width: auto; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} +@media (min-width: 640px) { + .\!container { + max-width: 640px !important; + } -.btn:is(input[type="checkbox"]):after, -.btn:is(input[type="radio"]):after { - --tw-content: attr(aria-label); - content: var(--tw-content); + .container { + max-width: 640px; + } } -@media (hover: hover) { - .btn:hover { - --tw-border-opacity: 1; - border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); - --tw-bg-opacity: 1; - background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); +@media (min-width: 768px) { + .\!container { + max-width: 768px !important; } - @supports (color: color-mix(in oklab, black, black)) { - .btn:hover { - background-color: color-mix( - in oklab, - oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%, - black - ); - border-color: color-mix( - in oklab, - oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%, - black - ); - } + .container { + max-width: 768px; } +} - @supports not (color: oklch(0% 0 0)) { - .btn:hover { - background-color: var(--btn-color, var(--fallback-b2)); - border-color: var(--btn-color, var(--fallback-b2)); - } +@media (min-width: 1024px) { + .\!container { + max-width: 1024px !important; } - .btn.glass:hover { - --glass-opacity: 25%; - --glass-border-opacity: 15%; + .container { + max-width: 1024px; } +} - .btn-outline.btn-primary:hover { - --tw-text-opacity: 1; - color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +@media (min-width: 1280px) { + .\!container { + max-width: 1280px !important; } - @supports (color: color-mix(in oklab, black, black)) { - .btn-outline.btn-primary:hover { - background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); - border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); - } + .container { + max-width: 1280px; } +} - .btn-disabled:hover, - .btn[disabled]:hover, - .btn:disabled:hover { - --tw-border-opacity: 0; - background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); - --tw-bg-opacity: 0.2; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); - --tw-text-opacity: 0.2; +@media (min-width: 1536px) { + .\!container { + max-width: 1536px !important; } - @supports (color: color-mix(in oklab, black, black)) { - .btn:is(input[type="checkbox"]:checked):hover, .btn:is(input[type="radio"]:checked):hover { - background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); - border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); - } + .container { + max-width: 1536px; } } -.footer { - display: grid; - width: 100%; - grid-auto-flow: row; - place-items: start; - -moz-column-gap: 1rem; - column-gap: 1rem; - row-gap: 2.5rem; - font-size: 0.875rem; - line-height: 1.25rem; +.prose { + color: var(--tw-prose-body); + max-width: 65ch; } -.footer > * { - display: grid; - place-items: start; - gap: 0.5rem; +.prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; } -@media (min-width: 48rem) { - .footer { - grid-auto-flow: column; - } +.prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-lead); + font-size: 1.25em; + line-height: 1.6; + margin-top: 1.2em; + margin-bottom: 1.2em; +} - .footer-center { - grid-auto-flow: row dense; - } +.prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-links); + text-decoration: underline; + font-weight: 500; } -.label { - display: flex; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - align-items: center; - justify-content: space-between; - padding-left: 0.25rem; - padding-right: 0.25rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; +.prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-bold); + font-weight: 600; } -.link { - cursor: pointer; - text-decoration-line: underline; +.prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; } -.swap { - position: relative; - display: inline-grid; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - place-content: center; - cursor: pointer; +.prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; } -.swap > * { - grid-column-start: 1; - grid-row-start: 1; - transition-duration: 300ms; - transition-timing-function: cubic-bezier(0, 0, 0.2, 1); - transition-property: transform, opacity; +.prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; } -.swap input { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; +.prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: decimal; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-inline-start: 1.625em; } -.swap .swap-on, -.swap .swap-indeterminate, -.swap input:indeterminate ~ .swap-on { - opacity: 0; +.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-alpha; } -.swap input:checked ~ .swap-off, -.swap-active .swap-off, -.swap input:indeterminate ~ .swap-off { - opacity: 0; +.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-alpha; } -.swap input:checked ~ .swap-on, -.swap-active .swap-on, -.swap input:indeterminate ~ .swap-indeterminate { - opacity: 1; +.prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-alpha; } -.btm-nav > * .label { - font-size: 1rem; - line-height: 1.5rem; +.prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-alpha; } -@media (prefers-reduced-motion: no-preference) { - .btn { - animation: button-pop var(--animation-btn, 0.25s) ease-out; - } +.prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-roman; } -.btn:active:hover, - .btn:active:focus { - animation: button-pop 0s ease-out; - transform: scale(var(--btn-focus-scale, 0.97)); +.prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-roman; } -@supports not (color: oklch(0% 0 0)) { - .btn { - background-color: var(--btn-color, var(--fallback-b2)); - border-color: var(--btn-color, var(--fallback-b2)); - } +.prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-roman; +} - .btn-primary { - --btn-color: var(--fallback-p); - } +.prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-roman; } -@supports (color: color-mix(in oklab, black, black)) { - .btn-outline.btn-primary.btn-active { - background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); - border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); - } +.prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: decimal; } -.btn:focus-visible { - outline-style: solid; - outline-width: 2px; - outline-offset: 2px; +.prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: disc; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-inline-start: 1.625em; } -.btn-primary { - --tw-text-opacity: 1; - color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); - outline-color: var(--fallback-p,oklch(var(--p)/1)); +.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { + font-weight: 400; + color: var(--tw-prose-counters); } -@supports (color: oklch(0% 0 0)) { - .btn-primary { - --btn-color: var(--p); - } +.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { + color: var(--tw-prose-bullets); } -.btn.glass { - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - outline-color: currentColor; +.prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.25em; } -.btn.glass.btn-active { - --glass-opacity: 25%; - --glass-border-opacity: 15%; +.prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-color: var(--tw-prose-hr); + border-top-width: 1px; + margin-top: 3em; + margin-bottom: 3em; } -.btn-outline.btn-primary { - --tw-text-opacity: 1; - color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +.prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 500; + font-style: italic; + color: var(--tw-prose-quotes); + border-inline-start-width: 0.25rem; + border-inline-start-color: var(--tw-prose-quote-borders); + quotes: "\201C""\201D""\2018""\2019"; + margin-top: 1.6em; + margin-bottom: 1.6em; + padding-inline-start: 1em; } -.btn-outline.btn-primary.btn-active { - --tw-text-opacity: 1; - color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: open-quote; } -.btn.btn-disabled, - .btn[disabled], - .btn:disabled { - --tw-border-opacity: 0; - background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); - --tw-bg-opacity: 0.2; - color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); - --tw-text-opacity: 0.2; +.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: close-quote; } -.btn:is(input[type="checkbox"]:checked), -.btn:is(input[type="radio"]:checked) { - --tw-border-opacity: 1; - border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); - --tw-bg-opacity: 1; - background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); - --tw-text-opacity: 1; - color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +.prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 800; + font-size: 2.25em; + margin-top: 0; + margin-bottom: 0.8888889em; + line-height: 1.1111111; } -.btn:is(input[type="checkbox"]:checked):focus-visible, .btn:is(input[type="radio"]:checked):focus-visible { - outline-color: var(--fallback-p,oklch(var(--p)/1)); +.prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 900; + color: inherit; } -@keyframes button-pop { - 0% { - transform: scale(var(--btn-focus-scale, 0.98)); - } +.prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 700; + font-size: 1.5em; + margin-top: 2em; + margin-bottom: 1em; + line-height: 1.3333333; +} - 40% { - transform: scale(1.02); - } +.prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 800; + color: inherit; +} - 100% { - transform: scale(1); - } +.prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + font-size: 1.25em; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.6; } -@keyframes checkmark { - 0% { - background-position-y: 5px; - } +.prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 700; + color: inherit; +} - 50% { - background-position-y: -2px; - } +.prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.5em; + margin-bottom: 0.5em; + line-height: 1.5; +} - 100% { - background-position-y: 0; - } +.prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 700; + color: inherit; } -.join > :where(*:not(:first-child)):is(.btn) { - margin-inline-start: calc(var(--border-btn) * -1); +.prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; } -.link:focus { - outline: 2px solid transparent; - outline-offset: 2px; +.prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + display: block; + margin-top: 2em; + margin-bottom: 2em; } -.link:focus-visible { - outline: 2px solid currentColor; - outline-offset: 2px; +.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; } -.mockup-phone .display { - overflow: hidden; - border-radius: 40px; - margin-top: -25px; +.prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 500; + font-family: inherit; + color: var(--tw-prose-kbd); + box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows); + font-size: 0.875em; + border-radius: 0.3125rem; + padding-top: 0.1875em; + padding-inline-end: 0.375em; + padding-bottom: 0.1875em; + padding-inline-start: 0.375em; +} + +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-code); + font-weight: 600; + font-size: 0.875em; } -@keyframes modal-pop { - 0% { - opacity: 0; - } +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: "`"; } -@keyframes progress-loading { - 50% { - background-position-x: -115%; +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: "`"; +} + +.prose :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; + font-size: 0.875em; +} + +.prose :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; + font-size: 0.9em; +} + +.prose :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-pre-code); + background-color: var(--tw-prose-pre-bg); + overflow-x: auto; + font-weight: 400; + font-size: 0.875em; + line-height: 1.7142857; + margin-top: 1.7142857em; + margin-bottom: 1.7142857em; + border-radius: 0.375rem; + padding-top: 0.8571429em; + padding-inline-end: 1.1428571em; + padding-bottom: 0.8571429em; + padding-inline-start: 1.1428571em; +} + +.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + background-color: transparent; + border-width: 0; + border-radius: 0; + padding: 0; + font-weight: inherit; + color: inherit; + font-size: inherit; + font-family: inherit; + line-height: inherit; +} + +.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: none; +} + +.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: none; +} + +.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + width: 100%; + table-layout: auto; + margin-top: 2em; + margin-bottom: 2em; + font-size: 0.875em; + line-height: 1.7142857; +} + +.prose :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-th-borders); +} + +.prose :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + vertical-align: bottom; + padding-inline-end: 0.5714286em; + padding-bottom: 0.5714286em; + padding-inline-start: 0.5714286em; +} + +.prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-td-borders); +} + +.prose :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-bottom-width: 0; +} + +.prose :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + vertical-align: baseline; +} + +.prose :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + border-top-width: 1px; + border-top-color: var(--tw-prose-th-borders); +} + +.prose :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + vertical-align: top; +} + +.prose :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + text-align: start; +} + +.prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; + margin-bottom: 0; +} + +.prose :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-captions); + font-size: 0.875em; + line-height: 1.4285714; + margin-top: 0.8571429em; +} + +.prose { + --tw-prose-body: #374151; + --tw-prose-headings: #111827; + --tw-prose-lead: #4b5563; + --tw-prose-links: #111827; + --tw-prose-bold: #111827; + --tw-prose-counters: #6b7280; + --tw-prose-bullets: #d1d5db; + --tw-prose-hr: #e5e7eb; + --tw-prose-quotes: #111827; + --tw-prose-quote-borders: #e5e7eb; + --tw-prose-captions: #6b7280; + --tw-prose-kbd: #111827; + --tw-prose-kbd-shadows: rgb(17 24 39 / 10%); + --tw-prose-code: #111827; + --tw-prose-pre-code: #e5e7eb; + --tw-prose-pre-bg: #1f2937; + --tw-prose-th-borders: #d1d5db; + --tw-prose-td-borders: #e5e7eb; + --tw-prose-invert-body: #d1d5db; + --tw-prose-invert-headings: #fff; + --tw-prose-invert-lead: #9ca3af; + --tw-prose-invert-links: #fff; + --tw-prose-invert-bold: #fff; + --tw-prose-invert-counters: #9ca3af; + --tw-prose-invert-bullets: #4b5563; + --tw-prose-invert-hr: #374151; + --tw-prose-invert-quotes: #f3f4f6; + --tw-prose-invert-quote-borders: #374151; + --tw-prose-invert-captions: #9ca3af; + --tw-prose-invert-kbd: #fff; + --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%); + --tw-prose-invert-code: #fff; + --tw-prose-invert-pre-code: #d1d5db; + --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); + --tw-prose-invert-th-borders: #4b5563; + --tw-prose-invert-td-borders: #374151; + font-size: 1rem; + line-height: 1.75; +} + +.prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; + margin-bottom: 0; +} + +.prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-inline-start: 0.375em; +} + +.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-inline-start: 0.375em; +} + +.prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.prose :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; +} + +.prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0.5em; + padding-inline-start: 1.625em; +} + +.prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-inline-start: 0; +} + +.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-inline-end: 0; +} + +.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-top: 0.5714286em; + padding-inline-end: 0.5714286em; + padding-bottom: 0.5714286em; + padding-inline-start: 0.5714286em; +} + +.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-inline-start: 0; +} + +.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-inline-end: 0; +} + +.prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-bottom: 0; +} + +.alert { + display: grid; + width: 100%; + grid-auto-flow: row; + align-content: flex-start; + align-items: center; + justify-items: center; + gap: 1rem; + text-align: center; + border-radius: var(--rounded-box, 1rem); + border-width: 1px; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + padding: 1rem; + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --alert-bg: var(--fallback-b2,oklch(var(--b2)/1)); + --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1)); + background-color: var(--alert-bg); +} + +@media (min-width: 640px) { + .alert { + grid-auto-flow: column; + grid-template-columns: auto minmax(auto,1fr); + justify-items: start; + text-align: start; } } -@keyframes radiomark { - 0% { - box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset, - 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset; +.avatar.placeholder > div { + display: flex; + align-items: center; + justify-content: center; +} + +.badge { + display: inline-flex; + align-items: center; + justify-content: center; + 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(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + height: 1.25rem; + font-size: 0.875rem; + line-height: 1.25rem; + width: -moz-fit-content; + width: fit-content; + padding-left: 0.563rem; + padding-right: 0.563rem; + border-radius: var(--rounded-badge, 1.9rem); + border-width: 1px; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); +} + +@media (hover:hover) { + .checkbox-primary:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); } - 50% { - box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset, - 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset; + .label a:hover { + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + } + + .menu li > *:not(ul, .menu-title, details, .btn):active, +.menu li > *:not(ul, .menu-title, details, .btn).active, +.menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); + } + + .table tr.hover:hover, + .table tr.hover:nth-child(even):hover { + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); } +} + +.btn { + display: inline-flex; + height: 3rem; + min-height: 3rem; + flex-shrink: 0; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + flex-wrap: wrap; + align-items: center; + justify-content: center; + border-radius: var(--rounded-btn, 0.5rem); + border-color: transparent; + border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity)); + padding-left: 1rem; + padding-right: 1rem; + text-align: center; + font-size: 0.875rem; + line-height: 1em; + gap: 0.5rem; + font-weight: 600; + text-decoration-line: none; + transition-duration: 200ms; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + border-width: var(--border-btn, 1px); + transition-property: color, background-color, border-color, opacity, box-shadow, transform; + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: var(--fallback-bc,oklch(var(--bc)/1)); + background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity)); + --tw-bg-opacity: 1; + --tw-border-opacity: 1; +} + +.btn-disabled, + .btn[disabled], + .btn:disabled { + pointer-events: none; +} + +.btn-square { + height: 3rem; + width: 3rem; + padding: 0px; +} + +:where(.btn:is(input[type="checkbox"])), +:where(.btn:is(input[type="radio"])) { + width: auto; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.btn:is(input[type="checkbox"]):after, +.btn:is(input[type="radio"]):after { + --tw-content: attr(aria-label); + content: var(--tw-content); +} + +.checkbox { + flex-shrink: 0; + --chkbg: var(--fallback-bc,oklch(var(--bc)/1)); + --chkfg: var(--fallback-b1,oklch(var(--b1)/1)); + height: 1.5rem; + width: 1.5rem; + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-border-opacity: 0.2; +} + +.dropdown { + position: relative; + display: inline-block; +} + +.dropdown > *:not(summary):focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.dropdown .dropdown-content { + position: absolute; +} + +.dropdown:is(:not(details)) .dropdown-content { + visibility: hidden; + opacity: 0; + transform-origin: top; + --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)); + 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(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; +} + +.dropdown-end .dropdown-content { + inset-inline-end: 0px; +} + +.dropdown-left .dropdown-content { + bottom: auto; + inset-inline-end: 100%; + top: 0px; + transform-origin: right; +} + +.dropdown-right .dropdown-content { + bottom: auto; + inset-inline-start: 100%; + top: 0px; + transform-origin: left; +} + +.dropdown-bottom .dropdown-content { + bottom: auto; + top: 100%; + transform-origin: top; +} + +.dropdown-top .dropdown-content { + bottom: 100%; + top: auto; + transform-origin: bottom; +} + +.dropdown-end.dropdown-right .dropdown-content { + bottom: 0px; + top: auto; +} + +.dropdown-end.dropdown-left .dropdown-content { + bottom: 0px; + top: auto; +} + +.dropdown.dropdown-open .dropdown-content, +.dropdown:not(.dropdown-hover):focus .dropdown-content, +.dropdown:focus-within .dropdown-content { + visibility: visible; + opacity: 1; +} + +@media (hover: hover) { + .dropdown.dropdown-hover:hover .dropdown-content { + visibility: visible; + opacity: 1; + } + + .btm-nav > *.disabled:hover, + .btm-nav > *[disabled]:hover { + pointer-events: none; + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; + } + + .btn:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn:hover { + background-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%, + black + ); + border-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%, + black + ); + } + } + + @supports not (color: oklch(0% 0 0)) { + .btn:hover { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + } + + .btn.glass:hover { + --glass-opacity: 25%; + --glass-border-opacity: 15%; + } + + .btn-ghost:hover { + border-color: transparent; + } + + @supports (color: oklch(0% 0 0)) { + .btn-ghost:hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + } + } + + .btn-outline:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-b1,oklch(var(--b1)/var(--tw-text-opacity))); + } + + .btn-outline.btn-primary:hover { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-primary:hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + + .btn-outline.btn-secondary:hover { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-secondary:hover { + background-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + } + } + + .btn-outline.btn-accent:hover { + --tw-text-opacity: 1; + color: var(--fallback-ac,oklch(var(--ac)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-accent:hover { + background-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + } + } + + .btn-outline.btn-success:hover { + --tw-text-opacity: 1; + color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-success:hover { + background-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + } + } + + .btn-outline.btn-info:hover { + --tw-text-opacity: 1; + color: var(--fallback-inc,oklch(var(--inc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-info:hover { + background-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + } + } + + .btn-outline.btn-warning:hover { + --tw-text-opacity: 1; + color: var(--fallback-wac,oklch(var(--wac)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-warning:hover { + background-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + } + } + + .btn-outline.btn-error:hover { + --tw-text-opacity: 1; + color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-error:hover { + background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + } + } + + .btn-disabled:hover, + .btn[disabled]:hover, + .btn:disabled:hover { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; + } + + @supports (color: color-mix(in oklab, black, black)) { + .btn:is(input[type="checkbox"]:checked):hover, .btn:is(input[type="radio"]:checked):hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + + .dropdown.dropdown-hover:hover .dropdown-content { + --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)); + } + + :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(.active, .btn):hover, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(.active, .btn):hover { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: 2px; + } + + @supports (color: oklch(0% 0 0)) { + :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(.active, .btn):hover, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(.active, .btn):hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + } + } +} + +.dropdown:is(details) summary::-webkit-details-marker { + display: none; +} + +.footer { + display: grid; + width: 100%; + grid-auto-flow: row; + place-items: start; + -moz-column-gap: 1rem; + column-gap: 1rem; + row-gap: 2.5rem; + font-size: 0.875rem; + line-height: 1.25rem; +} + +.footer > * { + display: grid; + place-items: start; + gap: 0.5rem; +} + +@media (min-width: 48rem) { + .footer { + grid-auto-flow: column; + } + + .footer-center { + grid-auto-flow: row dense; + } +} + +.label { + display: flex; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + align-items: center; + justify-content: space-between; + padding-left: 0.25rem; + padding-right: 0.25rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.hero { + display: grid; + width: 100%; + place-items: center; + background-size: cover; + background-position: center; +} + +.hero > * { + grid-column-start: 1; + grid-row-start: 1; +} + +.input { + flex-shrink: 1; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 3rem; + padding-left: 1rem; + padding-right: 1rem; + font-size: 1rem; + line-height: 2; + line-height: 1.5rem; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} + +.input[type="number"]::-webkit-inner-spin-button, +.input-md[type="number"]::-webkit-inner-spin-button { + margin-top: -1rem; + margin-bottom: -1rem; + margin-inline-end: -1rem; +} + +.input-sm[type="number"]::-webkit-inner-spin-button { + margin-top: 0px; + margin-bottom: 0px; + margin-inline-end: -0px; +} + +.join .dropdown .join-item:first-child:not(:last-child), + .join *:first-child:not(:last-child) .dropdown .join-item { + border-start-end-radius: inherit; + border-end-end-radius: inherit; +} + +.\!link { + cursor: pointer !important; + text-decoration-line: underline !important; +} + +.link { + cursor: pointer; + text-decoration-line: underline; +} + +.menu { + display: flex; + flex-direction: column; + flex-wrap: wrap; + font-size: 0.875rem; + line-height: 1.25rem; + padding: 0.5rem; +} + +.menu :where(li ul) { + position: relative; + white-space: nowrap; + margin-inline-start: 1rem; + padding-inline-start: 0.5rem; +} + +.menu :where(li:not(.menu-title) > *:not(ul, details, .menu-title, .btn)), .menu :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + display: grid; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: 0.5rem; + grid-auto-columns: minmax(auto, max-content) auto max-content; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.menu li.disabled { + cursor: not-allowed; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + color: var(--fallback-bc,oklch(var(--bc)/0.3)); +} + +.menu :where(li > .menu-dropdown:not(.menu-dropdown-show)) { + display: none; +} + +:where(.menu li) { + position: relative; + display: flex; + flex-shrink: 0; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; +} + +:where(.menu li) .badge { + justify-self: end; +} + +.select { + display: inline-flex; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 3rem; + min-height: 3rem; + padding-inline-start: 1rem; + padding-inline-end: 2.5rem; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 2; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); + background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), + linear-gradient(135deg, currentColor 50%, transparent 50%); + background-position: calc(100% - 20px) calc(1px + 50%), + calc(100% - 16.1px) calc(1px + 50%); + background-size: 4px 4px, + 4px 4px; + background-repeat: no-repeat; +} + +.select[multiple] { + height: auto; +} + +.stats { + display: inline-grid; + border-radius: var(--rounded-box, 1rem); + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); +} + +:where(.stats) { + grid-auto-flow: column; + overflow-x: auto; +} + +.stat { + display: inline-grid; + width: 100%; + grid-template-columns: repeat(1, 1fr); + -moz-column-gap: 1rem; + column-gap: 1rem; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-border-opacity: 0.1; + padding-left: 1.5rem; + padding-right: 1.5rem; + padding-top: 1rem; + padding-bottom: 1rem; +} + +.swap { + position: relative; + display: inline-grid; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + place-content: center; + cursor: pointer; +} + +.swap > * { + grid-column-start: 1; + grid-row-start: 1; + transition-duration: 300ms; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-property: transform, opacity; +} + +.swap input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.swap .swap-on, +.swap .swap-indeterminate, +.swap input:indeterminate ~ .swap-on { + opacity: 0; +} + +.swap input:checked ~ .swap-off, +.swap-active .swap-off, +.swap input:indeterminate ~ .swap-off { + opacity: 0; +} + +.swap input:checked ~ .swap-on, +.swap-active .swap-on, +.swap input:indeterminate ~ .swap-indeterminate { + opacity: 1; +} + +.table { + position: relative; + width: 100%; + border-radius: var(--rounded-box, 1rem); + text-align: left; + font-size: 0.875rem; + line-height: 1.25rem; +} + +.table :where(.table-pin-rows thead tr) { + position: sticky; + top: 0px; + z-index: 1; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} + +.table :where(.table-pin-rows tfoot tr) { + position: sticky; + bottom: 0px; + z-index: 1; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} + +.table :where(.table-pin-cols tr th) { + position: sticky; + left: 0px; + right: 0px; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} + +.textarea { + min-height: 3rem; + flex-shrink: 1; + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 2; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} + +.toggle { + flex-shrink: 0; + --tglbg: var(--fallback-b1,oklch(var(--b1)/1)); + --handleoffset: 1.5rem; + --handleoffsetcalculator: calc(var(--handleoffset) * -1); + --togglehandleborder: 0 0; + height: 1.5rem; + width: 3rem; + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: var(--rounded-badge, 1.9rem); + border-width: 1px; + border-color: currentColor; + background-color: currentColor; + color: var(--fallback-bc,oklch(var(--bc)/0.5)); + transition: background, + box-shadow var(--animation-input, 0.2s) ease-out; + box-shadow: var(--handleoffsetcalculator) 0 0 2px var(--tglbg) inset, + 0 0 0 2px var(--tglbg) inset, + var(--togglehandleborder); +} + +.badge-primary { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} + +.badge-outline { + border-color: currentColor; + --tw-border-opacity: 0.5; + background-color: transparent; + color: currentColor; +} + +.badge-outline.badge-neutral { + --tw-text-opacity: 1; + color: var(--fallback-n,oklch(var(--n)/var(--tw-text-opacity))); +} + +.badge-outline.badge-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} + +.badge-outline.badge-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity))); +} + +.badge-outline.badge-accent { + --tw-text-opacity: 1; + color: var(--fallback-a,oklch(var(--a)/var(--tw-text-opacity))); +} + +.badge-outline.badge-info { + --tw-text-opacity: 1; + color: var(--fallback-in,oklch(var(--in)/var(--tw-text-opacity))); +} + +.badge-outline.badge-success { + --tw-text-opacity: 1; + color: var(--fallback-su,oklch(var(--su)/var(--tw-text-opacity))); +} + +.badge-outline.badge-warning { + --tw-text-opacity: 1; + color: var(--fallback-wa,oklch(var(--wa)/var(--tw-text-opacity))); +} + +.badge-outline.badge-error { + --tw-text-opacity: 1; + color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity))); +} + +.btm-nav > *.disabled, + .btm-nav > *[disabled] { + pointer-events: none; + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; +} + +.btm-nav > * .label { + font-size: 1rem; + line-height: 1.5rem; +} + +@media (prefers-reduced-motion: no-preference) { + .btn { + animation: button-pop var(--animation-btn, 0.25s) ease-out; + } +} + +.btn:active:hover, + .btn:active:focus { + animation: button-pop 0s ease-out; + transform: scale(var(--btn-focus-scale, 0.97)); +} + +@supports not (color: oklch(0% 0 0)) { + .btn { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + + .btn-primary { + --btn-color: var(--fallback-p); + } + + .prose :where(code):not(:where([class~="not-prose"] *, pre *)) { + background-color: var(--fallback-b3,oklch(var(--b3)/1)); + } +} + +@supports (color: color-mix(in oklab, black, black)) { + .btn-outline.btn-primary.btn-active { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + + .btn-outline.btn-secondary.btn-active { + background-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + } + + .btn-outline.btn-accent.btn-active { + background-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + } + + .btn-outline.btn-success.btn-active { + background-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + } + + .btn-outline.btn-info.btn-active { + background-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + } + + .btn-outline.btn-warning.btn-active { + background-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + } + + .btn-outline.btn-error.btn-active { + background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + } +} + +.btn:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; +} + +.btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} + +@supports (color: oklch(0% 0 0)) { + .btn-primary { + --btn-color: var(--p); + } +} + +.btn.glass { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: currentColor; +} + +.btn.glass.btn-active { + --glass-opacity: 25%; + --glass-border-opacity: 15%; +} + +.btn-ghost { + border-width: 1px; + border-color: transparent; + background-color: transparent; + color: currentColor; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: currentColor; +} + +.btn-ghost.btn-active { + border-color: transparent; + background-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.btn-outline { + border-color: currentColor; + background-color: transparent; + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.btn-outline.btn-active { + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-b1,oklch(var(--b1)/var(--tw-text-opacity))); +} + +.btn-outline.btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} + +.btn-outline.btn-primary.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} + +.btn-outline.btn-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity))); +} + +.btn-outline.btn-secondary.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); +} + +.btn-outline.btn-accent { + --tw-text-opacity: 1; + color: var(--fallback-a,oklch(var(--a)/var(--tw-text-opacity))); +} + +.btn-outline.btn-accent.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-ac,oklch(var(--ac)/var(--tw-text-opacity))); +} + +.btn-outline.btn-success { + --tw-text-opacity: 1; + color: var(--fallback-su,oklch(var(--su)/var(--tw-text-opacity))); +} + +.btn-outline.btn-success.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity))); +} + +.btn-outline.btn-info { + --tw-text-opacity: 1; + color: var(--fallback-in,oklch(var(--in)/var(--tw-text-opacity))); +} + +.btn-outline.btn-info.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-inc,oklch(var(--inc)/var(--tw-text-opacity))); +} + +.btn-outline.btn-warning { + --tw-text-opacity: 1; + color: var(--fallback-wa,oklch(var(--wa)/var(--tw-text-opacity))); +} + +.btn-outline.btn-warning.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-wac,oklch(var(--wac)/var(--tw-text-opacity))); +} + +.btn-outline.btn-error { + --tw-text-opacity: 1; + color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity))); +} + +.btn-outline.btn-error.btn-active { + --tw-text-opacity: 1; + color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity))); +} + +.btn.btn-disabled, + .btn[disabled], + .btn:disabled { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; +} + +.btn:is(input[type="checkbox"]:checked), +.btn:is(input[type="radio"]:checked) { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} + +.btn:is(input[type="checkbox"]:checked):focus-visible, .btn:is(input[type="radio"]:checked):focus-visible { + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} + +@keyframes button-pop { + 0% { + transform: scale(var(--btn-focus-scale, 0.98)); + } + + 40% { + transform: scale(1.02); + } + + 100% { + transform: scale(1); + } +} + +.checkbox:focus { + box-shadow: none; +} + +.checkbox:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/1)); +} + +.checkbox:disabled { + border-width: 0px; + cursor: not-allowed; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.2; +} + +.checkbox:checked, + .checkbox[aria-checked="true"] { + background-repeat: no-repeat; + animation: checkmark var(--animation-input, 0.2s) ease-out; + background-color: var(--chkbg); + background-image: linear-gradient(-45deg, transparent 65%, var(--chkbg) 65.99%), + linear-gradient(45deg, transparent 75%, var(--chkbg) 75.99%), + linear-gradient(-45deg, var(--chkbg) 40%, transparent 40.99%), + linear-gradient( + 45deg, + var(--chkbg) 30%, + var(--chkfg) 30.99%, + var(--chkfg) 40%, + transparent 40.99% + ), + linear-gradient(-45deg, var(--chkfg) 50%, var(--chkbg) 50.99%); +} + +.checkbox:indeterminate { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + background-repeat: no-repeat; + animation: checkmark var(--animation-input, 0.2s) ease-out; + background-image: linear-gradient(90deg, transparent 80%, var(--chkbg) 80%), + linear-gradient(-90deg, transparent 80%, var(--chkbg) 80%), + linear-gradient(0deg, var(--chkbg) 43%, var(--chkfg) 43%, var(--chkfg) 57%, var(--chkbg) 57%); +} + +.checkbox-primary { + --chkbg: var(--fallback-p,oklch(var(--p)/1)); + --chkfg: var(--fallback-pc,oklch(var(--pc)/1)); + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); +} + +.checkbox-primary:focus-visible { + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} + +.checkbox-primary:checked, + .checkbox-primary[aria-checked="true"] { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} + +@keyframes checkmark { + 0% { + background-position-y: 5px; + } + + 50% { + background-position-y: -2px; + } + + 100% { + background-position-y: 0; + } +} + +.dropdown.dropdown-open .dropdown-content, +.dropdown:focus .dropdown-content, +.dropdown:focus-within .dropdown-content { + --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)); +} + +.input input { + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + background-color: transparent; +} + +.input input:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.input[list]::-webkit-calendar-picker-indicator { + line-height: 1em; +} + +.input-bordered { + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.input:focus, + .input:focus-within { + box-shadow: none; + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.input:has(> input[disabled]), + .input-disabled, + .input:disabled, + .input[disabled] { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + color: var(--fallback-bc,oklch(var(--bc)/0.4)); +} + +.input:has(> input[disabled])::-moz-placeholder, .input-disabled::-moz-placeholder, .input:disabled::-moz-placeholder, .input[disabled]::-moz-placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} + +.input:has(> input[disabled])::placeholder, + .input-disabled::placeholder, + .input:disabled::placeholder, + .input[disabled]::placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} + +.input:has(> input[disabled]) > input[disabled] { + cursor: not-allowed; +} + +.input::-webkit-date-and-time-value { + text-align: inherit; +} + +.join > :where(*:not(:first-child)):is(.btn) { + margin-inline-start: calc(var(--border-btn) * -1); +} + +.\!link:focus { + outline: 2px solid transparent !important; + outline-offset: 2px !important; +} + +.link:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.\!link:focus-visible { + outline: 2px solid currentColor !important; + outline-offset: 2px !important; +} + +.link:focus-visible { + outline: 2px solid currentColor; + outline-offset: 2px; +} + +.loading { + pointer-events: none; + display: inline-block; + aspect-ratio: 1 / 1; + width: 1.5rem; + background-color: currentColor; + -webkit-mask-size: 100%; + mask-size: 100%; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); +} + +.loading-spinner { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); +} + +.loading-xs { + width: 1rem; +} + +:where(.menu li:empty) { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + margin: 0.5rem 1rem; + height: 1px; +} + +.menu :where(li ul):before { + position: absolute; + bottom: 0.75rem; + inset-inline-start: 0px; + top: 0.75rem; + width: 1px; + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + content: ""; +} + +.menu :where(li:not(.menu-title) > *:not(ul, details, .menu-title, .btn)), +.menu :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + border-radius: var(--rounded-btn, 0.5rem); + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + text-align: start; + 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(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + text-wrap: balance; +} + +:where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(summary, .active, .btn).focus, :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):not(summary, .active, .btn):focus, :where(.menu li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title)):is(summary):not(.active, .btn):focus-visible, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(summary, .active, .btn).focus, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):not(summary, .active, .btn):focus, :where(.menu li:not(.menu-title, .disabled) > details > summary:not(.menu-title)):is(summary):not(.active, .btn):focus-visible { + cursor: pointer; + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + outline: 2px solid transparent; + outline-offset: 2px; +} + +.menu li > *:not(ul, .menu-title, details, .btn):active, +.menu li > *:not(ul, .menu-title, details, .btn).active, +.menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); +} + +.menu :where(li > details > summary)::-webkit-details-marker { + display: none; +} + +.menu :where(li > details > summary):after, +.menu :where(li > .menu-dropdown-toggle):after { + justify-self: end; + display: block; + margin-top: -0.5rem; + height: 0.5rem; + width: 0.5rem; + transform: rotate(45deg); + transition-property: transform, margin-top; + transition-duration: 0.3s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + content: ""; + transform-origin: 75% 75%; + box-shadow: 2px 2px; + pointer-events: none; +} + +.menu :where(li > details[open] > summary):after, +.menu :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { + transform: rotate(225deg); + margin-top: 0; +} + +.mockup-phone .display { + overflow: hidden; + border-radius: 40px; + margin-top: -25px; +} + +.mockup-browser .mockup-browser-toolbar .input { + position: relative; + margin-left: auto; + margin-right: auto; + display: block; + height: 1.75rem; + width: 24rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + padding-left: 2rem; + direction: ltr; +} + +.mockup-browser .mockup-browser-toolbar .input:before { + content: ""; + position: absolute; + left: 0.5rem; + top: 50%; + aspect-ratio: 1 / 1; + height: 0.75rem; + --tw-translate-y: -50%; + 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)); + border-radius: 9999px; + border-width: 2px; + border-color: currentColor; + opacity: 0.6; +} + +.mockup-browser .mockup-browser-toolbar .input:after { + content: ""; + position: absolute; + left: 1.25rem; + top: 50%; + height: 0.5rem; + --tw-translate-y: 25%; + --tw-rotate: -45deg; + 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)); + border-radius: 9999px; + border-width: 1px; + border-color: currentColor; + opacity: 0.6; +} + +@keyframes modal-pop { + 0% { + opacity: 0; + } +} + +@keyframes progress-loading { + 50% { + background-position-x: -115%; + } +} + +@keyframes radiomark { + 0% { + box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } + + 50% { + box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } + + 100% { + box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } +} + +@keyframes rating-pop { + 0% { + transform: translateY(-0.125em); + } + + 40% { + transform: translateY(-0.125em); + } + + 100% { + transform: translateY(0); + } +} + +.select-bordered { + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.select:focus { + box-shadow: none; + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.select-disabled, + .select:disabled, + .select[disabled] { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + color: var(--fallback-bc,oklch(var(--bc)/0.4)); +} + +.select-disabled::-moz-placeholder, .select:disabled::-moz-placeholder, .select[disabled]::-moz-placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} + +.select-disabled::placeholder, + .select:disabled::placeholder, + .select[disabled]::placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} + +.select-multiple, + .select[multiple], + .select[size].select:not([size="1"]) { + background-image: none; + padding-right: 1rem; +} + +[dir="rtl"] .select { + background-position: calc(0% + 12px) calc(1px + 50%), + calc(0% + 16px) calc(1px + 50%); +} + +@keyframes skeleton { + from { + background-position: 150%; + } + + to { + background-position: -50%; + } +} + +:where(.stats) > :not([hidden]) ~ :not([hidden]) { + --tw-divide-x-reverse: 0; + border-right-width: calc(1px * var(--tw-divide-x-reverse)); + border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); + --tw-divide-y-reverse: 0; + border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width: calc(0px * var(--tw-divide-y-reverse)); +} + +[dir="rtl"] .stats > *:not([hidden]) ~ *:not([hidden]) { + --tw-divide-x-reverse: 1; +} + +.table:where([dir="rtl"], [dir="rtl"] *) { + text-align: right; +} + +.table :where(th, td) { + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + vertical-align: middle; +} + +.table tr.active, + .table tr.active:nth-child(even), + .table-zebra tbody tr:nth-child(even) { + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); +} + +.table :where(thead tr, tbody tr:not(:last-child), tbody tr:first-child:last-child) { + border-bottom-width: 1px; + --tw-border-opacity: 1; + border-bottom-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); +} + +.table :where(thead, tfoot) { + white-space: nowrap; + font-size: 0.75rem; + line-height: 1rem; + font-weight: 700; + color: var(--fallback-bc,oklch(var(--bc)/0.6)); +} + +.table :where(tfoot) { + border-top-width: 1px; + --tw-border-opacity: 1; + border-top-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); +} + +.textarea-bordered { + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.textarea:focus { + box-shadow: none; + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.textarea-disabled, + .textarea:disabled, + .textarea[disabled] { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + color: var(--fallback-bc,oklch(var(--bc)/0.4)); +} + +.textarea-disabled::-moz-placeholder, .textarea:disabled::-moz-placeholder, .textarea[disabled]::-moz-placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} + +.textarea-disabled::placeholder, + .textarea:disabled::placeholder, + .textarea[disabled]::placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} + +@keyframes toast-pop { + 0% { + transform: scale(0.9); + opacity: 0; + } + + 100% { + transform: scale(1); + opacity: 1; + } +} + +[dir="rtl"] .toggle { + --handleoffsetcalculator: calc(var(--handleoffset) * 1); +} + +.toggle:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.toggle:hover { + background-color: currentColor; +} + +.toggle:checked, + .toggle[aria-checked="true"] { + background-image: none; + --handleoffsetcalculator: var(--handleoffset); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); +} + +[dir="rtl"] .toggle:checked, [dir="rtl"] .toggle[aria-checked="true"] { + --handleoffsetcalculator: calc(var(--handleoffset) * -1); +} + +.toggle:indeterminate { + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, + calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, + 0 0 0 2px var(--tglbg) inset; +} + +[dir="rtl"] .toggle:indeterminate { + box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, + calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, + 0 0 0 2px var(--tglbg) inset; +} + +.toggle:disabled { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + background-color: transparent; + opacity: 0.3; + --togglehandleborder: 0 0 0 3px var(--fallback-bc,oklch(var(--bc)/1)) inset, + var(--handleoffsetcalculator) 0 0 3px var(--fallback-bc,oklch(var(--bc)/1)) inset; +} + +:root .prose { + --tw-prose-body: var(--fallback-bc,oklch(var(--bc)/0.8)); + --tw-prose-headings: var(--fallback-bc,oklch(var(--bc)/1)); + --tw-prose-lead: var(--fallback-bc,oklch(var(--bc)/1)); + --tw-prose-links: var(--fallback-bc,oklch(var(--bc)/1)); + --tw-prose-bold: var(--fallback-bc,oklch(var(--bc)/1)); + --tw-prose-counters: var(--fallback-bc,oklch(var(--bc)/1)); + --tw-prose-bullets: var(--fallback-bc,oklch(var(--bc)/0.5)); + --tw-prose-hr: var(--fallback-bc,oklch(var(--bc)/0.2)); + --tw-prose-quotes: var(--fallback-bc,oklch(var(--bc)/1)); + --tw-prose-quote-borders: var(--fallback-bc,oklch(var(--bc)/0.2)); + --tw-prose-captions: var(--fallback-bc,oklch(var(--bc)/0.5)); + --tw-prose-code: var(--fallback-bc,oklch(var(--bc)/1)); + --tw-prose-pre-code: var(--fallback-nc,oklch(var(--nc)/1)); + --tw-prose-pre-bg: var(--fallback-n,oklch(var(--n)/1)); + --tw-prose-th-borders: var(--fallback-bc,oklch(var(--bc)/0.5)); + --tw-prose-td-borders: var(--fallback-bc,oklch(var(--bc)/0.2)); + --tw-prose-kbd: var(--fallback-bc,oklch(var(--bc)/0.8)); +} + +.prose :where(code):not(:where([class~="not-prose"] *, pre *)) { + padding: 1px 8px; + border-radius: var(--rounded-badge); + font-weight: initial; + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); +} + +.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { + display: none; +} + +.prose pre code { + border-radius: 0; + padding: 0; +} + +.prose :where(tbody tr, thead):not(:where([class~="not-prose"] *)) { + border-bottom-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} + +.btn-sm { + height: 2rem; + min-height: 2rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + font-size: 0.875rem; +} + +.btn-square:where(.btn-xs) { + height: 1.5rem; + width: 1.5rem; + padding: 0px; +} + +.btn-square:where(.btn-sm) { + height: 2rem; + width: 2rem; + padding: 0px; +} + +.btn-square:where(.btn-md) { + height: 3rem; + width: 3rem; + padding: 0px; +} + +.btn-square:where(.btn-lg) { + height: 4rem; + width: 4rem; + padding: 0px; +} + +.btn-circle:where(.btn-sm) { + height: 2rem; + width: 2rem; + border-radius: 9999px; + padding: 0px; +} + +[type="checkbox"].checkbox-xs { + height: 1rem; + width: 1rem; +} + +.input-sm { + height: 2rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + font-size: 0.875rem; + line-height: 2rem; +} + +.select-sm { + height: 2rem; + min-height: 2rem; + padding-left: 0.75rem; + padding-right: 2rem; + font-size: 0.875rem; + line-height: 2rem; +} + +[dir="rtl"] .select-sm { + padding-left: 2rem; + padding-right: 0.75rem; +} + +.join.join-vertical > :where(*:not(:first-child)):is(.btn) { + margin-top: calc(var(--border-btn) * -1); +} + +.join.join-horizontal > :where(*:not(:first-child)):is(.btn) { + margin-inline-start: calc(var(--border-btn) * -1); + margin-top: 0px; +} + +.site-container { + margin-left: auto; + margin-right: auto; + width: 100%; + max-width: 64rem; + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +@media (min-width: 1024px) { + .site-container { + padding-left: 2rem; + padding-right: 2rem; + } +} + +.section-pad { + padding-top: 5rem; + padding-bottom: 5rem; +} + +@media (min-width: 768px) { + .section-pad { + padding-top: 7rem; + padding-bottom: 7rem; + } +} + +.eyebrow { + margin-bottom: 1rem; + font-size: 0.75rem; + line-height: 1rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.22em; + --tw-text-opacity: 1; + color: rgb(8 117 209 / var(--tw-text-opacity, 1)); +} + +.section-title { + font-size: 1.875rem; + line-height: 2.25rem; + font-weight: 700; + letter-spacing: -0.025em; + --tw-text-opacity: 1; + color: rgb(3 21 41 / var(--tw-text-opacity, 1)); +} + +@media (min-width: 768px) { + .section-title { + font-size: 2.25rem; + line-height: 2.5rem; + } +} + +.btn-primary { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.pointer-events-none { + pointer-events: none; +} + +.pointer-events-auto { + pointer-events: auto; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.inset-x-0 { + left: 0px; + right: 0px; +} + +.bottom-0 { + bottom: 0px; +} + +.right-3 { + right: 0.75rem; +} + +.top-0 { + top: 0px; +} + +.top-3 { + top: 0.75rem; +} + +.top-\[53px\] { + top: 53px; +} + +.isolate { + isolation: isolate; +} + +.z-10 { + z-index: 10; +} + +.z-20 { + z-index: 20; +} + +.z-50 { + z-index: 50; +} + +.z-\[1\] { + z-index: 1; +} + +.order-first { + order: -9999; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.\!mb-3 { + margin-bottom: 0.75rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem; +} + +.mb-1\.5 { + margin-bottom: 0.375rem; +} + +.ml-auto { + margin-left: auto; +} + +.mt-0\.5 { + margin-top: 0.125rem; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mt-12 { + margin-top: 3rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mt-5 { + margin-top: 1.25rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mt-7 { + margin-top: 1.75rem; +} + +.mt-8 { + margin-top: 2rem; +} + +.mt-9 { + margin-top: 2.25rem; +} + +.block { + display: block; +} + +.flex { + display: flex; +} + +.inline-flex { + display: inline-flex; +} + +.table { + display: table; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.aspect-\[16\/9\] { + aspect-ratio: 16/9; +} + +.size-1\.5 { + width: 0.375rem; + height: 0.375rem; +} + +.size-10 { + width: 2.5rem; + height: 2.5rem; +} + +.size-4 { + width: 1rem; + height: 1rem; +} + +.h-12 { + height: 3rem; +} + +.h-16 { + height: 4rem; +} + +.h-20 { + height: 5rem; +} + +.h-24 { + height: 6rem; +} + +.h-3 { + height: 0.75rem; +} + +.h-8 { + height: 2rem; +} + +.h-full { + height: 100%; +} + +.min-h-screen { + min-height: 100vh; +} + +.w-12 { + width: 3rem; +} + +.w-16 { + width: 4rem; +} + +.w-20 { + width: 5rem; +} + +.w-28 { + width: 7rem; +} + +.w-5 { + width: 1.25rem; +} + +.w-56 { + width: 14rem; +} + +.w-auto { + width: auto; +} + +.w-full { + width: 100%; +} + +.min-w-0 { + min-width: 0px; +} + +.min-w-\[190px\] { + min-width: 190px; +} + +.min-w-\[580px\] { + min-width: 580px; +} + +.max-w-2xl { + max-width: 42rem; +} + +.max-w-5xl { + max-width: 64rem; +} + +.max-w-7xl { + max-width: 80rem; +} + +.max-w-lg { + max-width: 32rem; +} + +.max-w-md { + max-width: 28rem; +} + +.max-w-none { + max-width: none; +} + +.max-w-xl { + max-width: 36rem; +} + +.flex-1 { + flex: 1 1 0%; +} + +.shrink-0 { + flex-shrink: 0; +} + +.border-collapse { + border-collapse: collapse; +} + +.-translate-y-full { + --tw-translate-y: -100%; + 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-0 { + --tw-translate-y: 0px; + 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%, 100% { + transform: translateY(-25%); + animation-timing-function: cubic-bezier(0.8,0,1,1); + } + + 50% { + transform: none; + animation-timing-function: cubic-bezier(0,0,0.2,1); + } +} + +.animate-bounce { + animation: bounce 1s infinite; +} + +@keyframes pulse { + 50% { + opacity: .5; + } +} + +.animate-pulse { + animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; +} + +.cursor-pointer { + cursor: pointer; +} + +.resize-y { + resize: vertical; +} + +.resize { + resize: both; +} + +.snap-x { + scroll-snap-type: x var(--tw-scroll-snap-strictness); +} + +.snap-mandatory { + --tw-scroll-snap-strictness: mandatory; +} + +.snap-start { + scroll-snap-align: start; +} + +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.flex-col { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.items-start { + align-items: flex-start; +} + +.items-center { + align-items: center; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.gap-1\.5 { + gap: 0.375rem; +} + +.gap-10 { + gap: 2.5rem; +} + +.gap-12 { + gap: 3rem; +} + +.gap-14 { + gap: 3.5rem; +} + +.gap-2 { + gap: 0.5rem; +} + +.gap-3 { + gap: 0.75rem; +} + +.gap-5 { + gap: 1.25rem; +} + +.gap-6 { + gap: 1.5rem; +} + +.gap-7 { + gap: 1.75rem; +} + +.gap-8 { + gap: 2rem; +} + +.gap-x-4 { + -moz-column-gap: 1rem; + column-gap: 1rem; +} + +.gap-x-8 { + -moz-column-gap: 2rem; + column-gap: 2rem; +} + +.gap-y-2 { + row-gap: 0.5rem; +} + +.gap-y-4 { + row-gap: 1rem; +} + +.gap-y-8 { + row-gap: 2rem; +} + +.space-y-10 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2.5rem * var(--tw-space-y-reverse)); +} + +.space-y-3 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); +} + +.space-y-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +} + +.justify-self-start { + justify-self: start; +} + +.overflow-hidden { + overflow: hidden; +} + +.overflow-x-auto { + overflow-x: auto; +} + +.whitespace-nowrap { + white-space: nowrap; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded-none { + border-radius: 0px; +} + +.rounded-sm { + border-radius: 0.125rem; +} + +.border { + border-width: 1px; +} + +.border-b { + border-bottom-width: 1px; +} + +.border-l { + border-left-width: 1px; +} + +.border-r { + border-right-width: 1px; +} + +.border-t { + border-top-width: 1px; +} + +.border-base-300 { + --tw-border-opacity: 1; + border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity, 1))); +} + +.border-white\/10 { + border-color: rgb(255 255 255 / 0.1); +} + +.border-white\/15 { + border-color: rgb(255 255 255 / 0.15); +} + +.border-white\/50 { + border-color: rgb(255 255 255 / 0.5); +} + +.bg-\[\#020d1d\]\/90 { + background-color: rgb(2 13 29 / 0.9); +} + +.bg-\[\#06172a\] { + --tw-bg-opacity: 1; + background-color: rgb(6 23 42 / var(--tw-bg-opacity, 1)); +} + +.bg-base-200 { + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity, 1))); +} + +.bg-base-200\/60 { + background-color: var(--fallback-b2,oklch(var(--b2)/0.6)); +} + +.bg-base-300 { + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity, 1))); +} + +.bg-navy-950 { + --tw-bg-opacity: 1; + background-color: rgb(3 21 41 / var(--tw-bg-opacity, 1)); +} + +.bg-primary\/15 { + background-color: var(--fallback-p,oklch(var(--p)/0.15)); +} + +.bg-secondary { + --tw-bg-opacity: 1; + background-color: var(--fallback-s,oklch(var(--s)/var(--tw-bg-opacity, 1))); +} + +.bg-signal { + --tw-bg-opacity: 1; + background-color: rgb(62 174 43 / var(--tw-bg-opacity, 1)); +} + +.bg-signal\/15 { + background-color: rgb(62 174 43 / 0.15); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); +} + +.bg-white\/45 { + background-color: rgb(255 255 255 / 0.45); +} + +.bg-white\/95 { + background-color: rgb(255 255 255 / 0.95); +} + +.bg-gradient-to-r { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); +} + +.from-navy-950 { + --tw-gradient-from: #031529 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(3 21 41 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.to-navy-800 { + --tw-gradient-to: #073c68 var(--tw-gradient-to-position); +} + +.bg-cover { + background-size: cover; +} + +.bg-center { + background-position: center; +} + +.object-cover { + -o-object-fit: cover; + object-fit: cover; +} + +.p-2 { + padding: 0.5rem; +} + +.p-6 { + padding: 1.5rem; +} + +.p-7 { + padding: 1.75rem; +} + +.p-8 { + padding: 2rem; +} + +.px-0 { + padding-left: 0px; + padding-right: 0px; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.py-16 { + padding-top: 4rem; + padding-bottom: 4rem; +} + +.py-20 { + padding-top: 5rem; + padding-bottom: 5rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.py-7 { + padding-top: 1.75rem; + padding-bottom: 1.75rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.\!pt-2 { + padding-top: 0.5rem !important; +} + +.pb-40 { + padding-bottom: 10rem; +} + +.pr-16 { + padding-right: 4rem; +} + +.pt-10 { + padding-top: 2.5rem; +} + +.pt-6 { + padding-top: 1.5rem; +} + +.pt-8 { + padding-top: 2rem; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-\[0\.65rem\] { + font-size: 0.65rem; +} + +.text-\[0\.6rem\] { + font-size: 0.6rem; +} + +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + +.font-bold { + font-weight: 700; +} + +.font-extrabold { + font-weight: 800; +} + +.font-light { + font-weight: 300; +} + +.font-medium { + font-weight: 500; +} + +.font-semibold { + font-weight: 600; +} + +.uppercase { + text-transform: uppercase; +} + +.leading-5 { + line-height: 1.25rem; +} + +.leading-6 { + line-height: 1.5rem; +} + +.leading-7 { + line-height: 1.75rem; +} + +.leading-8 { + line-height: 2rem; +} + +.leading-normal { + line-height: 1.5; +} - 100% { - box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset, - 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset; - } +.leading-relaxed { + line-height: 1.625; } -@keyframes rating-pop { - 0% { - transform: translateY(-0.125em); - } +.leading-tight { + line-height: 1.25; +} - 40% { - transform: translateY(-0.125em); - } +.tracking-\[0\.12em\] { + letter-spacing: 0.12em; +} - 100% { - transform: translateY(0); - } +.tracking-\[0\.14em\] { + letter-spacing: 0.14em; } -@keyframes skeleton { - from { - background-position: 150%; - } +.tracking-\[0\.16em\] { + letter-spacing: 0.16em; +} - to { - background-position: -50%; - } +.tracking-\[0\.18em\] { + letter-spacing: 0.18em; } -@keyframes toast-pop { - 0% { - transform: scale(0.9); - opacity: 0; - } +.tracking-\[0\.22em\] { + letter-spacing: 0.22em; +} - 100% { - transform: scale(1); - opacity: 1; - } +.tracking-\[0\.2em\] { + letter-spacing: 0.2em; } -.join.join-vertical > :where(*:not(:first-child)):is(.btn) { - margin-top: calc(var(--border-btn) * -1); +.tracking-tight { + letter-spacing: -0.025em; } -.join.join-horizontal > :where(*:not(:first-child)):is(.btn) { - margin-inline-start: calc(var(--border-btn) * -1); - margin-top: 0px; +.\!text-sky-300 { + --tw-text-opacity: 1 !important; + color: rgb(125 211 252 / var(--tw-text-opacity, 1)) !important; } -.relative { - position: relative; +.text-base-content { + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity, 1))); } -.isolate { - isolation: isolate; +.text-base-content\/30 { + color: var(--fallback-bc,oklch(var(--bc)/0.3)); } -.z-10 { - z-index: 10; +.text-base-content\/40 { + color: var(--fallback-bc,oklch(var(--bc)/0.4)); } -.mx-auto { - margin-left: auto; - margin-right: auto; +.text-base-content\/45 { + color: var(--fallback-bc,oklch(var(--bc)/0.45)); } -.mt-5 { - margin-top: 1.25rem; +.text-base-content\/50 { + color: var(--fallback-bc,oklch(var(--bc)/0.5)); } -.mt-6 { - margin-top: 1.5rem; +.text-base-content\/55 { + color: var(--fallback-bc,oklch(var(--bc)/0.55)); } -.mt-9 { - margin-top: 2.25rem; +.text-base-content\/65 { + color: var(--fallback-bc,oklch(var(--bc)/0.65)); } -.block { - display: block; +.text-base-content\/70 { + color: var(--fallback-bc,oklch(var(--bc)/0.7)); } -.flex { - display: flex; +.text-error { + --tw-text-opacity: 1; + color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity, 1))); } -.h-12 { - height: 3rem; +.text-navy-950 { + --tw-text-opacity: 1; + color: rgb(3 21 41 / var(--tw-text-opacity, 1)); } -.h-20 { - height: 5rem; +.text-ocean { + --tw-text-opacity: 1; + color: rgb(8 117 209 / var(--tw-text-opacity, 1)); } -.min-h-screen { - min-height: 100vh; +.text-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity, 1))); } -.w-auto { - width: auto; +.text-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity, 1))); } -.w-full { - width: 100%; +.text-signal { + --tw-text-opacity: 1; + color: rgb(62 174 43 / var(--tw-text-opacity, 1)); } -.max-w-7xl { - max-width: 80rem; +.text-sky-300 { + --tw-text-opacity: 1; + color: rgb(125 211 252 / var(--tw-text-opacity, 1)); } -.max-w-xl { - max-width: 36rem; +.text-success { + --tw-text-opacity: 1; + color: var(--fallback-su,oklch(var(--su)/var(--tw-text-opacity, 1))); } -.flex-1 { - flex: 1 1 0%; +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); } -.shrink-0 { - flex-shrink: 0; +.text-white\/45 { + color: rgb(255 255 255 / 0.45); } -.flex-col { - flex-direction: column; +.text-white\/55 { + color: rgb(255 255 255 / 0.55); } -.items-center { - align-items: center; +.text-white\/60 { + color: rgb(255 255 255 / 0.6); } -.justify-between { - justify-content: space-between; +.text-white\/65 { + color: rgb(255 255 255 / 0.65); } -.gap-6 { - gap: 1.5rem; +.text-white\/70 { + color: rgb(255 255 255 / 0.7); } -.overflow-hidden { - overflow: hidden; +.text-white\/75 { + color: rgb(255 255 255 / 0.75); } -.rounded-none { - border-radius: 0px; +.underline { + text-decoration-line: underline; } -.border-t { - border-top-width: 1px; +.opacity-0 { + opacity: 0; } -.border-white\/10 { - border-color: rgb(255 255 255 / 0.1); +.opacity-100 { + opacity: 1; } -.bg-navy-950 { - --tw-bg-opacity: 1; - background-color: rgb(3 21 41 / var(--tw-bg-opacity, 1)); +.shadow-\[0_-8px_30px_rgba\(3\2c 21\2c 41\2c 0\.08\)\] { + --tw-shadow: 0 -8px 30px rgba(3,21,41,0.08); + --tw-shadow-colored: 0 -8px 30px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.bg-cover { - background-size: cover; +.shadow-panel { + --tw-shadow: 0 24px 70px rgba(2, 18, 35, 0.18); + --tw-shadow-colored: 0 24px 70px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; +.shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.py-16 { - padding-top: 4rem; - padding-bottom: 4rem; +.outline { + outline-style: solid; } -.py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem; +.backdrop-blur { + --tw-backdrop-blur: blur(8px); + -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); } -.pt-10 { - padding-top: 2.5rem; +.backdrop-blur-\[1px\] { + --tw-backdrop-blur: blur(1px); + -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); } -.text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; +.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(0.4, 0, 0.2, 1); + transition-duration: 150ms; } -.text-\[0\.65rem\] { - font-size: 0.65rem; +.transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; } -.text-base { - font-size: 1rem; - line-height: 1.5rem; +.transition-colors { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; } -.text-xs { - font-size: 0.75rem; - line-height: 1rem; +.transition-transform { + transition-property: transform; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; } -.font-bold { - font-weight: 700; +.duration-300 { + transition-duration: 300ms; } -.font-extrabold { - font-weight: 800; +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + + *, *::before, *::after { + scroll-behavior: auto !important; + transition-duration: 0.01ms !important; + } } -.uppercase { - text-transform: uppercase; +.placeholder\:text-white\/25::-moz-placeholder { + color: rgb(255 255 255 / 0.25); } -.leading-7 { - line-height: 1.75rem; +.placeholder\:text-white\/25::placeholder { + color: rgb(255 255 255 / 0.25); } -.leading-tight { - line-height: 1.25; +.first\:border-l:first-child { + border-left-width: 1px; } -.tracking-\[0\.18em\] { - letter-spacing: 0.18em; +.last\:border-b-0:last-child { + border-bottom-width: 0px; } -.tracking-\[0\.22em\] { - letter-spacing: 0.22em; +.hover\:border-white:hover { + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); } -.tracking-tight { - letter-spacing: -0.025em; +.hover\:bg-white:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); } -.text-sky-300 { +.hover\:text-navy-950:hover { --tw-text-opacity: 1; - color: rgb(125 211 252 / var(--tw-text-opacity, 1)); + color: rgb(3 21 41 / var(--tw-text-opacity, 1)); } -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)); +.hover\:underline:hover { + text-decoration-line: underline; } -.text-white\/45 { - color: rgb(255 255 255 / 0.45); +.focus\:border-signal:focus { + --tw-border-opacity: 1; + border-color: rgb(62 174 43 / var(--tw-border-opacity, 1)); } -.text-white\/70 { - color: rgb(255 255 255 / 0.7); +.group:hover .group-hover\:translate-x-1 { + --tw-translate-x: 0.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)); +} + +.group:hover .group-hover\:text-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity, 1))); } @media (min-width: 640px) { + .sm\:col-span-2 { + grid-column: span 2 / span 2; + } + + .sm\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .sm\:flex-row { + flex-direction: row; + } + + .sm\:items-center { + align-items: center; + } + + .sm\:justify-between { + justify-content: space-between; + } + .sm\:text-5xl { font-size: 3rem; line-height: 1; @@ -1329,7 +4224,97 @@ body { } } +@media (min-width: 768px) { + .md\:grid { + display: grid; + } + + .md\:min-w-0 { + min-width: 0px; + } + + .md\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .md\:grid-cols-\[360px_1fr\] { + grid-template-columns: 360px 1fr; + } + + .md\:grid-cols-\[repeat\(var\(--navigation-count\)\2c minmax\(0\2c 1fr\)\)\] { + grid-template-columns: repeat(var(--navigation-count),minmax(0,1fr)); + } + + .md\:items-center { + align-items: center; + } + + .md\:overflow-visible { + overflow: visible; + } + + .md\:py-24 { + padding-top: 6rem; + padding-bottom: 6rem; + } + + .md\:pb-36 { + padding-bottom: 9rem; + } + + .md\:text-5xl { + font-size: 3rem; + line-height: 1; + } +} + @media (min-width: 1024px) { + .lg\:flex { + display: flex; + } + + .lg\:w-1\/3 { + width: 33.333333%; + } + + .lg\:w-2\/3 { + width: 66.666667%; + } + + .lg\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .lg\:grid-cols-\[0\.75fr_1\.25fr\] { + grid-template-columns: 0.75fr 1.25fr; + } + + .lg\:grid-cols-\[0\.9fr_1\.1fr\] { + grid-template-columns: 0.9fr 1.1fr; + } + + .lg\:grid-cols-\[1\.3fr_1fr\] { + grid-template-columns: 1.3fr 1fr; + } + + .lg\:items-start { + align-items: flex-start; + } + + .lg\:items-center { + align-items: center; + } + + .lg\:gap-16 { + gap: 4rem; + } + + .lg\:space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); + } + .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; @@ -1339,8 +4324,26 @@ body { padding-right: 2rem; } + .lg\:text-left { + text-align: left; + } + + .lg\:text-right { + text-align: right; + } + .lg\:text-6xl { font-size: 3.75rem; line-height: 1; } } + +@media (min-width: 1280px) { + .xl\:flex { + display: flex; + } + + .xl\:hidden { + display: none; + } +} diff --git a/assets/css/tailwind.css b/assets/css/tailwind.css index 26b7d39..7662c78 100644 --- a/assets/css/tailwind.css +++ b/assets/css/tailwind.css @@ -3,6 +3,32 @@ @tailwind utilities; @layer base { - body { @apply m-0 bg-navy-950 font-sans antialiased; } + html { scroll-behavior: smooth; } + body { @apply bg-white text-base-content antialiased; } :focus-visible { @apply outline outline-2 outline-offset-4 outline-signal; } + section[id] { scroll-margin-top: 4rem; } +} + +@layer components { + .site-container { @apply mx-auto w-full max-w-5xl px-6 lg:px-8; } + .section-pad { @apply py-20 md:py-28; } + .eyebrow { @apply mb-4 text-xs font-bold uppercase tracking-[0.22em] text-ocean; } + .section-title { @apply text-3xl font-bold tracking-tight text-navy-950 md:text-4xl; } + .hero-grid { + background-image: + linear-gradient(90deg, rgba(3,21,41,.96) 0%, rgba(3,35,62,.78) 48%, rgba(3,21,41,.45) 100%), + radial-gradient(circle at 72% 30%, rgba(8,117,209,.55), transparent 26%), + linear-gradient(rgba(76,196,59,.08) 1px, transparent 1px), + linear-gradient(90deg, rgba(76,196,59,.08) 1px, transparent 1px); + background-size: auto, auto, 48px 48px, 48px 48px; + } + .release-art { @apply relative overflow-hidden bg-navy-900; } + .release-art::before { content: ""; @apply absolute inset-0 opacity-70; background: radial-gradient(circle at 70% 30%, #0875d1, transparent 28%), linear-gradient(145deg, transparent 42%, #4cc43b 43%, transparent 44%); } + .release-art::after { content: ""; @apply absolute border border-signal/70; inset: 28% 18% 22% 36%; } + .btn-primary { @apply text-white; } +} + +@media (prefers-reduced-motion: reduce) { + html { scroll-behavior: auto; } + *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; } } diff --git a/assets/images/hero-placeholder.svg b/assets/images/hero-placeholder.svg new file mode 100644 index 0000000..44c20d3 --- /dev/null +++ b/assets/images/hero-placeholder.svg @@ -0,0 +1,27 @@ + + Hero image placeholder + An abstract aerial ocean scene with simplified vessel shapes. + + + + + + + + + + + + + + + + + + + + + + + REPLACE WITH HERO IMAGE + diff --git a/assets/images/logo.svg b/assets/images/logo.svg new file mode 100644 index 0000000..1925762 --- /dev/null +++ b/assets/images/logo.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/release-coastal-placeholder.svg b/assets/images/release-coastal-placeholder.svg new file mode 100644 index 0000000..ce3a155 --- /dev/null +++ b/assets/images/release-coastal-placeholder.svg @@ -0,0 +1,4 @@ + + Coastal vessel placeholderAbstract aerial view of vessels near a coastline. + + diff --git a/assets/images/release-harbor-placeholder.svg b/assets/images/release-harbor-placeholder.svg new file mode 100644 index 0000000..4332341 --- /dev/null +++ b/assets/images/release-harbor-placeholder.svg @@ -0,0 +1,4 @@ + + Harbor activity placeholderAbstract underwater scene with a school of fish and tracking boxes. + + diff --git a/assets/images/release-tracks-placeholder.svg b/assets/images/release-tracks-placeholder.svg new file mode 100644 index 0000000..007cf0e --- /dev/null +++ b/assets/images/release-tracks-placeholder.svg @@ -0,0 +1,4 @@ + + Acoustic tracks placeholderAbstract colored acoustic tracks moving across deep water. + + diff --git a/assets/js/navigation.js b/assets/js/navigation.js new file mode 100644 index 0000000..fa100c0 --- /dev/null +++ b/assets/js/navigation.js @@ -0,0 +1,29 @@ +(() => { + const header = document.querySelector("#fixed-navigation"); + const sectionNavigation = document.querySelector("#section-navigation"); + + if (!header || !sectionNavigation) return; + + const updateHeader = () => { + const navigationBottom = sectionNavigation.getBoundingClientRect().bottom; + const isVisible = navigationBottom <= 0; + + header.classList.toggle("pointer-events-none", !isVisible); + header.classList.toggle("-translate-y-full", !isVisible); + header.classList.toggle("opacity-0", !isVisible); + header.classList.toggle("pointer-events-auto", isVisible); + header.classList.toggle("translate-y-0", isVisible); + header.classList.toggle("opacity-100", isVisible); + header.setAttribute("aria-hidden", String(!isVisible)); + + if (isVisible) { + header.removeAttribute("inert"); + } else { + header.setAttribute("inert", ""); + } + }; + + updateHeader(); + window.addEventListener("scroll", updateHeader, { passive: true }); + window.addEventListener("resize", updateHeader); +})(); diff --git a/assets/js/uniqueship-scripts.js b/assets/js/uniqueship-scripts.js new file mode 100644 index 0000000..31d1877 --- /dev/null +++ b/assets/js/uniqueship-scripts.js @@ -0,0 +1,53 @@ +// Copy to clipboard functionality for citation text + +document.querySelectorAll("[data-copy-button]").forEach((button) => { + button.addEventListener("click", async () => { + const container = button.closest(".relative"); + const source = container.querySelector("[data-copy-source]"); + const icon = button.querySelector("[data-copy-icon]"); + const status = button.querySelector("[data-copy-status]"); + + try { + await navigator.clipboard.writeText(source.textContent); + + icon.classList.remove("ri-file-copy-line"); + icon.classList.add("ri-check-line", "animate-bounce"); + button.classList.add("text-success"); + + button.setAttribute("aria-label", "Citation copied"); + button.setAttribute("title", "Copied!"); + status.textContent = "Citation copied to clipboard"; + + window.setTimeout(() => { + icon.classList.remove("ri-check-line", "animate-bounce"); + icon.classList.add("ri-file-copy-line"); + button.classList.remove("text-success"); + + button.setAttribute("aria-label", "Copy citation"); + button.setAttribute("title", "Copy citation"); + status.textContent = ""; + }, 1600); + } catch (error) { + button.setAttribute("title", "Unable to copy"); + status.textContent = "Unable to copy citation"; + } + }); +}); + +// Smooth scrolling for anchor links + +document.addEventListener("click", (event) => { + const link = event.target.closest('a[href^="#"]'); + if (!link) return; + + const target = document.querySelector(link.getAttribute("href")); + if (!target) return; + + event.preventDefault(); + + target.scrollIntoView({ + behavior: "smooth", + block: "start" + }); + }); + \ No newline at end of file diff --git a/assets/js/web-form.js b/assets/js/web-form.js new file mode 100644 index 0000000..478531b --- /dev/null +++ b/assets/js/web-form.js @@ -0,0 +1,97 @@ +(() => { + const forms = document.querySelectorAll( + "[data-request-form]" + ); + + forms.forEach((form) => { + const container = form.closest( + "[data-form-container]" + ); + + const successPanel = container?.querySelector( + "[data-form-success]" + ); + + const errorMessage = form.querySelector( + "[data-form-error]" + ); + + const submitButton = form.querySelector( + "[data-submit-button]" + ); + + const buttonLabel = submitButton?.querySelector( + "[data-button-label]" + ); + + const buttonSpinner = submitButton?.querySelector( + "[data-button-spinner]" + ); + + if ( + !container || + !successPanel || + !submitButton || + !buttonLabel + ) { + return; + } + + const setSubmitting = (isSubmitting) => { + submitButton.disabled = isSubmitting; + + submitButton.setAttribute( + "aria-busy", + String(isSubmitting) + ); + + buttonLabel.textContent = isSubmitting + ? submitButton.dataset.submittingLabel + : submitButton.dataset.defaultLabel; + + buttonSpinner?.classList.toggle( + "hidden", + !isSubmitting + ); + }; + + form.addEventListener("submit", async (event) => { + event.preventDefault(); + + if (!form.reportValidity()) { + return; + } + + errorMessage?.classList.add("hidden"); + setSubmitting(true); + + try { + const formData = new FormData(form); + const body = new URLSearchParams(formData); + + await fetch(form.action, { + method: "POST", + mode: "no-cors", + headers: { + "Content-Type": + "application/x-www-form-urlencoded" + }, + body: body.toString() + }); + + form.reset(); + form.classList.add("hidden"); + successPanel.classList.remove("hidden"); + successPanel.focus(); + } catch (error) { + console.error( + "Google Form submission failed:", + error + ); + + errorMessage?.classList.remove("hidden"); + setSubmitting(false); + } + }); + }); +})(); \ No newline at end of file diff --git a/index.md b/index.md index f3c0c1f..7fd1fd4 100644 --- a/index.md +++ b/index.md @@ -1,20 +1,217 @@ --- -layout: coming-soon -title: UniqueShip — Coming Soon -description: UniqueShip is a labeled maritime acoustic dataset for underwater target recognition. - -# Replace this file path if the background image changes. -background_image: "/assets/images/coming-soon-background.jpg" - -eyebrow: Maritime acoustic research data -headline: >- - UniqueShip: Coming to OCEANS 2026. -text: >- - We will be releasing UniqueShip, a labeled dataset for underwater acoustic target recognition, on September 22, 2026. - -# Remove this entire button block if a call to action is not needed yet. -# button: -# label: Contact the team -# url: "mailto:data@example.org" -# icon: mail-line +layout: home +title: MARINA Dataset +description: A large labeled dataset for underwater acoustic target recognition. + +# ================================================== +# HERO AREA +# Button styles: primary or outline +# ================================================== +hero: + # Replace this path with the final hero image in assets/images. + background_image: "/assets/images/coming-soon-background.jpg" + subheadline: Open benchmark · Underwater Acoustics + headline: >- + UniqueShip: Large, public underwater acoustic target recognition (UATR) datasets for ships + text: >- + 2,460 hours of ship-radiated noise from 4,218 unique vessels, split by vessel ID so no ship appears in both training and test split. Sourced from the Ocean Networks Canada (ONC) repository. + buttons: + - label: Browse releases + url: "#releases" + style: primary + - label: Read the overview + url: "#overview" + style: outline + +# ================================================== +# OVERVIEW +# Button styles: primary or outline +# ================================================== +overview: + subheadline: Overview + headline: Built to train generalizable UATR models using leakproof splits + paragraphs: + - >- + UniqueShip pairs hydrophone recordings from seven ONC deployments in the Strait of Georgia (May 2016 – November 2023) with AIS vessel tracking data. Each 5-second sample is labeled with its vessel class and 17 AIS metadata fields. Unlike earlier ONC-based datasets, every split keeps each vessel in a single partition and groups background audio by day, so test accuracy reflects performance on ships the model has never heard. + cta_section: + paragraphs: + - >- + The paper describes the dataset in more detail and includes results with and without data leakage, ablations on vessel diversity vs. audio duration, a metadata analysis, and additional baseline results. + buttons: + - label: Read the paper + url: "https://arxiv.org/pdf/2609.13659" + target: _blank + style: primary + + stats: + - value: "3,437" + label: Hours of ship & background audio + - value: "4,218" + label: Unique vessels + - value: "11" + label: Vessel classes + - value: "2.5M" + label: 5-second recordings + +# ================================================== +# THE DIFFERENCE +# ================================================== +difference: + subheadline: What makes it different? + headline: Larger, more diverse, and free of data leakage that inflates other benchmarks + items: + - title: Leak-free splits + text: Vessel audio is grouped by MMSI and background by day instead of random splitting. On previous datasets, random splitting inflated accuracy by 10–48 points. + - title: Largest open ONC dataset + text: The balanced benchmark subset alone has 4× the audio and 12× the vessels of DeepShip, and 70% more audio than the unbalanced Oceanship dataset. + - title: Rich AIS metadata + text: 17 fields per sample, including MMSI, distance to hydrophone, speed, course, length, beam, draught, and navigation status. + - title: Ready-made splits + text: Choose anything from a 25-hour quick-start subset to the full 3,437-hour corpus, with five 80/10/10 folds. + - title: Baselines included + text: MobileNetV3, ViT-B/16, and SwinV2 with STFT and Mel inputs. The best result is 66.5% accuracy (Swin + Mel). + - title: Cleaner background class + text: 8km ship-free radius ensures quieter ambient samples for the background class + +# ================================================== +# DATA RELEASES +# Button styles: primary or outline +# ================================================== +releases: + subheadline: Data releases + headline: Current dataset splits + text: All splits are vessel-disjoint and include per-sample AIS metadata. Samples are 5-second clips at 20 kHz; full-length recordings are available through the codebase. + items: + - title: 5 Class - Balanced + image: "/assets/images/release-coastal-placeholder.svg" + image_alt: Placeholder + description: Contains the main 5 classes (Tug/Tow, Tanker, Passengership, Cargo) and balances the total audio for each class such that they are equal. Current version = 1.0 + size: "89 GB (Unzipped), 59 GB (Zipped)" + views: 213h, 3175 vessels, 5 classes + date: Released September 2026 + buttons: + - label: Download audio + url: "https://drive.google.com/drive/folders/1G0e-2Nhi6CWKuBRStlR8GTtcGyYiT2h6?usp=drive_link" + target: _blank + style: primary + - label: Download spectrograms + url: "https://drive.google.com/drive/folders/1a6wLqfuBh3PMqSlZfy-IVjTfrJMtqo11?usp=sharing" + target: _blank + style: primary + - title: 12 Class - 5 Hours Each + image: "/assets/images/release-coastal-placeholder.svg" + image_alt: Placeholder + description: Contains all ship classes and balances the total audio such that it is 5 hours each class. Current version = 1.0 + size: "10 GB (Unzipped), 7 GB (Zipped)" + views: 60h, 4218 vessels, 12 classes + date: Released September 2026 + buttons: + - label: Download audio + url: "https://drive.google.com/drive/folders/1HxV8AGh8ckZS3JehAU_gY2fuCnscX-eV?usp=drive_link" + target: _blank + style: primary + - label: Download spectrograms + url: "https://drive.google.com/drive/folders/1xOXX4dUmtSET7Utb4gfscZp1dlPoT76e?usp=drive_link" + target: _blank + style: primary + +# ================================================== +# LEADERBOARDS +# ================================================== +leaderboards: + subheadline: Benchmark results + headline: Leaderboards + status: Coming soon + text: >- + Compare published results across the UniqueShip dataset splits. + Rankings, evaluation metrics, and submission guidance will be + available following the dataset release. + + preview: + columns: + - Rank + - Submission + - Dataset split + - Score + - Updated + rows: 4 + +# ================================================== +# INQUIRY FORM +# ================================================== +inquiries: + subheadline: Inquiries + headline: Need additional information or a different split? + text: >- + Current dataset splits are available to download directly — no request or approval is required. Use this form if you have questions, need additional information, or would like to request a split that is not currently available. + benefits: + - Ask questions about the data or documentation + - Request additional or specialized dataset splits + form: + # Get "action" by inspecting your google form, searching for "action" + # and then copy/pasting the URL (should end in "formResponse"). + + action: "https://docs.google.com/forms/u/0/d/e/1FAIpQLScgdYqByeXFuj-dDJ-7_McmpmoaArhqkgZZsilMZhcHieopAA/formResponse" + + submit_label: Submit inquiry + submitting_label: Submitting… + error_message: We could not send your request. Check your connection and try again. + + success: + eyebrow: Request received + headline: Thanks for your submission + text: We have received your request and will be in touch. + + fields: + # Get "name" field by inspecting your Google form, searching for "entry." + # (include the period for faster searching) and copy/pasting the number. + + - type: text + name: entry.925008751 + label: Full name + autocomplete: name + required: true + width: half + + - type: email + name: entry.2144715529 + label: Work email + autocomplete: email + required: true + width: half + + - type: text + name: entry.241770130 + label: Organization + autocomplete: organization + required: false + width: full + + - type: textarea + name: entry.1262269016 + label: Inquiry + required: true + width: full + +# ================================================== +# CITATION AND CONTACT +# ================================================== +citation: + subheadline: Citing this dataset + headline: Reference the dataset paper + text: If you use UniqueShip, please cite the paper below. + code: |- + @inproceedings{hashemi_2026_uniqueship, + author = {Hashemi, Connor and Stout, Trevor and Hoogs, Anthony and Parham, Jason}, + title = {UniqueShip: Mitigating Data Leakage in Acoustic Ship Classification Benchmark Datasets}, + booktitle = {OCEANS 2026}, + year = {2026}, + pages = {TODO} + } + contact: + headline: Questions, corrections, or collaboration? + text: Our team can help with access and research partnerships. + button_label: Contact the team + url: "https://www.kitware.com/contact/" + --- diff --git a/package-lock.json b/package-lock.json index 105fc7c..1eeb5f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,14 @@ { - "name": "marina-coming-soon", + "name": "darpa-marina-jekyll", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "marina-coming-soon", + "name": "darpa-marina-jekyll", "devDependencies": { "@tailwindcss/typography": "^0.5.16", "concurrently": "^9.1.2", "daisyui": "^4.12.24", - "remixicon": "^4.9.1", "tailwindcss": "^3.4.17" } }, @@ -1012,13 +1011,6 @@ "node": ">=8.10.0" } }, - "node_modules/remixicon": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/remixicon/-/remixicon-4.9.1.tgz", - "integrity": "sha512-36gLSoujkabnCFZFDyP17VNh9piuBA/rsXUb4auSJWLGsHVXtmxLj/EM5FjaEAGnk8oIAj1Azob/DZ2N+90lAQ==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", diff --git a/package.json b/package.json index c3b65ca..15e18c6 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "marina-coming-soon", + "name": "darpa-marina-jekyll", "private": true, "scripts": { "css:build": "tailwindcss -i ./assets/css/tailwind.css -o ./assets/css/site.css --minify", @@ -12,7 +12,6 @@ "@tailwindcss/typography": "^0.5.16", "concurrently": "^9.1.2", "daisyui": "^4.12.24", - "remixicon": "^4.9.1", "tailwindcss": "^3.4.17" } } diff --git a/tailwind.config.js b/tailwind.config.js index ff95a04..9c5610f 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -14,7 +14,7 @@ module.exports = { 900: "#062847", 800: "#073c68" }, - signal: "#4cc43b", + signal: "#3eae2b", ocean: "#0875d1" }, fontFamily: { @@ -30,7 +30,7 @@ module.exports = { themes: [ { marina: { - primary: "#4cc43b", + primary: "#3eae2b", "primary-content": "#031529", secondary: "#0875d1", "secondary-content": "#ffffff",