@font-face {
  font-family: "LacyTheThree";
  src: url("https://file.garden/arkcYFq0FjI2TvF7/lacythethree.ttf")
    format("truetype");
}


/* =========================
   RESET
========================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  min-height: 100vh;

  display: flex;
  justify-content: center;
  align-items: center;

  font-family: "LacyTheThree", sans-serif;

  background-image: url("https://file.garden/arkcYFq0FjI2TvF7/k02-bg-cloth.gif");
  background-color: #cccccc;
}


/* =========================
   MAIN CONTAINER
========================= */

.container {
  width: 1000px;
  max-width: calc(100vw - 30px);

  min-height: 700px;

  padding: 12px;

  background-color: #fffaf4;

  border-image:
    url("https://file.garden/arkcYFq0FjI2TvF7/border.png")
    5
    fill
    round;

  border-style: solid;
  border-width: 5px;

  border-top: 0;
  border-bottom: 0;

  border-radius: 10px;
}


/* =========================
   SITE LAYOUT
========================= */

.site-layout {
  display: grid;

  grid-template-columns: 380px minmax(0, 1fr);

  gap: 14px;

  min-height: 670px;

  align-items: stretch;
}


/* =========================
   IMAGE PANEL
========================= */

.image-panel {
  position: relative;

  min-height: 670px;

  overflow: hidden;

  background-color: #e9e2d8;
}

.image-panel img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  user-select: none;
}


/* =========================
   CONTENT PANEL
========================= */

.content-panel {
  min-width: 0;

  display: flex;
  flex-direction: column;

  justify-content: center;

  padding: 4px 0;
}


/* =========================
   NAVIGATION
========================= */

.navbar {
  display: flex;

  justify-content: center;
  align-items: flex-start;

  flex-wrap: wrap;

  gap: 2px;

  width: 100%;

  margin-bottom: 6px;

  text-align: center;
}

.navbar a {
  color: #52493c;

  font-family: "LacyTheThree", sans-serif;
  font-size: 14px;

  text-decoration: none;

  padding: 2px 3px;

  cursor: pointer;
}

.navbar a:hover {
  color: #94a9ba;
}

.navbar button {
  color: #52493c;

  font-family: "LacyTheThree", sans-serif;
  font-size: 14px;

  padding: 2px 3px;

  background: transparent;

  border: 0;

  cursor: pointer;
}

.navbar button:hover {
  color: #94a9ba;
}


/* =========================
   DROPDOWNS
========================= */

.dropdown {
  position: relative;

  display: inline-block;
}

.dropdown summary {
  color: #52493c;

  font-family: "LacyTheThree", sans-serif;
  font-size: 14px;

  padding: 2px 3px;

  cursor: pointer;

  list-style: none;
}

.dropdown summary::-webkit-details-marker {
  display: none;
}

.dropdown summary::marker {
  display: none;
}

.dropdown summary:hover {
  color: #94a9ba;
}

.dropdown-menu {
  position: absolute;

  top: 100%;
  left: 50%;

  transform: translateX(-50%);

  min-width: 120px;

  padding: 4px 0;

  background-color: #fffaf4;

  border: 1px solid #e9e2d8;

  border-radius: 0;

  z-index: 100;
}

.dropdown-menu a {
  display: block;

  padding: 3px 9px;

  color: #52493c;

  font-family: "LacyTheThree", sans-serif;
  font-size: 13px;

  text-decoration: none;

  white-space: nowrap;
}

.dropdown-menu a:hover {
  color: #94a9ba;

  background-color: #f5efe8;
}


/* =========================
   GLOBAL
========================= */

::selection {
  background: #94a9ba;

  color: #ffffff;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #fffaf4;
}

::-webkit-scrollbar-thumb {
  background: #e9e2d8;
}

.homepage {
  width: 100%;

  box-sizing: border-box;

  color: #52493c;
}

.content-box {
  box-sizing: border-box;

  background-color: #fffaf4;

  border: 1px solid #e9e2d8;

  border-radius: 0;

  padding: 8px;

  min-width: 0;
}

.content-box h2 {
  margin: 0 0 6px 0;

  color: #94a9ba;

  font-size: 17px;

  font-weight: normal;

  border-bottom: 1px dotted #e9e2d8;

  padding-bottom: 4px;
}

.content-box p {
  margin: 4px 0;
}


/* =========================
   ABOUT ME + FANLISTINGS
========================= */

.top-layout {
  display: grid;

  grid-template-columns: minmax(0, 1fr) 165px;

  gap: 7px;

  width: 100%;

  margin-bottom: 6px;
}


/* =========================
   ABOUT ME
========================= */

.about-box {
  width: 100%;

  height: 128px;
}

.about-content {
  display: flex;

  align-items: flex-start;

  gap: 7px;

  height: 82px;

  overflow: hidden;
}

.about-photo {
  width: 58px;
  height: 58px;

  object-fit: cover;

  flex-shrink: 0;

  border: 2px solid #e9e2d8;

  border-radius: 0;
}

.about-text {
  font-size: 11px;

  line-height: 1.15;

  min-width: 0;
}

.about-box p {
  margin: 2px 0;
}


/* =========================
   FANLISTINGS
========================= */

/*
   OUTER BOX
   -------------------------
   Width:  165px
   Height: 128px

   SCROLL AREA
   -------------------------
   Width: 100%
   Height: 87px

   GRID
   -------------------------
   3 columns
   27px rows

   The outer box dimensions remain
   unchanged.
*/

.fanlisting-box {
  width: 165px;

  height: 128px;

  overflow: hidden;
}


/*
   FANLISTING SCROLL AREA
*/

.fanlisting-scroll {
  width: 100%;

  height: 87px;

  overflow-y: auto;
  overflow-x: hidden;

  display: grid;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  grid-auto-rows: 27px;

  align-content: start;

  justify-items: center;

  align-items: center;

  column-gap: 3px;

  row-gap: 1px;

  padding: 2px 3px;

  scrollbar-gutter: stable;
}


/*
   EACH FANLISTING CELL
*/

.fanlisting-scroll a {
  width: 100%;

  height: 27px;

  min-width: 0;

  display: flex;

  align-items: center;

  justify-content: center;

  line-height: 0;

  overflow: hidden;
}


/*
   FANLISTING IMAGE

   Increased from 25px to 27px.
   Width is still limited by the
   individual grid column.
*/

.fanlisting-scroll img {
  display: block;

  max-width: 100%;

  max-height: 27px;

  width: auto;

  height: auto;

  object-fit: contain;

  image-rendering: pixelated;
}


/* =========================
   STAMP MARQUEE
========================= */

.stamp-marquee {
  width: 72%;

  height: 29px;

  box-sizing: border-box;

  margin: 3px 0 6px 0;

  padding: 1px 0;

  overflow: hidden;

  position: relative;

  background-color: #fffaf4;

  border-top: 1px dotted #e9e2d8;

  border-bottom: 1px dotted #e9e2d8;
}

.stamp-track {
  display: flex;

  align-items: center;

  width: max-content;

  height: 100%;

  gap: 3px;

  flex-shrink: 0;

  animation:
    stamp-scroll 25s linear infinite;

  will-change: transform;
}

.stamp-track img {
  display: block;

  width: 82px;

  height: 25px;

  object-fit: contain;

  flex-shrink: 0;

  image-rendering: pixelated;
}

@keyframes stamp-scroll {

  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(
      calc(-50% - 2px),
      0,
      0
    );
  }

}

.stamp-marquee:hover .stamp-track {
  animation-play-state: paused;
}


/* =========================
   MIDDLE SECTION
========================= */

.middle-layout {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr) 250px;

  gap: 7px;

  width: 100%;

  margin-bottom: 6px;

  align-items: start;
}

.middle-left {
  display: flex;

  flex-direction: column;

  gap: 7px;

  min-width: 0;
}

.currently-box,
.updates-box {
  width: 100%;

  height: 128px;
}

.currently {
  font-size: 12px;

  line-height: 1.2;
}

.currently p {
  margin: 3px 0;
}

.updates {
  height: 88px;

  overflow-y: auto;

  padding-right: 4px;
}

.update {
  display: grid;

  grid-template-columns: 55px 1fr;

  gap: 5px;

  padding: 5px 0;

  border-bottom: 1px dotted #e9e2d8;

  font-size: 11px;
}

.update:first-child {
  padding-top: 0;
}

.update-date {
  color: #94a9ba;
}

.update p {
  margin: 0;
}


/* =========================
   CALENDAR
========================= */

.calendar-column {
  width: 250px;

  display: flex;

  flex-direction: column;

  gap: 6px;
}

.calendar-box {
  width: 250px;

  height: 263px;

  padding: 8px;

  margin: 0;
}

.calendar-box h2 {
  margin-bottom: 5px;
}

.calendar {
  width: 100%;

  font-size: 10px;

  text-align: center;
}

.calendar-header {
  color: #94a9ba;

  margin-bottom: 5px;

  font-size: 12px;
}

.calendar-days,
.calendar-dates {
  display: grid;

  grid-template-columns:
    repeat(7, 1fr);

  gap: 2px;
}

.calendar-days {
  margin-bottom: 3px;

  color: #94a9ba;

  font-size: 8px;
}

.calendar-dates span {
  aspect-ratio: 1;

  min-height: 0;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 1px;

  border-radius: 2px;
}

.calendar-dates span:hover {
  background-color: #f5efe8;

  color: #94a9ba;
}

.calendar-dates .today {
  background-color: #94a9ba;

  color: #fffaf4;
}

.calendar-dates .today:hover {
  background-color: #94a9ba;

  color: #fffaf4;
}


/* =========================
   BLINKIE MARQUEE
========================= */

.blinkie-marquee {
  width: 100%;

  height: 30px;

  box-sizing: border-box;

  overflow: hidden;

  background-color: #fffaf4;

  border-top: 1px dotted #e9e2d8;

  border-bottom: 1px dotted #e9e2d8;

  padding: 2px 0;
}

.blinkie-track {
  display: flex;

  align-items: center;

  width: max-content;

  height: 100%;

  gap: 4px;

  animation:
    blinkie-scroll 18s linear infinite;
}

.blinkie-track img {
  display: block;

  height: 24px;

  width: auto;

  flex-shrink: 0;

  image-rendering: pixelated;
}

@keyframes blinkie-scroll {

  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }

}

.blinkie-marquee:hover .blinkie-track {
  animation-play-state: paused;
}


/* =========================
   NEIGHBOURS + WEBRINGS
========================= */

.bottom-layout {
  display: grid;

  grid-template-columns:
    165px minmax(0, 1fr);

  gap: 7px;

  width: 100%;

  align-items: start;

  margin-top: 0;

  margin-bottom: 6px;
}


/* =========================
   NEIGHBOURS
========================= */

.neighbours-box {
  width: 165px;

  height: 128px;

  min-height: 128px;

  overflow: hidden;
}

.neighbours-scroll {
  width: 100%;

  height: 87px;

  overflow-y: auto;

  overflow-x: hidden;

  padding: 2px 4px;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: flex-start;

  gap: 4px;
}

.neighbours-scroll a {
  display: block;

  line-height: 0;

  max-width: 100%;

  flex-shrink: 0;
}

.neighbours-scroll img {
  display: block;

  max-width: 100%;

  width: auto;

  height: auto;

  image-rendering: pixelated;
}


/* =========================
   WEBRINGS
========================= */

.webring-box {
  width: 100%;

  min-width: 0;

  height: 128px;

  min-height: 0;

  overflow: hidden;
}

.webring-scroll {
  width: 100%;

  height: 88px;

  min-width: 0;

  max-width: 100%;

  overflow-y: auto;

  overflow-x: hidden;

  padding: 2px 4px;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: flex-start;

  gap: 6px;
}

.webring-item {
  width: 100%;

  max-width: 100%;

  min-width: 0;

  flex: 0 0 auto;

  display: flex;

  align-items: center;

  justify-content: center;

  overflow: hidden;
}


/* =========================
   CDRING
========================= */

.cdring-item {
  width: 100%;

  min-height: 25px;
}

#cdr {
  width: 100%;

  max-width: 100%;

  min-width: 0;

  text-align: center;

  overflow: hidden;

  overflow-wrap: break-word;
}

#cdr * {
  max-width: 100%;
}


/* =========================
   PALESTINE WEBRING
========================= */

.palestine-item {
  width: 100%;

  min-height: 25px;
}

#palestinering {
  display: flex;

  align-items: center;

  justify-content: center;

  gap: 2px;

  width: 100%;

  max-width: 100%;

  min-width: 0;

  overflow: hidden;
}

#palestinering a {
  display: block;

  line-height: 0;

  flex: 0 0 auto;

  max-width: 33.333%;
}

#palestinering img {
  display: block;

  max-width: 100%;

  width: auto;

  height: auto;

  image-rendering: pixelated;
}


/* =========================
   NUTHEAD WEBRING
========================= */

.nuthead-item {
  width: 100%;

  max-width: 100%;

  min-width: 0;

  overflow: hidden;
}

.nuthead-item > * {
  max-width: 100%;
}

.nuthead-item img {
  max-width: 100%;

  height: auto;
}

.nuthead-item iframe {
  max-width: 100%;
}


/* =========================
   WEBRING SAFETY
========================= */

.webring-scroll img {
  max-width: 100%;

  height: auto;
}

.webring-scroll table {
  max-width: 100%;

  width: auto !important;
}

.webring-scroll iframe {
  max-width: 100%;
}

.webring-scroll a {
  max-width: 100%;

  overflow-wrap: break-word;
}


/* =========================
   MEDIA
========================= */

.media-box {
  margin-top: 6px;

  min-width: 0;
}

.media-content {
  display: flex;

  align-items: center;

  gap: 9px;

  min-width: 0;
}

.media-image {
  width: 78px;

  height: 78px;

  flex-shrink: 0;
}

.media-image img {
  width: 100%;

  height: 100%;

  object-fit: cover;

  border: 1px solid #e9e2d8;

  border-radius: 0;
}

.media-info {
  min-width: 0;

  font-size: 12px;

  line-height: 1.25;

  overflow-wrap: break-word;
}

.media-title {
  color: #94a9ba;

  font-size: 15px;

  margin-bottom: 5px !important;
}

.media-description {
  margin-bottom: 6px !important;
}

.media-link a {
  color: #94a9ba;

  text-decoration: none;
}

.media-link a:hover {
  color: #52493c;
}


/* =========================
   FOOTER
========================= */

.footer-decoration {
  text-align: center;

  margin: 9px 0 3px 0;

  color: #94a9ba;

  font-size: 12px;
}


/* =========================
   TABLET
========================= */

@media (max-width: 850px) {

  body {
    align-items: flex-start;
  }

  .container {
    width: 100%;

    max-width: calc(100vw - 20px);

    margin: 10px;

    padding: 9px;
  }

  .site-layout {
    grid-template-columns:
      280px minmax(0, 1fr);

    gap: 10px;
  }

  .image-panel {
    min-height: 600px;
  }
}


/* =========================
   MOBILE
========================= */

@media (max-width: 650px) {

  body {
    display: block;
  }

  .container {
    width: 100%;

    max-width: none;

    margin: 0;

    min-height: 100vh;

    padding: 8px;

    border-left: 0;

    border-right: 0;
  }

  .site-layout {
    grid-template-columns: 1fr;

    min-height: 0;
  }

  .image-panel {
    width: 100%;

    height: 280px;

    min-height: 280px;
  }

  .image-panel img {
    object-position: center;
  }

  .content-panel {
    padding: 0;
  }


  /* =====================
     TOP SECTION
  ===================== */

  .top-layout {
    grid-template-columns:
      minmax(0, 1fr) 130px;
  }

  .fanlisting-box {
    width: 130px;
  }


  /*
     Keep the fanlisting
     scroll area 87px high.
  */

  .fanlisting-scroll {
    width: 100%;

    height: 87px;

    grid-template-columns:
      repeat(3, minmax(0, 1fr));

    grid-auto-rows: 27px;

    column-gap: 2px;

    row-gap: 1px;

    padding-left: 2px;

    padding-right: 2px;
  }

  .fanlisting-scroll a {
    height: 27px;
  }

  .fanlisting-scroll img {
    max-height: 27px;
  }


  /* =====================
     MIDDLE
  ===================== */

  .middle-layout {
    grid-template-columns: 1fr;
  }

  .calendar-column {
    width: 100%;

    align-items: center;
  }

  .calendar-box {
    width: 230px;

    height: 230px;
  }

  .blinkie-marquee {
    width: 230px;
  }

  .currently-box,
  .updates-box {
    height: auto;

    min-height: 115px;
  }

  .updates {
    height: 100px;
  }


  /* =====================
     BOTTOM
  ===================== */

  .bottom-layout {
    grid-template-columns: 1fr;

    gap: 6px;
  }

  .neighbours-box,
  .webring-box {
    width: 100%;
  }

  .neighbours-box {
    min-height: 115px;

    height: 115px;
  }

  .neighbours-scroll {
    min-height: 75px;

    height: 75px;

    max-height: 75px;
  }

  .webring-box {
    height: 128px;
  }

  .webring-scroll {
    height: 88px;
  }


  /* =====================
     ABOUT
  ===================== */

  .about-content {
    height: auto;

    overflow: visible;
  }


  /* =====================
     STAMPS
  ===================== */

  .stamp-marquee {
    width: 85%;
  }
}


/* =========================
   SMALL MOBILE
========================= */

@media (max-width: 450px) {

  .container {
    padding: 6px;
  }

  .navbar {
    gap: 1px;

    max-width: 100%;
  }

  .navbar a,
  .dropdown summary {
    font-size: 13px;

    padding: 2px;
  }

  .image-panel {
    height: 220px;

    min-height: 220px;
  }


  /* =====================
     TOP SECTION
  ===================== */

  .top-layout {
    grid-template-columns:
      minmax(0, 1fr) 115px;

    gap: 5px;
  }

  .fanlisting-box {
    width: 115px;
  }


  /*
     Keep 3 columns even
     at the smallest size.
  */

  .fanlisting-scroll {
    width: 100%;

    height: 87px;

    grid-template-columns:
      repeat(3, minmax(0, 1fr));

    grid-auto-rows: 27px;

    column-gap: 2px;

    row-gap: 1px;

    padding-left: 2px;

    padding-right: 2px;
  }

  .fanlisting-scroll a {
    height: 27px;
  }

  .fanlisting-scroll img {
    max-height: 27px;

    max-width: 100%;
  }


  /* =====================
     OTHER SECTIONS
  ===================== */

  .middle-layout {
    gap: 6px;
  }

  .middle-left {
    gap: 6px;
  }

  .bottom-layout {
    gap: 5px;
  }

  .media-content {
    align-items: flex-start;

    gap: 8px;
  }

  .media-image {
    width: 70px;

    height: 70px;
  }

  .calendar-box {
    width: 210px;

    height: 210px;
  }

  .blinkie-marquee {
    width: 210px;
  }
}