/*
Theme Name: SpinQueens
Text Domain: spinqueens
Version: 0.1.0
*/

:root {
  --font: 'Source Sans 3', system-ui, -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Apple Color Emoji',
    'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', sans-serif;
  --queenBlack: #0a0a0a;
  --queenPurple: #c71585;
  --queenWhite: #f1f1f1;
  --queenYellow: #fddd0b;

  --range: 20px;
  --bgX: 0px;
  --bgY: 0px;
  --bgBaseY: 0px;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: var(--font);
  height: 100%;
}

h1,
h2,
h3,
h4 {
  margin: 0;
  text-shadow: 0 0 5px var(--queenBlack);
  padding-bottom: 1rem;
}

#site-content {
  padding-top: 0.5rem;
}

#site-content h1 {
  display: none;
}

button {
  font-family: var(--font);
  cursor: pointer;
}

a {
  text-decoration: none;
}

main {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  display: flex;
  justify-content: center;
}

main::before {
  content: '';
  position: fixed;
  inset: -2px;
  background-image: var(--sq-site-bg),
    linear-gradient(0deg, rgba(10, 10, 10, 1) 25%, rgb(64, 1, 40) 100%);
  background-size: 100% 100%, cover;
  background-repeat: no-repeat;
  background-position: calc(50% + var(--bgX))
      calc(50% + var(--bgBaseY) + var(--bgY)),
    center;
  filter: blur(2px);
  transform: translateZ(0);
  will-change: transform, filter, background-position;
  pointer-events: none;
  z-index: -2;
}

main::after {
  content: '';
  position: fixed;
  inset: 0;
  background-color: rgba(64, 1, 40, 0.5);
  pointer-events: none;
  z-index: -1;
}

.home-main,
.page-main {
  max-width: 1080px;
}

.page-main {
  text-align: center;
}

.home-main h2,
.page-main h2 {
  font-size: 3.5rem;
  color: var(--queenWhite);
  transform-origin: center;
  will-change: transform, opacity;
  animation: sq-heading-in 600ms cubic-bezier(0.2, 0.6, 0.2, 1) both;
}

.home-main h3,
.page-main h3 {
  font-size: 2.5rem;
  color: var(--queenWhite);
  transform-origin: center;
  will-change: transform, opacity;
  animation: sq-heading-in 600ms cubic-bezier(0.2, 0.6, 0.2, 1) both;
}

.home-main h4,
.page-main h4 {
  font-size: 1.5rem;
  color: var(--queenWhite);
  transform-origin: center;
  will-change: transform, opacity;
  animation: sq-heading-in 600ms cubic-bezier(0.2, 0.6, 0.2, 1) both;
}

.home-main p a,
.page-main p a,
.home-main h2 a,
.page-main h2 a,
.home-main h3 a,
.page-main h3 a,
.home-main h4 a,
.page-main h4 a {
  text-decoration: underline;
  color: var(--queenYellow);
  transition: 0.25s;
  transform-origin: center;
  will-change: transform, opacity;
  animation: sq-heading-in 600ms cubic-bezier(0.2, 0.6, 0.2, 1) both;
}

.home-main p a:where(:hover, :focus-visible),
.page-main p a:where(:hover, :focus-visible),
.home-main h2 a:where(:hover, :focus-visible),
.page-main h2 a:where(:hover, :focus-visible),
.home-main h3 a:where(:hover, :focus-visible),
.page-main h3 a:where(:hover, :focus-visible),
.page-main h4 a:where(:hover, :focus-visible),
.page-main h4 a:where(:hover, :focus-visible) {
  color: var(--queenWhite);
}

/* 404 page layout */
.error404 .error-404-main {
  padding: 4rem 1rem;
}

.error404 .error-404-message {
  font-size: 1.25rem;
  color: var(--queenWhite);
}

.ios-fallback {
  background-image: linear-gradient(
    0deg,
    rgba(10, 10, 10, 1) 25%,
    rgb(124, 14, 84) 100%
  ) !important;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
}
.ios-fallback::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: linear-gradient(
    0deg,
    rgba(10, 10, 10, 1) 25%,
    rgb(124, 14, 84) 100%
  );
  background-size: cover;
  background-repeat: no-repeat;
  background-position: calc(50% + var(--bgX))
    calc(50% + var(--bgBaseY) + var(--bgY));
  z-index: -1;
}

@media (max-width: 1240px) {
  .home-main,
  .page-main {
    max-width: 710px;
  }
}

@media (max-width: 800px) {
  .home-main,
  .page-main {
    max-width: 605px;
  }
  .home-main h2,
  .page-main h2 {
    font-size: 2.75rem;
  }

  .home-main h3,
  .page-main h3 {
    font-size: 1.75rem;
  }

  .home-main h4,
  .page-main h4 {
    font-size: 1.15rem;
  }
}

@media (max-width: 440px) {
  main::before,
  main::after {
    background: var(--sq-mobile-bg) top / 100% 100% no-repeat;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --range: 0px;
  }
  .home-main h2,
  .page-main h2,
  .home-main h3,
  .page-main h3,
  .home-main h4,
  .page-main h4,
  .home-main p a,
  .page-main p a,
  .home-main h2 a,
  .page-main h2 a,
  .home-main h3 a,
  .page-main h3 a,
  .home-main h4 a,
  .page-main h4 a {
    animation: none !important;
  }
}
