/* -------------------------------------------------------- */
/* VARIABLES */
/* -------------------------------------------------------- */

:root {
  /* Background Colors */
  --background-color: #161013;
  --content-background-color: #161013;
  --sidebar-background-color: #161013;

  /* Text */
  --font: 'Typecast', sans-serif;
  --heading-font: 'Typecast', sans-serif;
  --font-size: 20px;
  --sidebar-text-color: #ffffff;
  --link-color: #ffffff;
  --link-color-hover: #ff0;

  /* Other Settings */
  --margin: 26px;
  --padding: 16px;
  --border: none;
  --round-borders: 0px;
}

/* -------------------------------------------------------- */
/* CUSTOM FONTS */
/* -------------------------------------------------------- */

@font-face {
  font-family: 'Typecast';
  src: url('/☆Fonts☆/typecast-regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Typecast';
  src: url('/☆Fonts☆/typecast-bold.ttf') format('truetype');
  font-weight: bold;
}

@font-face {
  font-family: 'Typecast';
  src: url('/☆Fonts☆/typecast-italic.ttf') format('truetype');
  font-style: italic;
}

@font-face {
  font-family: 'Starborn';
  src: url('/☆Fonts☆/starborn-regular.ttf') format('truetype');
  font-style: normal;
}

/* -------------------------------------------------------- */
/* BASICS */
/* -------------------------------------------------------- */

body {
  position: relative;
  margin: 0;
  overflow: hidden;
  width: 100%;
  font-family: 'Typecast', sans-serif;
  font-size: 20px;
  line-height: 1.5;
  background-color: #00008B; 
}

::selection {
  background: rgba(0, 0, 0, 0.2);
}

mark {
  text-shadow: 1px 1px 4px var(--link-color);
  background-color: inherit;
  color: var(--link-color);
}

a,
a:visited {
  color: var(--link-color);
  text-decoration: underline;
}

a:hover,
a:focus {
  color: var(--link-color-hover);
  text-decoration: none;
}

/* -------------------------------------------------------- */
/* PAGE WRAPPER */
/* -------------------------------------------------------- */

.page-wrapper {
  max-width: 1200px;
  width: 70%;
  margin: 0 auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

/* -------------------------------------------------------- */
/* HEADER */
/* -------------------------------------------------------- */

.header-wrapper {
  grid-area: header;
  position: relative;
  width: 100%;
}

.pre-heading-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 0px;
  line-height: 1;
  height: auto;
  text-align: center;
}

.pre-heading {
  position: static;
  text-align: center;
  margin: 0;
  font-family: var(--heading-font);
  font-size: 1.2em;
  color: black;
}

header p {
  margin-top: 0;
  font-family: 'Typecast', sans-serif;
  font-size: 24px;
  line-height: 1.5;
  transform: rotate(-0.5deg);
}

.header-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  margin: 0;
  margin-top: 13px;
}

/* -------------------------------------------------------- */
/* LAYOUT */
/* -------------------------------------------------------- */

.layout {
  width: 100%;
  margin: 0 auto;
  grid-template-areas:
    "header header"
    "content"
    "footer footer";
  grid-template-rows: auto 1fr auto;
  background: transparent;
  gap: 0;
}

main {
  position: relative;
}

.main-box {
  height: 80vh;
  max-height: 200px;
}

.content-container {
  width: 100%;
  margin: 5px 0 30px 0;
  grid-area: content;
  display: grid;
  max-width: 1070px;
  min-height: 400px;
  margin-right: auto;
  grid-template-columns: 74% calc(26% - 10px);
  gap: 10px;
  grid-template-areas: "main right-sidebar";
  background: transparent;
  justify-content: space-between;
}

/* -------------------------------------------------------- */
/* SIDEBARS */
/* -------------------------------------------------------- */

aside {
  border: var(--border);
  border-radius: var(--round-borders);
  overflow: hidden;
  background-color: transparent;
  padding: var(--padding);
}

.right-sidebar {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  margin-top: 9px;
  grid-area: right-sidebar;
}

.right-sidebar .button-nav {
  display: flex;
  flex-direction: column;
  gap: 20%;
}

.sidebar-title {
  font-weight: bold;
  font-size: 1.2em;
  font-family: var(--heading-font);
}

.sidebar-gif {
  margin-top: 10px;
  width: 88px;
  height: 31px;
  display: block;
}

.sidebar-section:not(:last-child) {
  margin-bottom: 3em;
}

.sidebar-section ul,
.sidebar-section ol {
  padding-left: 1.5em;
}

.sidebar-section > *:not(p):not(ul):not(ol):not(blockquote) {
  margin-top: 20px;
}

.sidebar-section blockquote {
  background: rgba(0, 0, 0, 0.1);
  padding: 15px;
  margin: 1em 0;
  border-radius: 10px;
  overflow: hidden;
}

.sidebar-section blockquote > *:first-child { margin-top: 0; }
.sidebar-section blockquote > *:last-child  { margin-bottom: 0; }

/* -------------------------------------------------------- */
/* BUTTONS */
/* -------------------------------------------------------- */

.mini-box-button {
  width: 250px;
  height: auto;
  margin-bottom: 5%;
  margin-top: 5%;
  background-color: black;
  border: 1px dashed white;
  padding: 25px;
  font-size: 16px;
  cursor: pointer;
  box-shadow: 5px 5px black;
  transform: rotate(-0.5deg);
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.mini-box-button:hover {
  transform: rotate(0.5deg) scale(1.05);
  background-color: white;
}

.site-button {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.site-button textarea {
  font-family: monospace;
  font-size: 0.7em;
}

.button-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
}


/* -------------------------------------------------------- */
/* CONTENT */
/* -------------------------------------------------------- */

#content {
  grid-area: main;
}

main {
  line-height: 1.5;
}

main a,
main a:visited { color: var(--link-color); }

main a:hover,
main a:focus {
  color: var(--link-color-hover);
  text-decoration-style: wavy;
}

main p,
main .image,
main .full-width-image,
main .two-columns {
  margin: 0.75em 0;
}

main ol,
main ul {
  margin: 0.5em 0;
  padding-left: 1.5em;
}

main ol li,
main ul li {
  margin-bottom: 0.2em;
  line-height: 1.3;
}

main ol { padding-left: 2em; }

main blockquote {
  background: rgba(0, 0, 0, 0.1);
  padding: 15px;
  margin: 1em 0;
  border-radius: 10px;
}

main pre  { margin: 1em 0 1.5em; }
main code { text-transform: none; }

main center {
  margin: 1em 0;
  padding: 0 1em;
}

main hr {
  border: 0;
  border-top: var(--border);
  margin: 1.5em 0;
}

/* HEADINGS */

main h1, main h2, main h3,
main h4, main h5, main h6 {
  font-family: var(--heading-font);
  margin-bottom: 0;
  line-height: 1.5;
}

main h1:first-child, main h2:first-child, main h3:first-child,
main h4:first-child, main h5:first-child, main h6:first-child {
  margin-top: 0;
}

main h1 { font-size: 1.5em; }
main h2 { font-size: 1.4em; }
main h3 { font-size: 1.3em; }
main h4 { font-size: 1.2em; }
main h5 { font-size: 1.1em; }
main h6 { font-size: 1em;   }

/* COLUMNS */

.two-columns { display: flex; }

.two-columns > * {
  flex: 1 1 0;
  margin: 0;
}

.two-columns > *:first-child { padding-right: 0.75em; }
.two-columns > *:last-child  { padding-left: 0.75em; }

/* IMAGES */

.image           { display: block; width: auto; height: auto; max-width: 100%; }
.full-width-image { display: block; width: 100%; height: auto; }

.images {
  display: flex;
  width: calc(100% + 10px);
  margin-left: -5px;
  margin-right: -5px;
}

.images img {
  width: 100%;
  height: auto;
  padding: 5px;
  margin: 0;
  overflow: hidden;
}

/* -------------------------------------------------------- */
/* IMAGES AND GIFS */
/* -------------------------------------------------------- */

.room-box {
  display: block;
  width: 1000px;      /* 👈 make bigger/smaller */
  height: auto;
  position: absolute;
  top: -75px;           /* 👈 move up (negative) or down (positive) */
  left: 66%;
  transform: translateX(-50%);  /* centers it */
  z-index: 0;
}

.altar-carpet {
  display: block;
  width: 850px;
  height: 700px;
  position: relative;
  margin-left: 12%;
  top: 150px;  /* 👈 positive = moves down, increase to go further */
}

/* INDEX */
.pre-heading {
  position: relative;
  z-index: 3;  /* ✅ above box */
}

.header-image img {
  position: relative;
  z-index: 3;  /* ✅ above box */
}

.altar-carpet {
  position: relative;
  z-index: 1;
}

.altar-table {
  position: relative;
  z-index: 2;
}

.room-box {
  z-index: 0;  /* stays behind everything */
}

.altar-desk {
  display: block;
  width: 600px;       /* 👈 adjust size */
  height: auto;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  top: 0px;           /* 👈 move up/down */
  z-index: 3;         /* ✅ on top of carpet */
}

/* -------------------------------------------------------- */
/* CLICK ME SIGN */
/* -------------------------------------------------------- */

.click-me-sign {
  position: absolute;
  top: 20px;
  font-family: 'Typecast', sans-serif;
  font-size: 24px;
  color: white;
  animation: blink 1.5s infinite;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
}

@keyframes blink {
  0%,  49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}


/* -------------------------------------------------------- */
/* RESPONSIVE */
/* -------------------------------------------------------- */

@media (max-width: 768px) {
  .faerie-door    { max-width: 250px; }
  .click-me-sign  { font-size: 20px; }
  .tv             { width: 60vw; top: 12%; }
  .pookie         { width: 50vw; top: 15%; }
}

@media (max-width: 480px) {
  .tv     { width: 80vw; top: 10%; }
  .pookie { width: 70vw; top: 13%; }
}

@media (max-width: 600px) {
  .content-container {
    grid-template-columns: 1fr;
    grid-template-areas:
      "main"
      "right-sidebar";
    gap: 18px;
    max-width: 100%;
  }
}
