#site-loader {
  isolation: isolate;
  place-items: center;
  overflow: hidden;
  font-family: var(--sans, Arial, sans-serif);
}
.loading-scenery,
.loading-shade,
.loading-portal,
.loading-signature {
  display: block;
}
.loading-scenery,
.loading-shade {
  position: absolute;
  inset: 0;
  z-index: -3;
}
.loading-scenery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  opacity: 0.35;
  transform: scale(1.04);
}
.loading-shade {
  z-index: -2;
  background: radial-gradient(
    ellipse at 50% 52%,
    #143b35e8 0%,
    #102f2bdb 35%,
    #0e2728a6 72%,
    #102f2b88
  );
}
.loading-brand {
  position: absolute;
  left: 6%;
  top: 34px;
  font: 500 35px/1 var(--serif, Georgia, serif);
  color: #f3e5c9;
  letter-spacing: -1.2px;
}
.loading-brand > span {
  font-size: 18px;
  color: #d9b574;
  margin-left: 12px;
}
.loading-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(100%, 700px);
  padding: 45px 20px;
  position: relative;
  text-align: center;
  transform: translateY(0);
  transition:
    opacity 0.5s,
    transform 0.7s;
}
.loading-portal {
  width: 340px;
  height: 360px;
  position: relative;
  isolation: isolate;
}
.loading-portal:before {
  content: "";
  position: absolute;
  inset: 20% 9% 0;
  background: radial-gradient(ellipse, #e9c78016, transparent 67%);
  border-radius: 50%;
}
.portal-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: #d8b16d;
  stroke: currentColor;
  stroke-width: 0.65;
}
.portal-lines > path:nth-child(2) {
  stroke: #b68d48;
  stroke-width: 0.4;
}
.portal-lines > path:nth-child(3) {
  stroke: #e4c99144;
  stroke-width: 0.45;
  stroke-dasharray: 2 7;
}
.portal-lines > circle {
  fill: #d8b16d;
  stroke: none;
}
.portal-rays {
  stroke-width: 1 !important;
}
.loading-moon {
  position: absolute;
  width: 46px;
  height: 46px;
  left: calc(50% - 23px);
  top: 65px;
  fill: #ddbe7e;
  transform: rotate(-17deg);
}
.loading-star {
  position: absolute;
  color: #d9b574;
  font-family: var(--serif, Georgia, serif);
  font-weight: 400;
  animation: loading-twinkle 4.5s ease-in-out infinite;
  line-height: 1;
}
.loading-star-a {
  font-size: 35px;
  left: 63px;
  top: 144px;
}
.loading-star-b {
  font-size: 20px;
  right: 68px;
  top: 115px;
  animation-delay: -1.5s;
}
.loading-star-c {
  font-size: 25px;
  right: 45px;
  bottom: 38px;
  animation-delay: -3s;
}
.loading-book {
  position: absolute;
  width: 220px;
  height: 135px;
  left: 60px;
  top: 176px;
  perspective: 800px;
  transform: rotateX(15deg) rotate(-7deg);
  transform-style: preserve-3d;
}
.loading-book-shadow {
  position: absolute;
  inset: 16% -4% -26%;
  background: #020e1255;
  filter: blur(17px);
  transform: rotate(8deg);
}
.loading-cover {
  position: absolute;
  top: 0;
  height: 100%;
  width: 50%;
  background: #91455a;
  box-shadow:
    0 5px 0 #aa705f,
    0 7px 0 #784156,
    0 12px 17px #061d1b99;
  border: 1px solid #d1a666;
}
.left-cover {
  left: -3px;
  transform: rotateY(13deg);
}
.right-cover {
  right: -3px;
  transform: rotateY(-13deg);
}
.loading-paper {
  position: absolute;
  width: 50%;
  height: calc(100% - 5px);
  top: -3px;
  background: #f4e7c7;
  overflow: hidden;
  box-shadow:
    0 2px 0 #d7c69f,
    0 4px 0 #e8daba;
}
.left-paper {
  left: 0;
  border-radius: 2px 0 0 2px;
  transform: rotateY(13deg);
  padding: 25px 14px;
}
.left-paper > span {
  display: block;
  width: 35px;
  height: 35px;
  margin: auto auto 12px;
  border: 1px solid #bd985466;
  border-radius: 50%;
  position: relative;
}
.left-paper > span:after {
  content: "✦";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #bd9854;
  font-size: 23px;
}
.left-paper > i {
  display: block;
  width: 90%;
  height: 1px;
  background: #cdb991;
  margin: 6px auto;
}
.left-paper > i:last-child {
  width: 55%;
}
.right-paper {
  display: grid;
  place-items: center;
  right: 0;
  transform: rotateY(-13deg);
  padding: 10px;
}
.loading-page-ornament {
  width: 85%;
  height: 100%;
  stroke: #b28b4e;
  stroke-width: 1;
  stroke-linecap: round;
}
.loading-gutter {
  position: absolute;
  top: -3px;
  bottom: 2px;
  left: 48%;
  width: 4%;
  background: linear-gradient(90deg, transparent, #6b4c2b44, transparent);
  z-index: 4;
}
.loading-leaf {
  position: absolute;
  top: -3px;
  left: 50%;
  width: 50%;
  height: calc(100% - 5px);
  transform-origin: left;
  transform-style: preserve-3d;
  animation: loading-page 3.8s cubic-bezier(0.3, 0.1, 0.3, 1) infinite;
  z-index: 5;
}
.loading-leaf-front,
.loading-leaf-back {
  position: absolute;
  inset: 0;
  background: #f7ecd4;
  backface-visibility: hidden;
  box-shadow: inset 7px 0 15px #b5935b33;
}
.loading-leaf-front {
  display: grid;
  place-items: center;
}
.loading-leaf-front > span {
  font: 55px var(--serif, Georgia, serif);
  color: #aa7c3c;
}
.loading-leaf-back {
  transform: rotateY(180deg);
  background: linear-gradient(90deg, #e4d2aa, #f4e9ce 30%);
}
.loading-dust {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.loading-dust i {
  position: absolute;
  width: 3px;
  height: 3px;
  background: #f5d48b;
  border-radius: 50%;
  left: 45%;
  top: 55%;
  box-shadow: 0 0 6px #e6c78955;
  animation: loading-dust 5s ease-out infinite;
}
.loading-dust i:nth-child(2) {
  left: 58%;
  top: 63%;
  animation-delay: -1s;
}
.loading-dust i:nth-child(3) {
  left: 38%;
  top: 56%;
  animation-delay: -3.4s;
}
.loading-dust i:nth-child(4) {
  left: 68%;
  top: 68%;
  animation-delay: -2.2s;
}
.loading-dust i:nth-child(5) {
  left: 30%;
  top: 63%;
  animation-delay: -4.1s;
}
.loading-title {
  font: 400 28px/1.25 var(--serif, Georgia, serif);
  color: #f2e5c6;
  margin: 30px 0 26px;
  letter-spacing: -0.02em;
}
.loading-title em {
  color: #e4bf79;
}
.loading-progress {
  width: 185px;
  height: 1px;
  background: #cbb17b33;
  position: relative;
  margin: 0 0 21px;
  --loaded: 0;
}
.loading-progress > span {
  position: absolute;
  inset: 0;
  background: #e1bd77;
  transform: scaleX(var(--loaded));
  transform-origin: left;
  transition: transform 0.25s;
}
.loading-progress > i {
  position: absolute;
  left: calc(var(--loaded) * 100%);
  top: -8px;
  color: #e4bd74;
  font-size: 13px;
  font-style: normal;
  transform: translateX(-50%);
  transition: left 0.25s;
  line-height: 1;
}
.loading-content > #loading-status {
  font: 400 10px/1.7 var(--sans, Arial, sans-serif);
  color: #bcb59f;
  letter-spacing: 0.035em;
  max-width: 330px;
  min-height: 18px;
  margin: 0;
}
.loading-signature {
  position: absolute;
  bottom: 31px;
  font-size: 7px;
  letter-spacing: 0.25em;
  color: #c5ae7c;
}
.loading-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 23px;
}
.loading-actions[hidden],
.loading-actions [hidden] {
  display: none !important;
}
.loading-actions > button {
  min-height: 44px;
  background: #e5bd74;
  color: #4d1b2c;
  border: 1px solid #e5bd74;
  padding: 11px 20px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}
.loading-actions > button span {
  padding-left: 15px;
}
.loading-actions > a {
  font-size: 10px;
  color: #e4c68e;
  min-height: 44px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #d2b17877;
}
.loading-actions > button:focus-visible,
.loading-actions > a:focus-visible {
  outline: 2px solid #fff1ca;
  outline-offset: 5px;
}
.loader-failed .loading-leaf {
  animation-play-state: paused;
}
.loader-failed #loading-status {
  color: #ecd1a6;
}
.site-loading #site-content * {
  animation-play-state: paused !important;
}
.loader-exiting #site-loader {
  opacity: 0;
  transition: opacity 0.7s;
  pointer-events: none;
}
.loader-exiting .loading-content {
  opacity: 0;
  transform: translateY(-18px);
}
.loader-exiting .loading-scenery img {
  transform: scale(1.09);
  transition: transform 0.9s;
}
.loader-exiting .loading-brand,
.loader-exiting .loading-signature {
  opacity: 0;
  transition: opacity 0.35s;
}
@keyframes loading-page {
  0%,
  12% {
    transform: rotateY(0deg);
  }
  60%,
  88% {
    transform: rotateY(-180deg);
  }
  100% {
    transform: rotateY(-180deg);
  }
}
@keyframes loading-twinkle {
  50% {
    opacity: 0.45;
    transform: scale(0.92);
  }
}
@keyframes loading-dust {
  0% {
    opacity: 0;
    transform: translate(0, 0) scale(0.5);
  }
  20% {
    opacity: 0.75;
  }
  85% {
    opacity: 0;
  }
  100% {
    opacity: 0;
    transform: translate(14px, -105px) scale(0.4);
  }
}
@media (max-width: 760px) {
  .loading-brand {
    top: 27px;
    left: 7%;
    font-size: 30px;
  }
  .loading-brand > span {
    font-size: 15px;
  }
  .loading-content {
    padding: 60px 20px 40px;
  }
  .loading-portal {
    width: 290px;
    height: 320px;
  }
  .loading-moon {
    width: 40px;
    height: 40px;
    left: calc(50% - 20px);
    top: 60px;
  }
  .loading-book {
    width: 194px;
    height: 119px;
    left: 48px;
    top: 158px;
  }
  .loading-star-a {
    left: 48px;
    top: 130px;
    font-size: 29px;
  }
  .loading-star-b {
    right: 52px;
    top: 108px;
    font-size: 17px;
  }
  .loading-star-c {
    right: 38px;
    bottom: 29px;
    font-size: 22px;
  }
  .loading-title {
    font-size: 26px;
    max-width: 270px;
    margin: 27px 0 25px;
  }
  .loading-title em {
    display: block;
    margin-top: 3px;
  }
  .loading-content > #loading-status {
    font-size: 10px;
    max-width: 270px;
  }
  .loading-signature {
    font-size: 6px;
    bottom: 25px;
  }
  .loading-scenery img {
    object-position: center bottom;
    opacity: 0.29;
  }
  .loading-shade {
    background: radial-gradient(
      ellipse at 50% 52%,
      #143b35e8,
      #102f2bd9 47%,
      #0b2529a6
    );
  }
  .loading-actions {
    gap: 12px;
    margin-top: 19px;
  }
  .loading-actions > button {
    font-size: 10px;
  }
  .loading-actions > a {
    font-size: 9px;
  }
}
@media (max-height: 650px) {
  .loading-portal {
    width: 230px;
    height: 250px;
  }
  .loading-book {
    width: 155px;
    height: 95px;
    left: 38px;
    top: 124px;
  }
  .loading-moon {
    width: 32px;
    height: 32px;
    left: calc(50% - 16px);
    top: 46px;
  }
  .loading-star-a {
    left: 39px;
    top: 100px;
    font-size: 25px;
  }
  .loading-star-b {
    right: 40px;
    top: 83px;
    font-size: 15px;
  }
  .loading-star-c {
    right: 27px;
    bottom: 26px;
    font-size: 18px;
  }
  .loading-title {
    font-size: 24px;
    margin: 13px 0 21px;
  }
  .loading-content {
    padding: 35px 15px;
  }
  .loading-signature {
    bottom: 15px;
  }
  .loading-brand {
    top: 22px;
    font-size: 29px;
  }
}
@media (max-height: 450px) and (min-width: 650px) {
  .loading-portal {
    width: 180px;
    height: 195px;
  }
  .loading-book {
    width: 120px;
    height: 74px;
    left: 30px;
    top: 97px;
  }
  .loading-moon {
    width: 27px;
    height: 27px;
    left: calc(50% - 13px);
    top: 34px;
  }
  .loading-star-a {
    left: 27px;
    top: 80px;
    font-size: 21px;
  }
  .loading-star-b {
    right: 33px;
    top: 63px;
    font-size: 12px;
  }
  .loading-star-c {
    right: 20px;
    bottom: 20px;
    font-size: 15px;
  }
  .loading-content {
    padding: 15px;
  }
  .loading-title {
    font-size: 22px;
    margin: 7px 0 18px;
  }
  .loading-progress {
    margin-bottom: 14px;
  }
  .loading-actions {
    margin-top: 12px;
  }
  .loading-signature {
    display: none;
  }
  .loading-brand {
    font-size: 27px;
    top: 20px;
  }
  .loading-title em {
    display: inline;
  }
}
@media (prefers-reduced-motion: reduce) {
  #site-loader *,
  #site-loader *:before,
  #site-loader *:after {
    animation: none !important;
    transition: none !important;
  }
  .loading-leaf {
    transform: rotateY(-120deg);
  }
  .loading-dust {
    display: none;
  }
  .loader-exiting #site-loader {
    transition: none;
  }
}
