@font-face {
  font-family: 'Umbrage';
  src: url('umbrage.ttf') format('truetype');
  font-display: swap;
}

@font-face {
  font-family: 'Baloo';
  src: url('baloo.ttf') format('truetype');
  font-display: swap;
}

@font-face {
  font-family: 'Caveat';
  src: url('caveat.ttf') format('truetype');
  font-display: swap;
}

a {
  all: unset;
  cursor: url("cursor02.png"), pointer;
  text-shadow:
    0.2vh 0.2vh 0 #46281e,
    -0.2vh 0.2vh 0 #46281e,
    0.2vh -0.2vh 0 #46281e,
    -0.2vh -0.2vh 0 #46281e,
    0.2vh 0 0 #46281e,
    -0.2vh 0 0 #46281e,
    0 0.2vh 0 #46281e,
    0 -0.2vh 0 #46281e;
}

a:hover {
  text-shadow:
    0.3vh 0.3vh 0 gold,
    -0.3vh 0.3vh 0 gold,
    0.3vh -0.3vh 0 gold,
    -0.3vh -0.3vh 0 gold,
    0.3vh 0 0 gold,
    -0.3vh 0 0 gold,
    0 0.3vh 0 gold,
    0 -0.3vh 0 gold;
}

html, body {
  margin: 0;
  padding: 0;
  background: #91409b;
  color: #91409b;
  font-size: 4vh;
}

body {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  font-family: 'Baloo';
  cursor: url("cursor01.png"), auto;
}

#wrapper {
  display: flex;
  flex-direction: column;
  width: 95vw;
  max-height: calc(200vh - 10vh);
  margin: 5vh 5vh;
  box-sizing: border-box;
  overflow: auto;
}

#header {
  position: relative;
  margin-bottom: 5vh;
  padding: 3vh;
  background: url('background.avif') repeat top left;
  border: dashed #91409b 0.5vh;
  font-family: 'Umbrage';
  font-size: 12vh;
  text-align: center;
  text-shadow:
    0.3vh 0.3vh 0 gold,
    -0.3vh 0.3vh 0 gold,
    0.3vh -0.3vh 0 gold,
    -0.3vh -0.3vh 0 gold,
    0.3vh 0 0 gold,
    -0.3vh 0 0 gold,
    0 0.3vh 0 gold,
    0 -0.3vh 0 gold;
}

#headertxt {
  position: relative;
  z-index: 1;
}

#headerpaws {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 95%;
  transform: translate(-50%, -50%);
  z-index: 2;
}

#content {
  display: flex;
  flex-direction: column;
  gap: 8vh;
  padding: 3vh;
  background-image:
    url('paws02.webp'),
    url('paws01.webp'),
    url('background.avif');
  background-repeat: no-repeat, no-repeat, repeat;
  background-size: 95% auto, 95% auto, auto;
  background-position: center 16vh, center bottom 5vh, top left;
  border: dashed #91409b 0.5vh;
}

.row {
  display: flex;
  width: 100%;
}

.button-box {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
  height: 16vh;
  background-image: url('button.avif');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  font-family: 'Umbrage';
  font-size: 6vh;
  text-align: center;
}

.button-link {
  position: absolute;
  top: 18%;
  z-index: 2;
}

.button-box img {
  align-self: flex-start;
  height: 75%;
  margin-top: 1vh;
}

#map-wrapper {
  position: relative;
  width: 40%;
}

#map-base {
  display: block;
  width: 100%;
}

#map-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  display: none;
  pointer-events: none;
  z-index: 2;
}

#map-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 3;
  font-family: 'Umbrage';
  font-size: 5vh;
  color: gold;
  text-align: center;
  text-shadow:
    0.2vh 0.2vh 0 #46281e,
    -0.2vh 0.2vh 0 #46281e,
    0.2vh -0.2vh 0 #46281e,
    -0.2vh -0.2vh 0 #46281e,
    0.2vh 0 0 #46281e,
    -0.2vh 0 0 #46281e,
    0 0.2vh 0 #46281e,
    0 -0.2vh 0 #46281e;
}

#map-grid {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(4, 1fr);
  z-index: 2;
}

#map-grid div {
  cursor: url("cursor02.png"), pointer;
}

#board {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
  height: 60vh;
  background-image: url("board.avif");
  background-repeat: no-repeat;
  background-size: 80% 100%;
  background-position: center;
}

#board-inner {
  width: 70%;
  height: 80%;
  padding: 2vh 2vh;
  overflow-y: auto;
}

#profiles {
  display: flex;
  flex-direction: column;
  gap: 1vh;
}

.profile-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1vh;
}

.profile {
  position: relative;
  flex: 0 0 24%;
  padding-bottom: 2vh;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  cursor: url("cursor02.png"), pointer;
  transition: transform 0.2s ease;
  transform-origin: center center;
}

.profile-img,
.profile-frame {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: inherit;
}

.profile-frame {
  position: absolute;
  inset: 0;
}

.profile-name {
  position: absolute;
  top: 75%;
  left: 50%;
  transform: translateX(-50%) rotate(var(--rot, 0deg));
  white-space: nowrap;
  font-family: 'Caveat';
  font-size: 2.4vh;
  color: black;
  pointer-events: none;
}

.profile:hover {
  transform: scale(1.05);
  z-index: 10;
}

.profile:hover .profile-name {
  text-shadow:
    0.15vh 0.15vh 0 gold,
    -0.15vh 0.15vh 0 gold,
    0.15vh -0.15vh 0 gold,
    -0.15vh -0.15vh 0 gold,
    0.15vh 0 0 gold,
    -0.15vh 0 0 gold,
    0 0.15vh 0 gold,
    0 -0.15vh 0 gold;
}

#newsbox {
  display: flex;
  flex-direction: column;
  width: 80%;
  height: 40vh;
  box-sizing: border-box;
  background-color: #91409b;
  border: 0.4vh solid #3a1a40;
  outline: 0.3vh dashed #3a1a40;
}

#newsbox-header {
  padding: 1vh 2vh;
  box-sizing: border-box;
  background-color: #6a2f72;
  border-bottom: 0.5vh solid #3a1a40;
  font-family: 'Umbrage';
  font-size: 3vh;
  font-weight: bold;
  color: #ffffff;
  text-shadow:
    -0.3vh -0.3vh 0 black,
     0.3vh -0.3vh 0 black,
    -0.3vh  0.3vh 0 black,
     0.3vh  0.3vh 0 black;
}

#newsbox-content {
  flex: 1;
  padding: 2vh;
  overflow-y: auto;
  background-color: #9f5aa8;
  background-image: url("paws03.webp");
  background-position: center;
  color: white;
  font-size: 2.5vh;
}

#newsbox-content p {
  margin: 0 0 1vh 0;
  padding-bottom: 0.6vh;
  border-bottom: 0.3vh solid #3a1a40;
}

#gallery {
  display: flex;
  flex-direction: column;
  height: 60vh;
  border: 0.4vh solid #3a1a40;
  outline: 0.3vh dashed #3a1a40;
  overflow-y: auto;
  overflow-x: hidden;
  background-color: #6a2f72;
}

#gallery-header {
  padding: 1vh 2vh;
  box-sizing: border-box;
  background-color: #6a2f72;
  border-bottom: 0.5vh solid #3a1a40;
  font-family: 'Umbrage';
  font-size: 3vh;
  font-weight: bold;
  color: #ffffff;
  text-shadow:
    -0.3vh -0.3vh 0 black,
     0.3vh -0.3vh 0 black,
    -0.3vh  0.3vh 0 black,
     0.3vh  0.3vh 0 black;
}

#gallery-items {
  display: flex;
  flex-wrap: wrap;
}

.gallery-item {
  width: 20%;
  aspect-ratio: 1 / 1;
  border: 0.5vh solid black;
  overflow: hidden;
  box-sizing: border-box;
  cursor: url("cursor02.png"), pointer;
  transition: transform 0.2s ease;
  transform-origin: center center;
}


.gallery-item:hover {
  transform: scale(1.05);
  z-index: 10;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

#lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.9);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 20;
}

#lightbox.hidden {
  display: none;
}

#lightbox-img {
  max-width: 90vw;
  max-height: 80vh;
  object-fit: contain;
}

#lightbox-caption {
  color: white;
  margin-top: 2vh;
  font-size: 2vh;
  text-align: center;
}

#mainprofile {
  display: flex;
  gap: 5vh;
  margin-top: 5vh;
  height: 60vh;
}

#mainprofilepic {
  flex: 0 0 40%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  background-image: url("board.avif");
  background-repeat: no-repeat;
  background-size: 80% 100%;
  background-position: center;
}

#mainprofilepic img {
  width: 75%;
  height: 90%;
  object-fit: cover;
  cursor: url("cursor02.png"), pointer;
}

#mainprofileinfo {
  flex: 1;
  padding: 2vh;
  box-sizing: border-box;
  overflow-y: auto;
  font-size: 2.5vh;
  line-height: 3vh;
  color: black;
  font-family: 'Caveat';
  background-image: url("backgroundsheet.avif"), url("board.avif");
  background-repeat: no-repeat, no-repeat;
  background-size: 75% 90%, 80% 100%;
  background-position: center, center;
}

#mainprofileinfo p {
  margin: 0 0 1vh 0;
  padding-bottom: 0.6vh;
  border-bottom: 0.3vh solid #3a1a40;
}