@layer reset, theme, typography, appearance, behavior, vendor, components, layout, partials, utils;

@layer reset {
  *,
  *::before,
  *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    outline: 0.1875rem solid transparent;
    outline-offset: 0;
    color: inherit;
    font: inherit;
    line-height: inherit;
    letter-spacing: inherit;
  }

  html,
  body {
    inline-size: 100%;
    min-block-size: 100dvh;
  }

  hr {
    margin: 0;
    border: 0;
    background-color: inherit;
    color: inherit;
  }

  hr:not([size]) {
    block-size: 0.0625rem;
  }

  input,
  select,
  textarea {
    font-family: inherit;
    font-size: inherit;

    &::placeholder {
      color: inherit;
      font-family: inherit;
      font-size: inherit;
    }
  }

  input[hidden] {
    block-size: 0;
  }

  select {
    text-transform: none;
  }

  button {
    margin: 0;
    border: none;
    border-radius: 0;
    background: none;
    text-transform: none;
    cursor: pointer;
    -webkit-appearance: button;
  }

  ul {
    list-style: none;
  }

  img, picture, svg, video {
    display: block;
  }

  b,
  strong {
    font-variation-settings: "wght" 600;
  }

  a {
    text-decoration: none;
  }

  p {
    margin: 0;
  }

  small {
    font-size: 82.5%;
  }

  sub,
  sup {
    position: relative;
    line-height: 0;
    vertical-align: baseline;
  }

  sub {
    bottom: -0.25rem;
  }

  sup {
    top: -0.5rem;
  }

  sub,
  sup {
    font-size: 75%;
    line-height: 1;
  }

  abbr[title] {
    text-decoration: none;
  }
}

@layer theme {
  :root {
    --clr-red-50: hsl(0 85.7% 97.3%);
    --clr-red-100: hsl(0 93.3% 94.1%);
    --clr-red-200: hsl(0 96.3% 89.4%);
    --clr-red-250: hsl(0 93.5% 85.8%);
    --clr-red-300: hsl(0 93.5% 81.8%);
    --clr-red-400: hsl(0 90.6% 70.8%);
    --clr-red-500: hsl(0 84.2% 60.2%);
    --clr-red-600: hsl(0 72.2% 50.6%);
    --clr-red-700: hsl(0 73.7% 41.8%);
    --clr-red-800: hsl(0 70% 35.3%);
    --clr-red-900: hsl(0 62.8% 30.6%);
    --clr-red-950: hsl(0 74.7% 15.5%);

    --clr-orange-50: hsl(33, 100%, 96%);
    --clr-orange-100: hsl(34.3 100% 91.8%);
    --clr-orange-200: hsl(32.1 97.7% 83.1%);
    --clr-orange-300: hsl(30.7 97.2% 72.4%);
    --clr-orange-400: hsl(27 96% 61%);
    --clr-orange-500: hsl(24.6 95% 53.1%);
    --clr-orange-600: hsl(20.5 90.2% 48.2%);
    --clr-orange-700: hsl(17.5 88.3% 40.4%);
    --clr-orange-800: hsl(15 79.1% 33.7%);
    --clr-orange-900: hsl(15.3 74.6% 27.8%);
    --clr-orange-950: hsl(13 81.1% 14.5%);

    --clr-amber-50: hsl(48 100% 96.1%);
    --clr-amber-100: hsl(48 96.5% 88.8%);
    --clr-amber-200: hsl(48 96.6% 76.7%);
    --clr-amber-300: hsl(45.9 96.7% 64.5%);
    --clr-amber-400: hsl(43.3 96.4% 56.3%);
    --clr-amber-500: hsl(37.7 92.1% 50.2%);
    --clr-amber-600: hsl(32.1 94.6% 43.7%);
    --clr-amber-700: hsl(26 90.5% 37.1%);
    --clr-amber-800: hsl(22.7 82.5% 31.4%);
    --clr-amber-900: hsl(21.7 77.8% 26.5%);
    --clr-amber-950: hsl(20.9 91.7% 14.1%);

    --clr-yellow-50: hsl(54.5 91.7% 95.3%);
    --clr-yellow-100: hsl(54.9 96.7% 88%);
    --clr-yellow-200: hsl(52.8 98.3% 76.9%);
    --clr-yellow-300: hsl(50.4 97.8% 63.5%);
    --clr-yellow-400: hsl(47.9 95.8% 53.1%);
    --clr-yellow-500: hsl(45.4 93.4% 47.5%);
    --clr-yellow-600: hsl(40.6 96.1% 40.4%);
    --clr-yellow-700: hsl(35.5 91.7% 32.9%);
    --clr-yellow-800: hsl(31.8 81% 28.8%);
    --clr-yellow-900: hsl(28.4 72.5% 25.7%);
    --clr-yellow-950: hsl(26 83.3% 14.1%);

    --clr-lime-50: hsl(78.3 92% 95.1%);
    --clr-lime-100: hsl(79.6 89.1% 89.2%);
    --clr-lime-200: hsl(80.9 88.5% 79.6%);
    --clr-lime-300: hsl(82 84.5% 67.1%);
    --clr-lime-400: hsl(82.7 78% 55.5%);
    --clr-lime-500: hsl(83.7 80.5% 44.3%);
    --clr-lime-600: hsl(84.8 85.2% 34.5%);
    --clr-lime-700: hsl(85.9 78.4% 27.3%);
    --clr-lime-800: hsl(86.3 69% 22.7%);
    --clr-lime-900: hsl(87.6 61.2% 20.2%);
    --clr-lime-950: hsl(89.3 80.4% 10%);

    --clr-green-50: hsl(138.5 76.5% 96.7%);
    --clr-green-100: hsl(140.6 84.2% 92.5%);
    --clr-green-200: hsl(141 78.9% 85.1%);
    --clr-green-300: hsl(141.7 76.6% 73.1%);
    --clr-green-400: hsl(141.9 69.2% 58%);
    --clr-green-500: hsl(142.1 70.6% 45.3%);
    --clr-green-600: hsl(142.1 76.2% 36.3%);
    --clr-green-700: hsl(142.4 71.8% 29.2%);
    --clr-green-800: hsl(142.8 64.2% 24.1%);
    --clr-green-900: hsl(143.8 61.2% 20.2%);
    --clr-green-950: hsl(144.9 80.4% 10%);

    --clr-emerald-50: hsl(151.8 81% 95.9%);
    --clr-emerald-100: hsl(149.3 80.4% 90%);
    --clr-emerald-200: hsl(152.4 76% 80.4%);
    --clr-emerald-250: hsl(152.4 76% 75.2%);
    --clr-emerald-300: hsl(156.2 71.6% 66.9%);
    --clr-emerald-400: hsl(158.1 64.4% 51.6%);
    --clr-emerald-500: hsl(160.1 84.1% 39.4%);
    --clr-emerald-600: hsl(161.4 93.5% 30.4%);
    --clr-emerald-700: hsl(162.9 93.5% 24.3%);
    --clr-emerald-800: hsl(163.1 88.1% 19.8%);
    --clr-emerald-900: hsl(164.2 85.7% 16.5%);
    --clr-emerald-950: hsl(165.7 91.3% 9%);

    --clr-teal-50: hsl(166.2 76.5% 96.7%);
    --clr-teal-100: hsl(167.2 85.5% 89.2%);
    --clr-teal-200: hsl(168.4 83.8% 78.2%);
    --clr-teal-300: hsl(170.6 76.9% 64.3%);
    --clr-teal-400: hsl(172.5 66% 50.4%);
    --clr-teal-500: hsl(173.4 80.4% 40%);
    --clr-teal-600: hsl(174.7 83.9% 31.6%);
    --clr-teal-700: hsl(175.3 77.4% 26.1%);
    --clr-teal-800: hsl(176.1 69.4% 21.8%);
    --clr-teal-900: hsl(175.9 60.8% 19%);
    --clr-teal-950: hsl(178.6 84.3% 10%);

    --clr-cyan-50: hsl(183.2 100% 96.3%);
    --clr-cyan-100: hsl(185.1 95.9% 90.4%);
    --clr-cyan-200: hsl(186.2 93.5% 81.8%);
    --clr-cyan-300: hsl(187 92.4% 69%);
    --clr-cyan-400: hsl(187.9 85.7% 53.3%);
    --clr-cyan-500: hsl(188.7 94.5% 42.7%);
    --clr-cyan-600: hsl(191.6 91.4% 36.5%);
    --clr-cyan-700: hsl(192.9 82.3% 31%);
    --clr-cyan-800: hsl(194.4 69.6% 27.1%);
    --clr-cyan-900: hsl(196.4 63.6% 23.7%);
    --clr-cyan-950: hsl(197 78.9% 14.9%);

    --clr-sky-50: hsl(204 100% 97.1%);
    --clr-sky-100: hsl(204 93.8% 93.7%);
    --clr-sky-200: hsl(200.6 94.4% 86.1%);
    --clr-sky-300: hsl(199.4 95.5% 73.9%);
    --clr-sky-400: hsl(198.4 93.2% 59.6%);
    --clr-sky-500: hsl(198.6 88.7% 48.4%);
    --clr-sky-600: hsl(200.4 98% 39.4%);
    --clr-sky-700: hsl(201.3 96.3% 32.2%);
    --clr-sky-800: hsl(201 90% 27.5%);
    --clr-sky-900: hsl(202 80.3% 23.9%);
    --clr-sky-950: hsl(204 80.2% 15.9%);

    --clr-blue-50: hsl(213.8 100% 96.9%);
    --clr-blue-100: hsl(214.3 94.6% 92.7%);
    --clr-blue-200: hsl(213.3 96.9% 87.3%);
    --clr-blue-300: hsl(211.7 96.4% 78.4%);
    --clr-blue-400: hsl(213.1 93.9% 67.8%);
    --clr-blue-500: hsl(217.2 91.2% 59.8%);
    --clr-blue-600: hsl(221.2 83.2% 53.3%);
    --clr-blue-700: hsl(224.3 76.3% 48%);
    --clr-blue-800: hsl(225.9 70.7% 40.2%);
    --clr-blue-900: hsl(224.4 64.3% 32.9%);
    --clr-blue-950: hsl(226.2 57% 21%);

    --clr-indigo-50: hsl(225.9 100% 96.7%);
    --clr-indigo-100: hsl(226.5 100% 93.9%);
    --clr-indigo-200: hsl(228 96.5% 88.8%);
    --clr-indigo-300: hsl(229.7 93.5% 81.8%);
    --clr-indigo-400: hsl(234.5 89.5% 73.9%);
    --clr-indigo-500: hsl(238.7 83.5% 66.7%);
    --clr-indigo-600: hsl(243.4 75.4% 58.6%);
    --clr-indigo-700: hsl(244.5 57.9% 50.6%);
    --clr-indigo-800: hsl(243.7 54.5% 41.4%);
    --clr-indigo-900: hsl(242.2 47.4% 34.3%);
    --clr-indigo-950: hsl(243.8 47.1% 20%);

    --clr-violet-50: hsl(250 100% 97.6%);
    --clr-violet-100: hsl(251.4 91.3% 95.5%);
    --clr-violet-200: hsl(250.5 95.2% 91.8%);
    --clr-violet-300: hsl(252.5 94.7% 85.1%);
    --clr-violet-400: hsl(255.1 91.7% 76.3%);
    --clr-violet-500: hsl(258.3 89.5% 66.3%);
    --clr-violet-600: hsl(262.1 83.3% 57.8%);
    --clr-violet-700: hsl(263.4 70% 50.4%);
    --clr-violet-800: hsl(263.4 69.3% 42.2%);
    --clr-violet-900: hsl(263.5 67.4% 34.9%);
    --clr-violet-950: hsl(261.2 72.6% 22.9%);

    --clr-purple-50: hsl(270 100% 98%);
    --clr-purple-100: hsl(268.7 100% 95.5%);
    --clr-purple-200: hsl(268.6 100% 91.8%);
    --clr-purple-300: hsl(269.2 97.4% 85.1%);
    --clr-purple-400: hsl(270 95.2% 75.3%);
    --clr-purple-500: hsl(270.7 91% 65.1%);
    --clr-purple-600: hsl(271.5 81.3% 55.9%);
    --clr-purple-700: hsl(272.1 71.7% 47.1%);
    --clr-purple-800: hsl(272.9 67.2% 39.4%);
    --clr-purple-900: hsl(273.6 65.6% 32%);
    --clr-purple-950: hsl(273.5 86.9% 21%);

    --clr-fuchsia-50: hsl(289.1 100% 97.8%);
    --clr-fuchsia-100: hsl(287 100% 95.5%);
    --clr-fuchsia-200: hsl(288.3 95.8% 90.6%);
    --clr-fuchsia-300: hsl(291.1 93.1% 82.9%);
    --clr-fuchsia-400: hsl(292 91.4% 72.5%);
    --clr-fuchsia-500: hsl(292.2 84.1% 60.6%);
    --clr-fuchsia-600: hsl(293.4 69.5% 48.8%);
    --clr-fuchsia-700: hsl(294.7 72.4% 39.8%);
    --clr-fuchsia-800: hsl(295.4 70.2% 32.9%);
    --clr-fuchsia-900: hsl(296.7 63.6% 28%);
    --clr-fuchsia-950: hsl(296.8 90.2% 16.1%);

    --clr-pink-50: hsl(327.3 73.3% 97.1%);
    --clr-pink-100: hsl(325.7 77.8% 94.7%);
    --clr-pink-200: hsl(325.9 84.6% 89.8%);
    --clr-pink-300: hsl(327.4 87.1% 81.8%);
    --clr-pink-400: hsl(328.6 85.5% 70.2%);
    --clr-pink-500: hsl(330.4 81.2% 60.4%);
    --clr-pink-600: hsl(333.3 71.4% 50.6%);
    --clr-pink-700: hsl(335.1 77.6% 42%);
    --clr-pink-800: hsl(335.8 74.4% 35.3%);
    --clr-pink-900: hsl(335.9 69% 30.4%);
    --clr-pink-950: hsl(336.2 83.9% 17.1%);

    --clr-rose-50: hsl(355.7 100% 97.3%);
    --clr-rose-100: hsl(355.6 100% 94.7%);
    --clr-rose-200: hsl(352.7 96.1% 90%);
    --clr-rose-300: hsl(352.6 95.7% 81.8%);
    --clr-rose-400: hsl(351.3 94.5% 71.4%);
    --clr-rose-500: hsl(349.7 89.2% 60.2%);
    --clr-rose-600: hsl(346.8 77.2% 49.8%);
    --clr-rose-700: hsl(345.3 82.7% 40.8%);
    --clr-rose-800: hsl(343.4 79.7% 34.7%);
    --clr-rose-900: hsl(341.5 75.5% 30.4%);
    --clr-rose-950: hsl(343.1 87.7% 15.9%);

    --clr-brand-50: oklch(0.975 0.007 208.783);
    --clr-brand-100: oklch(0.933 0.017 215.461);
    --clr-brand-200: oklch(0.871 0.031 217.503);
    --clr-brand-300: oklch(0.778 0.051 219.317);
    --clr-brand-400: oklch(0.662 0.069 219.822);
    --clr-brand-500: oklch(0.568 0.071 224.163);
    --clr-brand-600: oklch(0.5 0.061 228.735);
    --clr-brand-700: oklch(0.441 0.049 230.377);
    --clr-brand-800: oklch(0.398 0.038 231.574);
    --clr-brand-900: oklch(0.358 0.032 240.174);
    --clr-brand-950: oklch(0.245 0.023 238.087);

    --clr-accent-50: oklch(0.978 0.003 228.784);
    --clr-accent-100: oklch(0.926 0.006 239.824);
    --clr-accent-200: oklch(0.862 0.01 222.072);
    --clr-accent-300: oklch(0.759 0.018 230.993);
    --clr-accent-400: oklch(0.629 0.026 232.109);
    --clr-accent-500: oklch(0.537 0.027 232.266);
    --clr-accent-600: oklch(0.478 0.022 238.177);
    --clr-accent-700: oklch(0.408 0.014 240.243);
    --clr-accent-800: oklch(0.387 0.013 248.161);
    --clr-accent-900: oklch(0.34 0.011 236.908);
    --clr-accent-950: oklch(0.266 0.009 248.183);

    --clr-neutral-0: oklch(1 0 89.876);
    --clr-neutral-25: oklch(0.992 0.001 17.178);
    --clr-neutral-50: oklch(0.985 0.002 247.839);
    --clr-neutral-100: oklch(0.976 0.002 247.839);
    --clr-neutral-200: oklch(0.959 0.004 286.324);
    --clr-neutral-300: oklch(0.928 0.006 264.531);
    --clr-neutral-400: oklch(0.872 0.009 258.338);
    --clr-neutral-500: oklch(0.714 0.019 261.325);
    --clr-neutral-600: oklch(0.551 0.023 264.364);
    --clr-neutral-700: oklch(0.446 0.026 256.802);
    --clr-neutral-800: oklch(0.373 0.031 259.733);
    --clr-neutral-900: oklch(0.278 0.03 256.848);
    --clr-neutral-950: oklch(0.21 0.032 264.665);
    --clr-neutral-1000: oklch(0 0 0);

    --clr-success-50: oklch(0.979 0.021 166.113);
    --clr-success-100: oklch(0.95 0.051 163.051);
    --clr-success-200: oklch(0.905 0.089 164.15);
    --clr-success-300: oklch(0.884 0.111 163.212);
    --clr-success-400: oklch(0.845 0.13 164.978);
    --clr-success-500: oklch(0.773 0.153 163.223);
    --clr-success-600: oklch(0.696 0.149 162.48);
    --clr-success-700: oklch(0.596 0.127 163.225);
    --clr-success-800: oklch(0.508 0.105 165.612);
    --clr-success-900: oklch(0.432 0.086 166.913);
    --clr-success-950: oklch(0.378 0.073 168.94);

    --clr-danger-50: oklch(0.969 0.015 12.422);
    --clr-danger-100: oklch(0.941 0.03 12.58);
    --clr-danger-200: oklch(0.892 0.056 10.001);
    --clr-danger-300: oklch(0.81 0.106 11.638);
    --clr-danger-400: oklch(0.719 0.169 13.428);
    --clr-danger-500: oklch(0.645 0.215 16.439);
    --clr-danger-600: oklch(0.586 0.222 17.585);
    --clr-danger-700: oklch(0.514 0.198 16.935);
    --clr-danger-800: oklch(0.455 0.171 13.697);
    --clr-danger-900: oklch(0.41 0.15 10.272);
    --clr-danger-950: oklch(0.271 0.101 12.094);

    --clr-warning-50: oklch(0.987 0.026 102.212);
    --clr-warning-100: oklch(0.973 0.069 103.193);
    --clr-warning-200: oklch(0.945 0.124 101.54);
    --clr-warning-300: oklch(0.905 0.166 98.111);
    --clr-warning-400: oklch(0.861 0.173 91.936);
    --clr-warning-500: oklch(0.795 0.162 86.047);
    --clr-warning-600: oklch(0.681 0.142 75.834);
    --clr-warning-700: oklch(0.554 0.121 66.442);
    --clr-warning-800: oklch(0.476 0.103 61.907);
    --clr-warning-900: oklch(0.421 0.09 57.708);
    --clr-warning-950: oklch(0.286 0.064 53.813);

    --clr-info-50: oklch(0.97 0.014 254.604);
    --clr-info-100: oklch(0.932 0.032 255.585);
    --clr-info-200: oklch(0.882 0.057 254.128);
    --clr-info-300: oklch(0.809 0.096 251.813);
    --clr-info-400: oklch(0.714 0.143 254.624);
    --clr-info-500: oklch(0.623 0.188 259.815);
    --clr-info-600: oklch(0.546 0.215 262.881);
    --clr-info-700: oklch(0.488 0.217 264.376);
    --clr-info-800: oklch(0.424 0.181 265.638);
    --clr-info-900: oklch(0.379 0.138 265.522);
    --clr-info-950: oklch(0.282 0.087 267.935);
  }

  html {
    color-scheme: only light;
  }
}

@layer typography {
  :root {
    --ff-header: "Space Grotesk";
    --ff-text: "Jost";
    --ff-icon: "Font Awesome 6 Pro";

    --fs-header-6: 1rem;
    --fs-header-5: 1.0625rem;
    --fs-header-4: 1.15625rem;
    --fs-header-3: 1.25rem;
    --fs-header-2: clamp(1.3125rem, 0.31vi + 1.32rem, 1.4375rem);
    --fs-header-1: clamp(1.9375rem, 0.51vi + 1.95rem, 2.1875rem);
  }

  html {
    font-size: 100%;
    line-height: 1.625;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  body {
    font-family: var(--ff-text), sans-serif;
    font-size: 100%;
    font-variation-settings: "wght" 400;
    line-height: 1.625;
    letter-spacing: 0;
  }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--ff-header), sans-serif;
    font-variation-settings: "wght" 650;
    line-height: 1.375;
    letter-spacing: -0.025rem;
  }

  h1,
  .like-h1 {
    font-size: var(--fs-header-1);
    font-variation-settings: "wght" 600;
  }

  h2,
  .like-h2 {
    font-size: var(--fs-header-2);
  }

  h3,
  .like-h3 {
    font-size: var(--fs-header-3);
  }

  h4,
  .like-h4 {
    font-size: var(--fs-header-4);
  }

  h5,
  .like-h5 {
    font-size: var(--fs-header-5);
  }

  h6,
  .like-h6 {
    font-size: var(--fs-header-6);
  }
}

@layer appearance {
  :root {
    --clr-surface: var(--clr-neutral-200);
    --clr-text: var(--clr-accent-700);

    --bp-phone: 30rem;
    --bp-table-portrait: 40rem;
    --bp-table-landscape: 62rem;
    --bp-desktop: 80rem;
    --bp-wide-desktop: 105rem;
    --bp-extra-wide-desktop: 120rem;
  }

  ::selection {
    color: var(--clr-text);
    background-color: var(--clr-brand-300);
  }

  body {
    block-size: 100dvh;
    background: var(--clr-brand-950);
    background: -webkit-linear-gradient(to left, var(--clr-brand-600), var(--clr-brand-950));
    background: linear-gradient(to left, var(--clr-brand-600), var(--clr-brand-950));
    color: var(--clr-text);
  }

  hr {
    --background-color: var(--clr-neutral-200);

    background-color: var(--background-color);
  }

  a {
    color: var(--clr-info-600);
  }
}

@layer behavior {
  html {
    overflow: hidden;
    scroll-behavior: smooth;
  }

  body {
    overflow: hidden scroll;
    scrollbar-gutter: stable;
  }

  body:has(dialog[open]),
  body:has(.-drawer-open) {
    overflow: hidden;
  }

  /*@view-transition {*/
  /*  navigation: auto;*/
  /*}*/

  /*::view-transition-old,*/
  /*::view-transition-new {*/
  /*  animation-duration: 0.0625s;*/
  /*}*/

  @keyframes spin {
    to {
      transform: rotate(359deg);
    }
  }

  @keyframes fade-in {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }

  @keyframes fade-out {
    0% {
      opacity: 1;
    }
    100% {
      opacity: 0;
    }
  }

  @keyframes pulse {
    0% {
      opacity: .1;
    }
    100% {
      opacity: .3;
    }
  }
}

@layer vendor {
  .turbo-progress-bar {
    background-color: var(--clr-warning-600) !important;
  }
}

@layer util {
  .fluid-width {
    inline-size: 100%;
    max-inline-size: 100%;
    block-size: auto;
  }

  .fluid-height {
    inline-size: auto;
    height: 100%;
    max-block-size: 100%;
  }

  .hidden {
    display: none !important;
  }
}
