From dacc31baa9e7ab44e611edbfc288e140cc718e45 Mon Sep 17 00:00:00 2001 From: CodingTil <36734749+CodingTil@users.noreply.github.com> Date: Tue, 5 Mar 2024 22:28:16 +0100 Subject: [PATCH] Update Tailwind & Improved Content & Added Content --- .github/workflows/tailwind.yml | 17 + Cargo.lock | 4 +- build_release.sh | 7 + index.html | 3 +- ...tent_teaching.rs => content_experience.rs} | 4 +- src/components/content_item.rs | 32 +- src/components/mod.rs | 2 +- src/components/project.rs | 28 +- .../de/education/2022_09-01_RWTH-Aachen.md | 30 +- src/content/de/education/2023_12_01_UIS.md | 17 + .../de/education/2024_09-01_RWTH-Aachen.md | 45 +- .../2021-03-01_HiWi.md | 0 .../2023-03-01_HiWi.md | 0 .../de/experience/2024-02-14_itestra.md | 6 + .../en/education/2022_09-01_RWTH-Aachen.md | 30 +- src/content/en/education/2023_12_01_UIS.md | 17 + .../en/education/2024_09-01_RWTH-Aachen.md | 45 +- .../2021-03-01_HiWi.md | 0 .../2023-03-01_HiWi.md | 0 .../en/experience/2024-02-14_itestra.md | 6 + src/pages/home.rs | 70 +- styles/main.css | 2211 +++++++++++++++++ tailwind.config.js | 16 + 23 files changed, 2465 insertions(+), 125 deletions(-) create mode 100644 .github/workflows/tailwind.yml rename src/components/{content_teaching.rs => content_experience.rs} (89%) create mode 100644 src/content/de/education/2023_12_01_UIS.md rename src/content/de/{teaching => experience}/2021-03-01_HiWi.md (100%) rename src/content/de/{teaching => experience}/2023-03-01_HiWi.md (100%) create mode 100644 src/content/de/experience/2024-02-14_itestra.md create mode 100644 src/content/en/education/2023_12_01_UIS.md rename src/content/en/{teaching => experience}/2021-03-01_HiWi.md (100%) rename src/content/en/{teaching => experience}/2023-03-01_HiWi.md (100%) create mode 100644 src/content/en/experience/2024-02-14_itestra.md create mode 100644 styles/main.css create mode 100644 tailwind.config.js diff --git a/.github/workflows/tailwind.yml b/.github/workflows/tailwind.yml new file mode 100644 index 0000000..6009761 --- /dev/null +++ b/.github/workflows/tailwind.yml @@ -0,0 +1,17 @@ +on: push + +name: Tailwind + +jobs: + install_and_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install Node.js + uses: actions/setup-node@v1 + - name: Install Tailwind + run: npm install -D tailwindcss + - name: Install Dependencies + run: npm install @tailwindcss/typography @tailwindcss/forms @tailwindcss/aspect-ratio + - name: Build + run: npx tailwind -o dist/main.css \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 34bb7c1..df531ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1032,9 +1032,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "memchr" diff --git a/build_release.sh b/build_release.sh index ac0fc33..ea8d4bf 100755 --- a/build_release.sh +++ b/build_release.sh @@ -21,6 +21,10 @@ cargo binstall trunk -y # Get wasm-opt cargo binstall wasm-opt -y +# Install tailwindcss and dependencies +npm install -D tailwindcss +npm install @tailwindcss/typography @tailwindcss/forms @tailwindcss/aspect-ratio + # Clean the project trunk clean cargo clean @@ -28,6 +32,9 @@ cargo clean # Get current directory ROOT_DIR=$(pwd) +# Build the tailwind css file +npx tailwind -o dist/main.css + # First build the submodules cd $ROOT_DIR/fractal_rust trunk build --release --public-url "/public/project_code/fractal_rust/" diff --git a/index.html b/index.html index bc4a6b0..9f46a59 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,8 @@ - + + diff --git a/src/components/content_teaching.rs b/src/components/content_experience.rs similarity index 89% rename from src/components/content_teaching.rs rename to src/components/content_experience.rs index e7b474a..48e2b16 100644 --- a/src/components/content_teaching.rs +++ b/src/components/content_experience.rs @@ -16,13 +16,13 @@ struct Metadata { } #[derive(Debug, PartialEq, Properties)] -pub struct ContentTeachingProps { +pub struct ContentExperienceProps { pub markdown: String, pub border_color: String, } #[styled_component] -pub fn ContentTeaching(props: &ContentTeachingProps) -> Html { +pub fn ContentExperience(props: &ContentExperienceProps) -> Html { let md_str = props.markdown.clone(); // Get Front Matter diff --git a/src/components/content_item.rs b/src/components/content_item.rs index fb9d1d6..71e56dc 100644 --- a/src/components/content_item.rs +++ b/src/components/content_item.rs @@ -41,6 +41,7 @@ pub fn ContentItem(props: &ContentEducationProps) -> Html { width: 100%; margin-top: 0.75rem; margin-bottom: 0.75rem; + min-height: fit-content; --tw-text-opacity: 1; color: ${fg} !important; @@ -82,7 +83,7 @@ pub fn ContentItem(props: &ContentEducationProps) -> Html { } h1 { - margin-top: 2rem; + margin-top: 0rem; margin-bottom: 0px; border-bottom-width: 1px; --tw-border-opacity: 1; @@ -91,13 +92,25 @@ pub fn ContentItem(props: &ContentEducationProps) -> Html { } h2 { - margin-top: 1rem; + margin-top: 0rem; margin-bottom: -0.25rem; } + h3 { + margin-top: 0rem; + margin-bottom: 0rem; + } + + h4 { + margin-top: 0rem; + margin-bottom: 0rem; + } + hr { --tw-border-opacity: 1; border-color: ${fg}; + margin-top: 0rem; + margin-bottom: 0rem; } a.my-a { @@ -125,14 +138,14 @@ pub fn ContentItem(props: &ContentEducationProps) -> Html { sup { --tw-text-opacity: 1; color:${fg2}; + text-wrap: nowrap; } .cell { - float: left; margin-left: 0px; margin-right: 0px; margin-bottom: 1rem; - margin-top: -2rem; + margin-top: 1rem; min-width: 100%; } @@ -142,17 +155,6 @@ pub fn ContentItem(props: &ContentEducationProps) -> Html { min-width: 0px; } } - - /* used for "last cell" - workaround */ - - .cell-non-md { - float: left; - margin-left: 0px; - margin-right: 0px; - margin-bottom: 1rem; - margin-top: -2rem; - min-width: 100%; - } "#, fg = theme.foreground_primary.clone(), fg2 = theme.foreground_secondary.clone() diff --git a/src/components/mod.rs b/src/components/mod.rs index e2cf3da..1b8652c 100644 --- a/src/components/mod.rs +++ b/src/components/mod.rs @@ -1,7 +1,7 @@ pub mod color_theme_picker; pub mod content_education; +pub mod content_experience; pub mod content_item; -pub mod content_teaching; pub mod footer; pub mod header; pub mod icon_badges; diff --git a/src/components/project.rs b/src/components/project.rs index cac2f33..96e1e61 100644 --- a/src/components/project.rs +++ b/src/components/project.rs @@ -169,6 +169,7 @@ pub fn ProjectPost(props: &ProjectCardProps) -> Html { width: 100%; margin-top: 0.75rem; margin-bottom: 0.75rem; + min-height: fit-content; --tw-text-opacity: 1; color: ${fg} !important; @@ -235,9 +236,21 @@ pub fn ProjectPost(props: &ProjectCardProps) -> Html { margin-bottom: -0.25rem; } + h3 { + margin-top: 0rem; + margin-bottom: 0rem; + } + + h4 { + margin-top: 0rem; + margin-bottom: 0rem; + } + hr { --tw-border-opacity: 1; border-color: ${fg}; + margin-top: 0rem; + margin-bottom: 0rem; } a.my-a { @@ -265,14 +278,14 @@ pub fn ProjectPost(props: &ProjectCardProps) -> Html { sup { --tw-text-opacity: 1; color:${fg2}; + text-wrap: nowrap; } .cell { - float: left; margin-left: 0px; margin-right: 0px; margin-bottom: 1rem; - margin-top: -2rem; + margin-top: 1rem; min-width: 100%; } @@ -282,17 +295,6 @@ pub fn ProjectPost(props: &ProjectCardProps) -> Html { min-width: 0px; } } - - /* used for "last cell" - workaround */ - - .cell-non-md { - float: left; - margin-left: 0px; - margin-right: 0px; - margin-bottom: 1rem; - margin-top: -2rem; - min-width: 100%; - } "#, fg = theme.foreground_primary.clone(), fg2 = theme.foreground_secondary.clone() diff --git a/src/content/de/education/2022_09-01_RWTH-Aachen.md b/src/content/de/education/2022_09-01_RWTH-Aachen.md index 036e901..df6d0b1 100644 --- a/src/content/de/education/2022_09-01_RWTH-Aachen.md +++ b/src/content/de/education/2022_09-01_RWTH-Aachen.md @@ -4,9 +4,11 @@ education: B.Sc. in Informatik date_range: Oktober 2019 - September 2022 location: Aachen, Deutschland --- -
-

Grundstudium

-
+
+
+

Grundstudium

+
+

Praktische Informatik

    @@ -63,10 +65,12 @@ location: Aachen, Deutschland
-
-

Anwendungsfach: BWL

-
-
+
+
+

Anwendungsfach: BWL

+
+
+
  • Einführung in die BWL
  • Quantitative Methoden
  • @@ -76,11 +80,13 @@ location: Aachen, Deutschland
-
-

Other

-
-
-
    +
    +
    +

    Sonstiges

    +
    +
    +
    +
    • Klima Wandel - Google Earth Engine
    diff --git a/src/content/de/education/2023_12_01_UIS.md b/src/content/de/education/2023_12_01_UIS.md new file mode 100644 index 0000000..03236d2 --- /dev/null +++ b/src/content/de/education/2023_12_01_UIS.md @@ -0,0 +1,17 @@ +--- +title: University of Stavanger +education: M.Sc. in Informatik +date_range: August 2023 - Dezember 2023 +location: Stavanger, Norwegen +--- +Erasmus+ Auslandssemester + + \ No newline at end of file diff --git a/src/content/de/education/2024_09-01_RWTH-Aachen.md b/src/content/de/education/2024_09-01_RWTH-Aachen.md index 5548697..a364f9b 100644 --- a/src/content/de/education/2024_09-01_RWTH-Aachen.md +++ b/src/content/de/education/2024_09-01_RWTH-Aachen.md @@ -4,9 +4,11 @@ education: M.Sc. in Informatik date_range: Oktober 2022 - September 2024* location: Aachen, Deutschland --- -
    -

    Grundstudium

    -
    +
    +
    +

    Grundstudium

    +
    +

    Wahlpflicht

    @@ -32,10 +34,12 @@ location: Aachen, Deutschland
    -
    -

    Anwendungsfach: BWL

    -
    -
    +
    +
    +

    Anwendungsfach: BWL

    +
    +
    +
    • Operations Research 1
    • Operations Research 2
    • @@ -44,11 +48,20 @@ location: Aachen, Deutschland
    -
    - - * Erwartetes Abschlussdatum - - - ** Noch nicht beendet - +
    +
    + + * Erwartetes Abschlussdatum + +
    +
    + + ** Noch nicht beendet + +
    +
    + + *** Während des Erasmus+ Auslandssemesters + +
    diff --git a/src/content/de/teaching/2021-03-01_HiWi.md b/src/content/de/experience/2021-03-01_HiWi.md similarity index 100% rename from src/content/de/teaching/2021-03-01_HiWi.md rename to src/content/de/experience/2021-03-01_HiWi.md diff --git a/src/content/de/teaching/2023-03-01_HiWi.md b/src/content/de/experience/2023-03-01_HiWi.md similarity index 100% rename from src/content/de/teaching/2023-03-01_HiWi.md rename to src/content/de/experience/2023-03-01_HiWi.md diff --git a/src/content/de/experience/2024-02-14_itestra.md b/src/content/de/experience/2024-02-14_itestra.md new file mode 100644 index 0000000..df2155a --- /dev/null +++ b/src/content/de/experience/2024-02-14_itestra.md @@ -0,0 +1,6 @@ +--- +title: Werkstudent +employer: itestra GmbH +date_range: Februar 2024 - Heute +location: Aachen, Deutschland +--- diff --git a/src/content/en/education/2022_09-01_RWTH-Aachen.md b/src/content/en/education/2022_09-01_RWTH-Aachen.md index 4aaa48e..d159dad 100644 --- a/src/content/en/education/2022_09-01_RWTH-Aachen.md +++ b/src/content/en/education/2022_09-01_RWTH-Aachen.md @@ -4,9 +4,11 @@ education: B.Sc. in Computer Science date_range: October 2019 - September 2022 location: Aachen, Germany --- -
    -

    Undergraduate Coursework

    -
    +
    +
    +

    Undergraduate Coursework

    +
    +

    Practical Computer Science

      @@ -63,10 +65,12 @@ location: Aachen, Germany
    -
    -

    Applied Subject: Business Administration

    -
    -
    +
    +
    +

    Applied Subject: Business Administration

    +
    +
    +
    • Introduction to Business Administration
    • Operations Research
    • @@ -76,11 +80,13 @@ location: Aachen, Germany
    -
    -

    Other

    -
    -
    -
      +
      +
      +

      Other

      +
      +
      +
      +
      • Global Change - Google Earth Engine
      diff --git a/src/content/en/education/2023_12_01_UIS.md b/src/content/en/education/2023_12_01_UIS.md new file mode 100644 index 0000000..8360eed --- /dev/null +++ b/src/content/en/education/2023_12_01_UIS.md @@ -0,0 +1,17 @@ +--- +title: University of Stavanger +education: M.Sc. in Computer Science +date_range: August 2023 - December 2023 +location: Stavanger, Norway +--- +Erasmus+ Semester Exchange + + diff --git a/src/content/en/education/2024_09-01_RWTH-Aachen.md b/src/content/en/education/2024_09-01_RWTH-Aachen.md index 7b8cca0..ded62bf 100644 --- a/src/content/en/education/2024_09-01_RWTH-Aachen.md +++ b/src/content/en/education/2024_09-01_RWTH-Aachen.md @@ -4,9 +4,11 @@ education: M.Sc. in Computer Science date_range: October 2022 - September 2024* location: Aachen, Germany --- -
      -

      Postgraduate Coursework

      -
      +
      +
      +

      Undergraduate Coursework

      +
      +

      Electives

      @@ -32,10 +34,12 @@ location: Aachen, Germany
      -
      -

      Applied Subject: Business Administration

      -
      -
      +
      +
      +

      Applied Subject: Business Administration

      +
      +
      +
      • Operations Research 1
      • Operations Research 2
      • @@ -44,11 +48,20 @@ location: Aachen, Germany
      -
      - - * Expected graduation date - - - ** In progress - +
      +
      + + * Expected graduation date + +
      +
      + + ** In progress + +
      +
      + + *** During Erasmus+ Semester Exchange + +
      diff --git a/src/content/en/teaching/2021-03-01_HiWi.md b/src/content/en/experience/2021-03-01_HiWi.md similarity index 100% rename from src/content/en/teaching/2021-03-01_HiWi.md rename to src/content/en/experience/2021-03-01_HiWi.md diff --git a/src/content/en/teaching/2023-03-01_HiWi.md b/src/content/en/experience/2023-03-01_HiWi.md similarity index 100% rename from src/content/en/teaching/2023-03-01_HiWi.md rename to src/content/en/experience/2023-03-01_HiWi.md diff --git a/src/content/en/experience/2024-02-14_itestra.md b/src/content/en/experience/2024-02-14_itestra.md new file mode 100644 index 0000000..5a8e085 --- /dev/null +++ b/src/content/en/experience/2024-02-14_itestra.md @@ -0,0 +1,6 @@ +--- +title: Working Student +employer: itestra GmbH +date_range: February 2024 - Present +location: Aachen, Germany +--- diff --git a/src/pages/home.rs b/src/pages/home.rs index b887c74..d712c7a 100644 --- a/src/pages/home.rs +++ b/src/pages/home.rs @@ -13,27 +13,27 @@ use crate::localization::{use_localization, Localization}; use crate::safehtml::SafeHtml; use crate::components::content_education::ContentEducation; -use crate::components::content_teaching::ContentTeaching; +use crate::components::content_experience::ContentExperience; use crate::components::project::ProjectCard; struct Translations { projects: Cow<'static, str>, more: Cow<'static, str>, - teaching: Cow<'static, str>, + experience: Cow<'static, str>, education: Cow<'static, str>, } const EN_TRANSLATIONS: Translations = Translations { projects: Cow::Borrowed("Projects"), more: Cow::Borrowed("More About Me"), - teaching: Cow::Borrowed("Teaching"), + experience: Cow::Borrowed("Experience"), education: Cow::Borrowed("Education"), }; const DE_TRANSLATIONS: Translations = Translations { projects: Cow::Borrowed("Projekte"), more: Cow::Borrowed("Mehr Über Mich"), - teaching: Cow::Borrowed("Lehre"), + experience: Cow::Borrowed("Erfahrung"), education: Cow::Borrowed("Bildung"), }; @@ -55,8 +55,8 @@ static CONTENT_DE_EDUCATION_DIR: Dir = include_dir!("src/content/de/education/") static CONTENT_EN_EDUCATION_DIR: Dir = include_dir!("src/content/en/education/"); static CONTENT_DE_PROJECTS_DIR: Dir = include_dir!("src/content/de/projects/"); static CONTENT_EN_PROJECTS_DIR: Dir = include_dir!("src/content/en/projects/"); -static CONTENT_DE_TEACHING_DIR: Dir = include_dir!("src/content/de/teaching/"); -static CONTENT_EN_TEACHING_DIR: Dir = include_dir!("src/content/en/teaching/"); +static CONTENT_DE_EXPERIENCE_DIR: Dir = include_dir!("src/content/de/experience/"); +static CONTENT_EN_EXPERIENCE_DIR: Dir = include_dir!("src/content/en/experience/"); #[styled_component] pub fn Home() -> Html { @@ -87,18 +87,6 @@ pub fn Home() -> Html { let intro_html = String::from_utf8(intro_html_vec).unwrap(); let more_html = String::from_utf8(more_html_vec).unwrap(); - let education_md_dir = match localization.get() { - Localization::EN => &CONTENT_EN_EDUCATION_DIR, - Localization::DE => &CONTENT_DE_EDUCATION_DIR, - }; - let mut education_md_files = education_md_dir.files().collect::>(); - education_md_files.sort_by(|a, b| b.path().cmp(a.path())); - let education_md_contents = education_md_files - .iter() - .map(|file| file.contents_utf8().unwrap()) - .map(String::from) - .collect::>(); - let projects_md_dir = match localization.get() { Localization::EN => &CONTENT_EN_PROJECTS_DIR, Localization::DE => &CONTENT_DE_PROJECTS_DIR, @@ -111,14 +99,26 @@ pub fn Home() -> Html { .map(String::from) .collect::>(); - let teaching_md_dir = match localization.get() { - Localization::EN => &CONTENT_EN_TEACHING_DIR, - Localization::DE => &CONTENT_DE_TEACHING_DIR, + let experience_md_dir = match localization.get() { + Localization::EN => &CONTENT_EN_EXPERIENCE_DIR, + Localization::DE => &CONTENT_DE_EXPERIENCE_DIR, + }; + let mut experience_md_files = experience_md_dir.files().collect::>(); + experience_md_files.sort_by(|a, b| b.path().cmp(a.path())); + let experience_md_contents = experience_md_files + .iter() + .map(|file| file.contents_utf8().unwrap()) + .map(String::from) + .collect::>(); + + let education_md_dir = match localization.get() { + Localization::EN => &CONTENT_EN_EDUCATION_DIR, + Localization::DE => &CONTENT_DE_EDUCATION_DIR, }; - let teaching_border_color_offset = education_md_dir.files().count(); - let mut teaching_md_files = teaching_md_dir.files().collect::>(); - teaching_md_files.sort_by(|a, b| b.path().cmp(a.path())); - let teaching_md_contents = teaching_md_files + let mut education_md_files = education_md_dir.files().collect::>(); + let education_border_color_offset = experience_md_dir.files().count(); + education_md_files.sort_by(|a, b| b.path().cmp(a.path())); + let education_md_contents = education_md_files .iter() .map(|file| file.contents_utf8().unwrap()) .map(String::from) @@ -219,17 +219,17 @@ pub fn Home() -> Html {
      - /* Education */ -
      + /* Experience */ +
      - { translation.education.clone() } + { translation.experience.clone() }
      { - education_md_contents.into_iter().enumerate().map(|(index, md_str)| { + experience_md_contents.into_iter().enumerate().map(|(index, md_str)| { html! {
      - +
      } }).collect::() @@ -237,17 +237,17 @@ pub fn Home() -> Html {
      - /* Teaching */ -
      + /* Education */ +
      - { translation.teaching.clone() } + { translation.education.clone() }
      { - teaching_md_contents.into_iter().enumerate().map(|(index, md_str)| { + education_md_contents.into_iter().enumerate().map(|(index, md_str)| { html! {
      - +
      } }).collect::() diff --git a/styles/main.css b/styles/main.css new file mode 100644 index 0000000..9881bcd --- /dev/null +++ b/styles/main.css @@ -0,0 +1,2211 @@ +/* +! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. +7. Disable tap highlights on iOS +*/ + +html, +:host { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + /* 4 */ + font-feature-settings: normal; + /* 5 */ + font-variation-settings: normal; + /* 6 */ + -webkit-tap-highlight-color: transparent; + /* 7 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-feature-settings: normal; + /* 2 */ + font-variation-settings: normal; + /* 3 */ + font-size: 1em; + /* 4 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-feature-settings: inherit; + /* 1 */ + font-variation-settings: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + font-weight: inherit; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ + +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ + +[hidden] { + display: none; +} + +[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #6b7280; + border-width: 1px; + border-radius: 0px; + padding-top: 0.5rem; + padding-right: 0.75rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + font-size: 1rem; + line-height: 1.5rem; + --tw-shadow: 0 0 #0000; +} + +[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + border-color: #2563eb; +} + +input::-moz-placeholder, textarea::-moz-placeholder { + color: #6b7280; + opacity: 1; +} + +input::placeholder,textarea::placeholder { + color: #6b7280; + opacity: 1; +} + +::-webkit-datetime-edit-fields-wrapper { + padding: 0; +} + +::-webkit-date-and-time-value { + min-height: 1.5em; + text-align: inherit; +} + +::-webkit-datetime-edit { + display: inline-flex; +} + +::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field { + padding-top: 0; + padding-bottom: 0; +} + +select { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); + background-position: right 0.5rem center; + background-repeat: no-repeat; + background-size: 1.5em 1.5em; + padding-right: 2.5rem; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} + +[multiple],[size]:where(select:not([size="1"])) { + background-image: initial; + background-position: initial; + background-repeat: unset; + background-size: initial; + padding-right: 0.75rem; + -webkit-print-color-adjust: unset; + print-color-adjust: unset; +} + +[type='checkbox'],[type='radio'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: 0; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: #2563eb; + background-color: #fff; + border-color: #6b7280; + border-width: 1px; + --tw-shadow: 0 0 #0000; +} + +[type='checkbox'] { + border-radius: 0px; +} + +[type='radio'] { + border-radius: 100%; +} + +[type='checkbox']:focus,[type='radio']:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 2px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); +} + +[type='checkbox']:checked,[type='radio']:checked { + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); +} + +@media (forced-colors: active) { + [type='checkbox']:checked { + -webkit-appearance: auto; + -moz-appearance: auto; + appearance: auto; + } +} + +[type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); +} + +@media (forced-colors: active) { + [type='radio']:checked { + -webkit-appearance: auto; + -moz-appearance: auto; + appearance: auto; + } +} + +[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='checkbox']:indeterminate { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +@media (forced-colors: active) { + [type='checkbox']:indeterminate { + -webkit-appearance: auto; + -moz-appearance: auto; + appearance: auto; + } +} + +[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='file'] { + background: unset; + border-color: inherit; + border-width: 0; + border-radius: 0; + padding: 0; + font-size: unset; + line-height: inherit; +} + +[type='file']:focus { + outline: 1px solid ButtonText; + outline: 1px auto -webkit-focus-ring-color; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +.container { + width: 100%; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +.prose { + color: var(--tw-prose-body); + max-width: 65ch; +} + +.prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; +} + +.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; +} + +.prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-links); + text-decoration: underline; + font-weight: 500; +} + +.prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-bold); + font-weight: 600; +} + +.prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: decimal; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-left: 1.625em; +} + +.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-alpha; +} + +.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-alpha; +} + +.prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-alpha; +} + +.prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-alpha; +} + +.prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-roman; +} + +.prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-roman; +} + +.prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: upper-roman; +} + +.prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: lower-roman; +} + +.prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: decimal; +} + +.prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + list-style-type: disc; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-left: 1.625em; +} + +.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { + font-weight: 400; + color: var(--tw-prose-counters); +} + +.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { + color: var(--tw-prose-bullets); +} + +.prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.25em; +} + +.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; +} + +.prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 500; + font-style: italic; + color: var(--tw-prose-quotes); + border-left-width: 0.25rem; + border-left-color: var(--tw-prose-quote-borders); + quotes: "\201C""\201D""\2018""\2019"; + margin-top: 1.6em; + margin-bottom: 1.6em; + padding-left: 1em; +} + +.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: open-quote; +} + +.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: close-quote; +} + +.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; +} + +.prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 900; + color: inherit; +} + +.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; +} + +.prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 800; + color: inherit; +} + +.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; +} + +.prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 700; + color: inherit; +} + +.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; +} + +.prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + font-weight: 700; + color: inherit; +} + +.prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + display: block; + margin-top: 2em; + margin-bottom: 2em; +} + +.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 rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%); + font-size: 0.875em; + border-radius: 0.3125rem; + padding-top: 0.1875em; + padding-right: 0.375em; + padding-bottom: 0.1875em; + padding-left: 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; +} + +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { + content: "`"; +} + +.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-right: 1.1428571em; + padding-bottom: 0.8571429em; + padding-left: 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; + text-align: left; + 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-right: 0.5714286em; + padding-bottom: 0.5714286em; + padding-left: 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(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: 17 24 39; + --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: 255 255 255; + --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(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.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-left: 0.375em; +} + +.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-left: 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 > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ol > li > *: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-left: 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-left: 0; +} + +.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-right: 0; +} + +.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-top: 0.5714286em; + padding-right: 0.5714286em; + padding-bottom: 0.5714286em; + padding-left: 0.5714286em; +} + +.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-left: 0; +} + +.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + padding-right: 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; +} + +.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; +} + +.visible { + visibility: visible; +} + +.static { + position: static; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.sticky { + position: sticky; +} + +.inset-0 { + inset: 0px; +} + +.bottom-0 { + bottom: 0px; +} + +.right-0 { + right: 0px; +} + +.top-0 { + top: 0px; +} + +.z-10 { + z-index: 10; +} + +.z-40 { + z-index: 40; +} + +.z-50 { + z-index: 50; +} + +.mx-0 { + margin-left: 0px; + margin-right: 0px; +} + +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.my-0 { + margin-top: 0px; + margin-bottom: 0px; +} + +.my-6 { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} + +.my-8 { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.-mt-2 { + margin-top: -0.5rem; +} + +.-mt-20 { + margin-top: -5rem; +} + +.mb-0 { + margin-bottom: 0px; +} + +.mb-14 { + margin-bottom: 3.5rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mb-5 { + margin-bottom: 1.25rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.ml-1 { + margin-left: 0.25rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.ml-7 { + margin-left: 1.75rem; +} + +.mt-14 { + margin-top: 3.5rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mt-8 { + margin-top: 2rem; +} + +.mt-auto { + margin-top: auto; +} + +.block { + display: block; +} + +.inline-block { + display: inline-block; +} + +.flex { + display: flex; +} + +.table { + display: table; +} + +.grid { + display: grid; +} + +.contents { + display: contents; +} + +.hidden { + display: none; +} + +.h-14 { + height: 3.5rem; +} + +.h-2 { + height: 0.5rem; +} + +.h-20 { + height: 5rem; +} + +.h-3 { + height: 0.75rem; +} + +.h-auto { + height: auto; +} + +.h-full { + height: 100%; +} + +.min-h-10 { + min-height: 2.5rem; +} + +.min-h-full { + min-height: 100%; +} + +.min-h-screen { + min-height: 100vh; +} + +.w-1\/6 { + width: 16.666667%; +} + +.w-14 { + width: 3.5rem; +} + +.w-full { + width: 100%; +} + +.w-min { + width: -moz-min-content; + width: min-content; +} + +.w-screen { + width: 100vw; +} + +.min-w-full { + min-width: 100%; +} + +.max-w-7xl { + max-width: 80rem; +} + +.max-w-md { + max-width: 28rem; +} + +.grow { + flex-grow: 1; +} + +.translate-x-1\/4 { + --tw-translate-x: 25%; + 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-1\/3 { + --tw-translate-y: 33.333333%; + 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)); +} + +.scale-50 { + --tw-scale-x: .5; + --tw-scale-y: .5; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.transform { + 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; +} + +.resize { + resize: both; +} + +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} + +.flex-row { + flex-direction: row; +} + +.flex-col { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.flex-nowrap { + flex-wrap: nowrap; +} + +.place-content-between { + place-content: space-between; +} + +.content-center { + align-content: center; +} + +.items-end { + align-items: flex-end; +} + +.items-center { + align-items: center; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.justify-around { + justify-content: space-around; +} + +.justify-evenly { + justify-content: space-evenly; +} + +.gap-4 { + gap: 1rem; +} + +.gap-x-2 { + -moz-column-gap: 0.5rem; + column-gap: 0.5rem; +} + +.space-x-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem * var(--tw-space-x-reverse)); + margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-y-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); +} + +.overflow-auto { + overflow: auto; +} + +.overflow-hidden { + overflow: hidden; +} + +.whitespace-nowrap { + white-space: nowrap; +} + +.text-wrap { + text-wrap: wrap; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-xl { + border-radius: 0.75rem; +} + +.border-2 { + border-width: 2px; +} + +.border-b-2 { + border-bottom-width: 2px; +} + +.border-l-8 { + border-left-width: 8px; +} + +.border-t-2 { + border-top-width: 2px; +} + +.border-solid { + border-style: solid; +} + +.bg-\[\#d8dee9\] { + --tw-bg-opacity: 1; + background-color: rgb(216 222 233 / var(--tw-bg-opacity)); +} + +.bg-black\/20 { + background-color: rgb(0 0 0 / 0.2); +} + +.bg-cyan-600 { + --tw-bg-opacity: 1; + background-color: rgb(8 145 178 / var(--tw-bg-opacity)); +} + +.bg-green-600 { + --tw-bg-opacity: 1; + background-color: rgb(22 163 74 / var(--tw-bg-opacity)); +} + +.bg-orange-600 { + --tw-bg-opacity: 1; + background-color: rgb(234 88 12 / var(--tw-bg-opacity)); +} + +.bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(147 51 234 / var(--tw-bg-opacity)); +} + +.bg-rose-600 { + --tw-bg-opacity: 1; + background-color: rgb(225 29 72 / var(--tw-bg-opacity)); +} + +.bg-violet-400 { + --tw-bg-opacity: 1; + background-color: rgb(167 139 250 / var(--tw-bg-opacity)); +} + +.fill-\[\#007396\] { + fill: #007396; +} + +.fill-\[\#3776AB\] { + fill: #3776AB; +} + +.fill-\[\#ee4c2c\] { + fill: #ee4c2c; +} + +.p-1 { + padding: 0.25rem; +} + +.p-16 { + padding: 4rem; +} + +.p-2 { + padding: 0.5rem; +} + +.p-2\.5 { + padding: 0.625rem; +} + +.p-4 { + padding: 1rem; +} + +.p-5 { + padding: 1.25rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.pb-0 { + padding-bottom: 0px; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + +.pb-8 { + padding-bottom: 2rem; +} + +.pl-5 { + padding-left: 1.25rem; +} + +.pt-28 { + padding-top: 7rem; +} + +.pt-5 { + padding-top: 1.25rem; +} + +.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-9xl { + font-size: 8rem; + line-height: 1; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.font-bold { + font-weight: 700; +} + +.font-extrabold { + font-weight: 800; +} + +.font-semibold { + font-weight: 600; +} + +.text-\[\#0077B5\] { + --tw-text-opacity: 1; + color: rgb(0 119 181 / var(--tw-text-opacity)); +} + +.text-\[\#214ce6\] { + --tw-text-opacity: 1; + color: rgb(33 76 230 / var(--tw-text-opacity)); +} + +.text-\[\#40b27f\] { + --tw-text-opacity: 1; + color: rgb(64 178 127 / var(--tw-text-opacity)); +} + +.text-\[\#8B3103\] { + --tw-text-opacity: 1; + color: rgb(139 49 3 / var(--tw-text-opacity)); +} + +.text-\[\#EBCB8B\] { + --tw-text-opacity: 1; + color: rgb(235 203 139 / var(--tw-text-opacity)); +} + +.text-\[\#bf616a\] { + --tw-text-opacity: 1; + color: rgb(191 97 106 / var(--tw-text-opacity)); +} + +.text-\[\#e54c22\] { + --tw-text-opacity: 1; + color: rgb(229 76 34 / var(--tw-text-opacity)); +} + +.text-\[\#e8d44d\] { + --tw-text-opacity: 1; + color: rgb(232 212 77 / var(--tw-text-opacity)); +} + +.text-\[\#ef5032\] { + --tw-text-opacity: 1; + color: rgb(239 80 50 / var(--tw-text-opacity)); +} + +.text-red-400 { + --tw-text-opacity: 1; + color: rgb(248 113 113 / var(--tw-text-opacity)); +} + +.text-yellow-300 { + --tw-text-opacity: 1; + color: rgb(253 224 71 / var(--tw-text-opacity)); +} + +.underline { + text-decoration-line: underline; +} + +.no-underline { + text-decoration-line: none; +} + +.opacity-0 { + opacity: 0; +} + +.opacity-100 { + opacity: 1; +} + +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-black\/20 { + --tw-shadow-color: rgb(0 0 0 / 0.2); + --tw-shadow: var(--tw-shadow-colored); +} + +.outline-none { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.blur { + --tw-blur: blur(8px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.drop-shadow-md { + --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.backdrop-blur { + --tw-backdrop-blur: blur(8px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + +.backdrop-blur-sm { + --tw-backdrop-blur: blur(4px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + +.transition-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; +} + +.transition-opacity { + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.duration-200 { + transition-duration: 200ms; +} + +.duration-500 { + transition-duration: 500ms; +} + +.hover\:bg-\[\#007396\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(0 115 150 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#214ce6\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(33 76 230 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#3776AB\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(55 118 171 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#40b27f\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(64 178 127 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#644eef\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(100 78 239 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#8B3103\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(139 49 3 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#a3be8c\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(163 190 140 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#b9baea\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(185 186 234 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#bf616a\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(191 97 106 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#e54c22\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(229 76 34 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#e8d44d\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(232 212 77 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#ee4c2c\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(238 76 44 / var(--tw-bg-opacity)); +} + +.hover\:bg-\[\#ef5032\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(239 80 50 / var(--tw-bg-opacity)); +} + +.hover\:fill-\[\#d8dee9\]:hover { + fill: #d8dee9; +} + +.hover\:text-\[\#d8dee9\]:hover { + --tw-text-opacity: 1; + color: rgb(216 222 233 / var(--tw-text-opacity)); +} + +.hover\:text-yellow-100:hover { + --tw-text-opacity: 1; + color: rgb(254 249 195 / var(--tw-text-opacity)); +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.group:hover .group-hover\:opacity-30 { + opacity: 0.3; +} + +.group:hover .group-hover\:opacity-70 { + opacity: 0.7; +} + +.group:hover .group-hover\:brightness-125 { + --tw-brightness: brightness(1.25); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +@media (min-width: 640px) { + .sm\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +@media (min-width: 768px) { + .md\:flex-row { + flex-direction: row; + } + + .md\:flex-wrap { + flex-wrap: wrap; + } + + .md\:flex-nowrap { + flex-wrap: nowrap; + } + + .md\:justify-start { + justify-content: flex-start; + } + + .md\:justify-between { + justify-content: space-between; + } + + .md\:space-x-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem * var(--tw-space-x-reverse)); + margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); + } + + .md\:border-b-0 { + border-bottom-width: 0px; + } + + .md\:pb-0 { + padding-bottom: 0px; + } + + .md\:pr-0 { + padding-right: 0px; + } + + .md\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } +} + +@media (min-width: 1024px) { + .lg\:grid-cols-5 { + grid-template-columns: repeat(5, minmax(0, 1fr)); + } +} + +@media (min-width: 1280px) { + .xl\:mx-auto { + margin-left: auto; + margin-right: auto; + } + + .xl\:flex { + display: flex; + } + + .xl\:flex-row { + flex-direction: row; + } + + .xl\:flex-col { + flex-direction: column; + } + + .xl\:justify-start { + justify-content: flex-start; + } + + .xl\:justify-between { + justify-content: space-between; + } + + .xl\:px-0 { + padding-left: 0px; + padding-right: 0px; + } + + .xl\:text-right { + text-align: right; + } +} \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..1659404 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,16 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './**/*.html', + './**/*.rs', + './**/*.md' + ], + theme: { + extend: {}, + }, + plugins: [ + require('@tailwindcss/typography'), + require('@tailwindcss/forms'), + require('@tailwindcss/aspect-ratio'), + ] +}