@tailwind base;
@tailwind components;
@tailwind utilities;

.baskerville {
  font-family: baskerville, serif;
}

blockquote::before {
  font-family: "Font Awesome 6 Free";
  color: #79c753;
  content: "\f10d";
  font-weight: 900;
  font-size: 2rem;
  position: absolute;
  left: 10px;
  top: -15px;
}

@layer base {
  blockquote {
    @apply border-l-4 p-6 py-1 m-8 relative border-lime-500 baskerville;
  }
  blockquote p:last-of-type {
    @apply text-center uppercase mt-4 tracking-wide;
  }
  h1 {
    @apply text-5xl font-bold my-4;
  }
  h2 {
    @apply text-4xl font-bold my-4;
  }
  h3 {
    @apply text-3xl font-bold my-4;
  }
  h4 {
    @apply text-2xl font-bold my-4;
  }
  h5 {
    @apply text-xl font-bold my-4;
  }
  h6 {
    @apply text-lg font-bold my-4;
  }
}

@layer components {
  #hero {
    text-shadow: 2px 2px 3px black;
  }
  .main-content {
    p {
      @apply my-4 text-xl;
      code {
        @apply text-blue-500 px-1;
      }
    }
  }
  .main-content a {
    @apply px-1 text-lime-500;
  }
  .main-content a[href^="http"]::after {
    content: "";
    width: 11px;
    height: 11px;
    margin-left: 4px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z'/%3E%3Cpath fill-rule='evenodd' d='M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    display: inline-block;
  }
  .main-content {
    dl {
      @apply px-8 text-xl;
    }
    dt {
      @apply font-bold;
    }
    dd {
      @apply ml-8;
    }
    .highlight {
      .chroma {
        @apply p-1 overflow-x-scroll;
      }
    }
  }
  .cv-entry,
  .cv-honor {
    @apply ml-4 pl-8 pb-2 relative;
    .cv-role {
      @apply m-0;
    }
    .cv-host,
    .cv-date,
    .cv-location {
      @apply font-light m-0 p-0;
    }
    .cv-host::before {
      font-family: "Font Awesome 6 Free";
      content: "\f1ad";
      font-weight: 900;
      margin: 0 0.5rem;
    }
    .cv-location::before {
      font-family: "Font Awesome 6 Free";
      content: "\f041";
      font-weight: 900;
      margin: 0 0.5rem;
    }
    p {
      @apply text-base my-2;
    }
    ul {
      all: revert;
    }
  }
  .cv-entry {
    @apply border-l border-gray-400;
    .cv-role::before {
      content: "";
      position: absolute;
      width: 2rem;
      height: 2rem;
      background-color: #79c753;
      border-radius: 50%;
      transform: translateX(-50%);
      left: 0;
    }
    .cv-date,
    .cv-location {
      @apply inline-block;
    }
    .cv-date::before {
      font-family: "Font Awesome 6 Free";
      content: "\f133";
      font-weight: 900;
      margin: 0 0.5rem;
    }
  }

  .cv-honor {
    .cv-role {
      @apply ml-12 text-xl;
    }
    .cv-date {
      top: 0.05rem;
      @apply absolute left-0 text-xl;
    }
    .cv-date::before {
      font-family: "Font Awesome 6 Free";
      color: #ffb700;
      content: "\f559";
      font-weight: 900;
      margin: 0 0.5rem;
    }
  }
  .comment {
    @apply my-2 pl-4 border-l border-lime-500 relative;
    h3,
    h4,
    h5,
    h6 {
      @apply my-0 pl-2;
      &::before {
        font-family: "Font Awesome 6 Free";
        color: #79c753;
        content: "\f075";
        font-weight: 900;
        font-size: 2rem;
        position: absolute;
        left: -0.75rem;
        top: -1rem;
        transform: scaleX(-1);
      }
    }
  }

  /* https://lubna.dev/articles/create-css-only-image-gallery/ */
  .gallery {
    --max-img-width: 72rem;
    --max-img-height: 48rem;
    max-width: var(--max-img-width);
    padding-top: min(66%, var(--max-img-height));

    input:checked + img {
      opacity: 1;
    }
    input:checked ~ label > img {
      @apply shadow-md shadow-lime-500;
    }
  }
}

@layer utilities {
  @font-face {
    font-family: "BerkshireSwash-Regular";
    font-display: optional;
    src:
      url("/css/fonts/BerkshireSwash-Regular.ttf.woff") format("woff"),
      url("/css/fonts/BerkshireSwash-Regular.ttf.svg#BerkshireSwash-Regular")
        format("svg"),
      url("/css/fonts/BerkshireSwash-Regular.ttf.eot"),
      url("/css/fonts/BerkshireSwash-Regular.ttf.eot?#iefix")
        format("embedded-opentype");
    font-weight: normal;
    font-style: normal;
  }

  .berkshire-swash {
    font-family: "BerkshireSwash-Regular";
  }
}