/*!*****************************************************************************************************************************************!*\
  !*** css ../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./styles/main.scss ***!
  \*****************************************************************************************************************************************/
@charset "UTF-8";
/***
    The new CSS reset - version 1.8.4 (last updated 14.2.2023)
    GitHub page: https://github.com/elad2412/the-new-css-reset
***/
/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
 */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
  all: unset;
  display: revert;
}

/* Preferred box-sizing value */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Reapply the pointer cursor for anchor tags */
a, button {
  cursor: revert;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu {
  list-style: none;
}

/* For images to not be able to exceed their container */
img {
  max-inline-size: 100%;
  max-block-size: 100%;
}

/* removes spacing between cells in tables */
table {
  border-collapse: collapse;
}

/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input, textarea {
  -webkit-user-select: auto;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
  white-space: revert;
}

/* minimum style to allow to style meter element */
meter {
  -webkit-appearance: revert;
  appearance: revert;
}

/* preformatted text - use only for this feature */
:where(pre) {
  all: revert;
}

/* reset default text opacity of input placeholder */
::placeholder {
  color: unset;
}

/* remove default dot (•) sign */
::marker {
  content: initial;
}

/* fix the feature of 'hidden' attribute.
   display:revert; revert to element instead of attribute */
:where([hidden]) {
  display: none;
}

/* revert for bug in Chromium browsers
   - fix for the content editable attribute will work properly.
   - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/
:where([contenteditable]:not([contenteditable=false])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
  -webkit-user-select: auto;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable=true]) {
  -webkit-user-drag: element;
}

/* Revert Modal native behavior */
:where(dialog:modal) {
  all: revert;
}

@font-face {
  font-family: "Nimbus Mono";
  src: url(../fonts/ead826f23452ff1f5759.woff) format("woff");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "Nimbus Mono";
  src: url(../fonts/c9148dc96da3a7d269ab.woff) format("woff");
  font-weight: 400;
  font-style: italic;
}
@font-face {
  font-family: "Nimbus Mono";
  src: url(../fonts/19c5850063af91f7fefe.woff) format("woff");
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: "Nimbus Mono";
  src: url(../fonts/5b2a083bbf724b17ab39.woff) format("woff");
  font-weight: 700;
  font-style: italic;
}
@font-face {
  font-family: "Rag Black";
  src: url(../fonts/e937028b3b71f8986685.woff2) format("woff2");
  font-weight: 400;
  font-style: normal;
}
body {
  font-family: "Nimbus Mono", "Courier New", Courier, monospace;
  font-weight: 400;
  font-style: normal;
}

i {
  font-style: italic;
}

strong {
  font-weight: 700;
}

:root {
  --base: 1.04vw;
}
@media (max-width: 1280px) {
  :root {
    --base: 15px;
  }
}
@media (max-width: 720px) {
  :root {
    --base: 3.94vw;
  }
}
:root {
  --font-size-base: var(--base);
  --font-size-xsmall: 0.75rem;
  --font-size-small: 0.88rem;
  --font-size-large: 1.6rem;
  --font-size-xlarge: 3.2rem;
  --font-line-height-base: 108%;
  --font-line-height-sm: 100%;
  --font-line-height-md: 116%;
  --font-line-height-lg: 124%;
  --font-letter-spacing-base: -0.0025em;
  --font-letter-spacing-tight: -0.0125em;
  --font-letter-spacing-wide: 0.0275em;
}
@media (max-width: 720px) {
  :root {
    --font-size-small: calc(var(--base) * 0.92);
    --font-size-xsmall: calc(var(--base) * 0.92);
    --font-size-xlarge: 2.4rem;
    --font-line-height-base: 124%;
    --font-line-height-md: 124%;
    --font-letter-spacing-base: -0.0125em;
    --font-letter-spacing-tight: -0.0475em;
    --font-letter-spacing-wide: 0.0125em;
  }
}
:root {
  --colour-black: #000000;
  --colour-white: #f5f2ec;
  --colour-primary: var(--colour-white);
  --colour-secondary: #f5f2ec1b;
  --colour-accent: #9cff00;
  --colour-background: var(--colour-black);
  --colour-border: #eaeaea;
  --colour-border: #f5f2ec7f;
  --colour-anim-bg: #1a1a19;
  --space-xs: 0.3rem;
  --space-sm: 0.6rem;
  --space-md: 1.2rem;
  --space-lg: 2.4rem;
  --space-xl: 4.8rem;
}
@media (max-width: 720px) {
  :root {
    --space-xs: 0.3rem;
    --space-sm: 0.6rem;
    --space-md: 1.2rem;
    --space-lg: 1.8rem;
    --space-xl: 2.4rem;
  }
}
:root {
  --hover-opacity: 0.5;
  --faded-opacity: 0.2;
  --border-width: 0.05rem;
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 1rem;
  --transition-fast: 0.2s;
  --transition-base: 0.3s;
  --transition-slow: 0.6s;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  --blur-sm: 0.15rem;
  --blur-md: 0.3rem;
  --blur-lg: 0.6rem;
}

html {
  font-size: var(--font-size-base);
  line-height: normal;
  scroll-behavior: smooth;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* Internet Explorer 10+ */
}
html::-webkit-scrollbar {
  display: none; /* Safari and Chrome */
}

body {
  font-size: var(--font-size-body);
  line-height: var(--font-line-height-base);
  letter-spacing: var(--font-letter-spacing-base);
  background-color: var(--colour-background);
  color: var(--colour-primary);
}

main {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
main header {
  flex: 1;
}

img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.handwritten img {
  height: 100%;
  width: auto;
  object-fit: contain;
}

button {
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  font: inherit;
}

a,
.archive-item {
  transition: color var(--transition-fast);
}
@media (min-width: 720px) {
  a:hover,
  .archive-item:hover {
    color: var(--colour-accent);
    font-weight: bold;
  }
}
@media (max-width: 720px) {
  a.active,
  .archive-item.active {
    font-weight: bold;
  }
}

.logo {
  fill: var(--colour-primary);
}

.active {
  text-transform: uppercase;
  font-weight: bold;
}

::selection {
  background: transparent;
}

.description ::selection {
  background: var(--colour-background);
}

figure {
  position: relative;
}

figcaption {
  --font-size-xsmall: 0.8rem;
  --font-line-height-base: 108%;
  font-size: var(--font-size-xsmall);
  line-height: var(--font-line-height-base);
  padding: var(--space-xs) var(--space-sm);
  position: absolute;
  bottom: 0;
  right: 0;
  font-style: italic;
  background-color: var(--colour-primary);
  color: var(--colour-background);
  text-wrap: pretty;
}

.draggable {
  cursor: grab !important;
}
.draggable:active {
  cursor: grabbing !important;
}
@media (max-width: 720px) {
  .draggable {
    cursor: default !important;
  }
  .draggable:active {
    cursor: default !important;
  }
}

.embla {
  height: auto;
  width: 100%;
  height: 13rem;
}

.carousel__viewport {
  position: relative;
  overflow: hidden;
}

.carousel__container {
  display: flex;
  height: 100%;
}

.carousel__controls {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
}
.carousel__controls > * {
  width: 100%;
}
.carousel__controls .carousel__prev {
  cursor: w-resize;
}
.carousel__controls .carousel__next {
  cursor: e-resize;
}

.carousel__slide {
  flex: 0 0 auto;
  height: 100%;
  min-width: 0;
  overflow: hidden;
  opacity: 0.8;
}
.carousel__slide img {
  width: auto;
}
.carousel__slide::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  background-image: url(../img/kast-halftone-web-2-sml.jpg);
  background-size: cover;
  background-repeat: repeat;
  mix-blend-mode: color-burn;
  filter: contrast(0.9) brightness(1.2);
  transform: scale(1.5) rotate(15deg);
  pointer-events: none;
}
@media (max-width: 720px) {
  .carousel__slide {
    filter: none;
  }
}

.timeout-overlay {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  background-color: var(--colour-anim-bg);
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
}
.timeout-overlay .logo-anim {
  display: flex;
  justify-content: center;
  width: auto;
  height: 100%;
  padding: var(--space-xl);
}
@media (max-width: 720px) {
  .timeout-overlay .logo-anim {
    padding: var(--space-sm) var(--space-sm) calc(var(--space-xl) * 2) var(--space-sm);
    width: 100%;
    height: 100%;
  }
  .timeout-overlay .logo-anim video {
    width: 100%;
    height: auto;
  }
}
.timeout-overlay .logo-anim video {
  mix-blend-mode: screen;
}
.timeout-overlay .furniture {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  padding: var(--space-lg);
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  column-gap: var(--space-md);
  z-index: 1001;
}
.timeout-overlay .furniture .aoc {
  background-color: var(--colour-background);
  max-width: 50%;
  text-overflow: clip;
  white-space: nowrap;
  overflow: hidden;
  display: none;
}
@media (max-width: 720px) {
  .timeout-overlay .furniture {
    padding: var(--space-lg) var(--space-md);
    flex-direction: column;
    align-items: center;
    row-gap: var(--space-md);
  }
  .timeout-overlay .furniture .aoc {
    max-width: 100%;
  }
}

.show {
  opacity: 0.88;
  pointer-events: all;
  transition: opacity var(--transition-base) ease-out;
}

.blur {
  filter: blur(var(--blur-lg));
  overflow: hidden;
  transition: filter var(--transition-base) ease-out;
}

header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: var(--space-lg);
  pointer-events: none;
  z-index: 10;
}
header nav {
  display: flex;
  column-gap: var(--space-md);
  pointer-events: all;
}
header nav:not(:last-child) {
  padding-bottom: var(--space-sm);
}
@media (max-width: 720px) {
  header nav {
    column-gap: var(--space-lg);
    justify-content: center;
  }
}
header > div {
  pointer-events: none;
}
header > div > * {
  pointer-events: all;
}
header > div.artists {
  display: flex;
  flex-direction: column;
}
header > div.artists a {
  width: fit-content;
}
header > div.artists a h2 {
  mix-blend-mode: exclusion;
  font-weight: bold;
}
header > div.artists a .container {
  z-index: -1;
}
@media (max-width: 720px) {
  header > div.artists a {
    position: relative;
  }
  header > div.artists a h2 {
    position: absolute;
    top: 0;
    left: 0;
    padding-top: var(--space-xs);
  }
  header > div.artists a .container {
    margin-top: 0;
    margin-bottom: 0;
  }
}
@media (max-width: 720px) {
  header {
    position: initial;
    padding: var(--space-md) var(--space-md) 0 var(--space-md);
  }
}

@media (min-width: 720px) {
  header:hover:not(:has(nav:hover)) ~ footer {
    opacity: var(--faded-opacity);
    opacity: 0;
    filter: blur(var(--blur-md));
  }
}
footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  display: grid;
  grid-template-columns: repeat(16, 1fr);
  column-gap: var(--space-md);
  align-items: flex-end;
  pointer-events: none;
}
footer > * {
  pointer-events: all;
}
@media (max-width: 720px) {
  footer {
    position: initial;
    grid-template-columns: repeat(4, 1fr);
    row-gap: var(--space-md);
  }
}

@media (max-width: 720px) {
  footer {
    padding: var(--space-md) var(--space-md) var(--space-lg) var(--space-md);
  }
  footer .socials {
    font-size: 0.88rem;
    line-height: var(--font-line-height-sm);
  }
}

.logo {
  grid-column: 1/7;
}
.logo a {
  grid-column: span 6;
  margin-right: calc(var(--space-md) * -1);
  transform: rotate(-0.25deg);
}
@media (max-width: 720px) {
  .logo {
    grid-column: 1/-1;
    padding: initial;
  }
  .logo a {
    grid-column: 1/-1;
    margin-right: initial;
  }
}

.socials {
  grid-column: 13/-1;
  display: flex;
  flex-direction: column;
  font-size: var(--font-size-small);
  line-height: var(--font-line-height-sm);
  padding: var(--space-lg);
}
.socials a {
  padding-top: var(--space-xs);
  border-top: solid var(--border-width) var(--colour-border);
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.socials a::after {
  content: "↗";
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  font-size: var(--font-size-large);
}
.socials a:not(:last-child) {
  margin-bottom: var(--space-xs);
}
@media (max-width: 720px) {
  .socials a {
    font-size: var(--font-size-small);
  }
  .socials a::after {
    font-size: var(--font-size-large);
  }
}
@media (max-width: 720px) {
  .socials {
    grid-column: 1/-1;
    margin-right: initial;
    padding: initial;
  }
  .socials:not(:last-child) {
    padding-bottom: 0;
  }
}

.artists {
  pointer-events: none;
}
.artists a {
  display: flex;
  flex-direction: column;
  pointer-events: all;
}
@media (max-width: 720px) {
  .artists a {
    border-top: solid var(--border-width) var(--colour-border);
  }
  .artists a:not(:first-child) {
    margin-top: var(--space-md);
  }
}
.artists a .container {
  --image-padding: var(--space-md);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(16, 1fr);
  margin: var(--image-padding) 0;
  padding: 0 var(--image-padding);
  pointer-events: none;
  overflow: hidden;
}
@media (max-width: 720px) {
  .artists a .container {
    position: initial;
    grid-template-columns: repeat(8, 1fr);
    margin-top: -1rem;
    padding: 0;
    gap: var(--space-lg);
  }
}
.artists a .artist-image {
  grid-column: 12/-1;
  opacity: 0;
  filter: saturate(0) brightness(1.5);
  pointer-events: none;
  overflow: hidden;
  position: relative;
}
@media (max-width: 720px) {
  .artists a .artist-image {
    opacity: 1;
    grid-column: 6/-1 !important;
  }
}
.artists a .artist-image::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../img/kast-halftone-web-2-sml.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  mix-blend-mode: color-burn;
  filter: contrast(0.9) brightness(1.2);
  transform: scale(1.5) rotate(15deg);
  opacity: 0.6;
  pointer-events: none;
}
.artists a .artist-image img {
  height: auto;
}
@media (min-width: 720px) {
  .artists a:hover .artist-image {
    opacity: 1;
    opacity: 0.8;
    pointer-events: all;
  }
}

body[data-template=artist] .container {
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
  margin: var(--space-md);
  min-height: calc(100svh - var(--space-sm) * 2);
  box-sizing: content-box;
}
@media (max-width: 720px) {
  body[data-template=artist] .container {
    height: initial;
    margin: 0 var(--space-md) var(--space-lg) var(--space-md);
  }
}

.artist {
  display: flex;
  flex-direction: column;
  row-gap: var(--space-md);
  pointer-events: all;
  z-index: 1;
  width: 40%;
  top: 0;
  right: 0;
  padding: var(--space-md);
  align-self: flex-start;
  background-color: var(--colour-secondary);
}
.artist p {
  line-height: var(--font-line-height-md);
}
.artist .socials a::after {
  font-size: var(--font-size-small);
}
@media (max-width: 720px) {
  .artist .socials a::after {
    font-size: var(--font-size-base);
  }
}
@media (max-width: 720px) {
  .artist .socials a {
    padding-top: var(--space-xs);
    border-top: solid var(--border-width) var(--colour-border);
  }
}
.artist.draggable {
  touch-action: none;
  box-sizing: border-box;
}
@media (max-width: 720px) {
  .artist.draggable {
    pointer-events: none;
    touch-action: auto;
  }
  .artist.draggable > * {
    pointer-events: all;
  }
}
.artist .name {
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 720px) {
  .artist .name {
    margin-top: var(--space-sm);
    height: 6rem;
    padding: var(--space-sm);
  }
}
.artist .name h2 {
  font-family: "Rag Black", Impact, "Arial Narrow Bold", sans-serif;
  font-size: var(--font-size-large);
  line-height: var(--font-line-height-sm);
  letter-spacing: var(--font-letter-spacing-wide);
  text-transform: lowercase;
  opacity: var(--faded-opacity);
  transform: scaleX(0.75) rotate(1deg);
}
.artist .name .handwritten {
  height: 5rem;
  width: -webkit-max-content;
  width: auto;
  margin-top: -1rem;
  padding: 0 var(--space-lg);
}
@media (max-width: 720px) {
  .artist .name .handwritten {
    padding: initial;
    height: 3rem;
  }
}
.artist .name .handwritten img {
  overflow: visible;
}
.artist .description {
  font-size: var(--font-size-small);
  line-height: var(--font-line-height-sm);
  letter-spacing: var(--font-letter-spacing-tight);
  text-wrap: pretty;
  transform: rotate(-0.5deg);
}
@media (max-width: 720px) {
  .artist .description {
    transform: none;
  }
}
.artist .description p:not(:first-child) {
  margin-top: var(--space-xs);
}
@media (max-width: 720px) {
  .artist .description p:not(:first-child) {
    margin-top: var(--space-sm);
  }
}
.artist .social-links {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: var(--space-sm);
  padding-top: var(--space-lg);
}
.artist .social-links .socials {
  grid-column: 6/-1;
  padding: 0 0 var(--space-sm) 0;
}
@media (max-width: 1280px) {
  .artist .social-links .socials {
    grid-column: 5/-1;
  }
}
@media (max-width: 720px) {
  .artist .social-links {
    grid-template-columns: repeat(4, 1fr);
    padding-top: var(--space-xs);
  }
  .artist .social-links .socials {
    grid-column: 1/-1;
    padding: 0 0 var(--space-md) 0;
  }
}
@media (max-width: 720px) {
  .artist {
    position: initial;
    width: 100%;
    padding: initial;
    margin: initial;
    background-color: initial;
  }
}

.archive {
  pointer-events: none;
}
.archive .archive-item,
.archive .archive-image {
  display: grid;
  grid-template-columns: 4.35vw repeat(15, 1fr);
  column-gap: var(--space-md);
}
@media (max-width: 1280px) {
  .archive .archive-item,
  .archive .archive-image {
    grid-template-columns: 63px repeat(15, 1fr);
  }
}
@media (max-width: 720px) {
  .archive .archive-item,
  .archive .archive-image {
    grid-template-columns: 14.1vw repeat(5, 1fr);
  }
}
@media (max-width: 720px) {
  .archive .archive-image {
    grid-template-columns: 14.1vw repeat(5, 1fr);
  }
  .archive .archive-item {
    margin-bottom: var(--space-xs);
    padding-top: var(--space-xs);
    border-top: solid var(--border-width) var(--colour-border);
  }
  .archive .archive-item:last-child {
    margin-bottom: 0;
  }
}
.archive div.archive-item {
  cursor: default;
}
@media (min-width: 720px) {
  .archive div.archive-item:hover {
    color: var(--colour-accent);
  }
}
.archive a.archive-item {
  font-weight: bold;
}
.archive .archive-image {
  opacity: 0;
  position: fixed;
  top: 0;
  right: 0;
  padding: var(--space-xs);
  pointer-events: none;
}
.archive .archive-image img {
  grid-column: 13/-1;
}
@media (max-width: 720px) {
  .archive .archive-image {
    opacity: 1;
    grid-column: 1/-1;
    position: initial;
    padding: initial;
    display: none;
  }
  .archive .archive-image img {
    grid-column: 5/-1;
  }
}
.archive .year > *,
.archive .title > *,
.archive .description > * {
  display: inline-flex;
}
.archive .year {
  grid-column: 1/2;
}
.archive .title {
  grid-column: 2/6;
}
@media (max-width: 720px) {
  .archive .title {
    grid-column: 2/-1;
  }
}
.archive .description {
  grid-column: 6/11;
}
@media (max-width: 720px) {
  .archive .description {
    grid-column: 2/-1;
    font-style: italic;
  }
}
@media (min-width: 720px) {
  .archive .archive-item:hover .archive-image {
    opacity: 1;
  }
}
