:root {
    /* COLOURS */
    --color-background: #ffffff;
    --color-text: #000000;
    --color-link:  #E0115f;

    /* TYPOGRAPHY */
    /* Fonts */
    --font-body: "Arial", sans-serif;
    --font-decorative: "sloop-script-one", sans-serif;

    /* Sizing */
    --fs-xs: 0.75rem;
    --fs-sm: 0.875rem;
    --fs-md: 1rem;
    --fs-lg: 1.7rem;
    --fs-xl: 2rem;
    --fs-2xl: 5.5rem;
    --fs-3xl: 7rem;

    /* Font Weights */
    --fw-regular: 400;
    --fw-medium: 500;
    --fw-bold: 700;
    
    /* Line Heights */
    --lh-tight: 1;
    --lh-normal: 1.8;
}
/* BODY */
body {
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-background);
  font-size: var(--fs-md);
  font-weight: var(--fw-regular);
  line-height: var(--lh-normal);
}

h1 {
  font-family: var(--font-decorative);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-medium);
}

h2 {
  font-family: var(--font-decorative);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-medium);
}

h3 {
  font-size: var(--fs-lg);
  font-weight: var(--fw-normal);
  line-height: var(--lh-tight);
}

h4 {
  font-size: var(--fx-md);
  font-weight: var(--fw-normal);

}

p {
  font-size: var(--fs-md);
}

small {
  font-size: var(--fs-sm);
}

/* MAIN (FLEX) */
main.flex-layout {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  min-height: auto;
  padding: 0rem 0;
  margin: 1rem 2rem 2rem 2rem;
}


main h1 {
        display: inline-block;
        text-align: center;
        padding: 0 1rem;
        margin: 0 0.5rem;
        font-size: calc(var(--fs-2xl) * 0.9);
        white-space: nowrap;
      }






main.flex-layout > h1 {
  margin: 0 0 1rem 0;
}

@media (max-width: 768px) {
  body {
    margin:0
  }
    main h1 {
        display: inline-block;
        text-align: center;
        padding: 0 1rem;
        margin: 0 0.5rem;
        font-size: calc(var(--fs-2xl) * 0.62);
        white-space: nowrap;

    }
}

/* mobile guide */

div .mobile {
  display: none;
}

@media (max-width: 768px) {
  div .mobile {
    display: block;
  }
}

/* Custom Cursor */
body.cursor,
body.cursor * {
  cursor: none !important;
}

#cursor {
    /* positional information */
    position: fixed;
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    z-index: 9999;
    pointer-events: none;

    /* text styling */
    font-family: var(--font-family);
    font-size: var(--fs-md);
    color: var(--color-text);
    opacity: 0;
}


/* Image Gallery */

.gallery {
    position: relative;
    width: 50rem;
    max-width: 100%;
    aspect-ratio: 16/11;
    overflow: hidden; /* keeps things tidy if any image doesn't match dimensions */
}

.gallery img, .gallery video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    transition: opacity 0.5s ease;
}
