@import "tailwindcss";

@theme {
  /* ---- palette ------------------------------------------------------- */
  --color-ink: #0e1013;
  --color-ink-2: #16191d;
  --color-ink-3: #22262b;
  --color-paper: #fbfaf8;
  --color-sand: #f2eee8;
  --color-muted: #5c6873; /* brand body grey, carried over from the current site */
  --color-gold: #b08d57;
  --color-gold-soft: #cbab7d;
  --color-line: #e2ddd5;

  /* ---- type ---------------------------------------------------------- */
  --font-sans: var(--font-iranyekan), system-ui, sans-serif;
  --font-latin: var(--font-montserrat), system-ui, sans-serif;

  /* ---- motion -------------------------------------------------------- */
  --ease-out-soft: cubic-bezier(0.22, 1, 0.36, 1);

  --animate-fade-up: fade-up 0.9s var(--ease-out-soft) both;
  --animate-slow-zoom: slow-zoom 9s var(--ease-out-soft) both;
  --animate-marquee: marquee 38s linear infinite;

  @keyframes fade-up {
    from {
      opacity: 0;
      transform: translateY(22px);
    }
    to {
      opacity: 1;
      transform: none;
    }
  }
  @keyframes slow-zoom {
    from {
      transform: scale(1.12);
    }
    to {
      transform: scale(1);
    }
  }
  @keyframes marquee {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(50%);
    }
  }
}

@layer base {
  html {
    scroll-behavior: smooth;
  }

  body {
    background-color: var(--color-paper);
    color: var(--color-muted);
    font-family: var(--font-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  h1,
  h2,
  h3,
  h4 {
    color: var(--color-ink);
    font-weight: 700;
    line-height: 1.45;
  }

  ::selection {
    background-color: var(--color-gold);
    color: #fff;
  }

  /* A restrained gold scrollbar keeps the luxury tone on desktop. */
  ::-webkit-scrollbar {
    width: 10px;
  }
  ::-webkit-scrollbar-track {
    background: var(--color-sand);
  }
  ::-webkit-scrollbar-thumb {
    background: var(--color-gold);
  }
}

@layer components {
  /* Latin lock-ups (project names, kickers) always read left-to-right. */
  .latin {
    font-family: var(--font-latin);
    direction: ltr;
    unicode-bidi: isolate;
  }

  /* Thin gold rule that precedes every section kicker. */
  .kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--color-gold);
    font-size: 0.75rem;
    letter-spacing: 0.32em;
  }
  .kicker::before {
    content: "";
    width: 2.5rem;
    height: 1px;
    background: currentColor;
  }

  /* Rich text rendered from the portfolio API's mainTextHtml field. */
  .cms-body {
    max-width: 738px;
    margin-inline: auto;
    color: var(--color-muted);
    font-size: 1rem;
    line-height: 2.1;
  }
  .cms-body p {
    margin-block: 1.25em;
  }
  .cms-body strong,
  .cms-body b {
    color: var(--color-ink);
    font-weight: 700;
  }
  .cms-body a {
    color: var(--color-gold);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .cms-body a:hover {
    color: var(--color-ink);
  }
  .cms-body img {
    display: block;
    width: 100%;
    height: auto;
    margin-block: 2em;
  }
  .cms-body h1,
  .cms-body h2,
  .cms-body h3 {
    margin-block: 1.5em 0.75em;
    color: var(--color-ink);
    font-weight: 700;
  }
}

@utility no-scrollbar {
  scrollbar-width: none;
  -ms-overflow-style: none;
  &::-webkit-scrollbar {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
