/* The source logo stays unchanged. This viewport removes only its empty border. */
.logo-art {
  position: relative;
  display: block;
  aspect-ratio: 2.15;
  overflow: hidden;
  background: #fff;
}

.logo-art > img {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  max-width: none;
  height: auto;
  transform: translateY(-50%);
}

.brand .brand-mark {
  display: block;
  width: clamp(112px, 10vw, 138px);
  height: auto;
  border: 5px solid #fff;
  border-radius: 12px;
  box-shadow: 0 2px 0 #adaba9, 0 6px 18px #0005;
}

.header-inner { min-height: 76px; }
.main-nav a { padding-inline: .5rem; font-size: .84rem; }

.hero-logo-tile {
  width: min(340px, 90%);
  margin: 0 auto 2rem;
  padding: 1.5rem 1.1rem;
  border: 1px solid #fff;
  border-radius: 26px;
  background: linear-gradient(145deg, #fff 30%, #e8e5e3);
  box-shadow: inset 0 0 0 3px #fff9, 0 4px 0 #b7aaa4, 0 8px 0 #655451, 0 22px 50px #0007;
  transform: perspective(900px) rotateX(5deg);
}

.hero-logo-tile .logo-art { border-radius: 2px; }

.site-footer .brand-mark.small {
  width: 104px;
  height: auto;
  border: 4px solid #fff;
  border-radius: 10px;
  box-shadow: 0 2px 0 #adaba9;
}

.site-footer .footer-brand { flex-wrap: wrap; }

.welcome-screen {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: max(1.5rem, env(safe-area-inset-top)) 1.25rem max(1.5rem, env(safe-area-inset-bottom));
  border: 0;
  overflow-x: hidden;
  overflow-y: auto;
  color: #fff9f6;
  background:
    radial-gradient(ellipse at 50% 35%, #61222180 0, transparent 52%),
    radial-gradient(ellipse at 90% 100%, #36111355, transparent 55%),
    #100a0b;
  text-align: center;
  color-scheme: dark;
  opacity: 1;
  transition: opacity 300ms ease;
}

.welcome-screen:not([open]) { display: none; }
.welcome-screen[open] { display: flex; flex-direction: column; }
.welcome-screen::backdrop { background: #100a0b; }
.welcome-screen.is-leaving { opacity: 0; }
.welcome-screen.is-leaving::backdrop { background: transparent; }

.welcome-content {
  width: min(100%, 660px);
  margin: auto;
  padding: 1.25rem 0 1.75rem;
}

.welcome-stage {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100%, 420px);
  height: clamp(230px, 36vh, 340px);
  margin: 0 auto 1.75rem;
  perspective: 1100px;
}

.welcome-tile {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: center;
  width: clamp(208px, 29vh, 264px);
  aspect-ratio: 1;
  padding: 1.05rem;
  overflow: hidden;
  border: 1px solid #fff;
  border-radius: 24%;
  background: linear-gradient(150deg, #fff 18%, #fdfcfb 55%, #e3d6d1);
  box-shadow: inset 2px 3px 2px #fff, inset -3px -3px 6px #b19d9440,
    1px 3px 0 #d1c2bc, 2px 6px 0 #a28c84, 3px 9px 0 #745a53,
    4px 12px 0 #452b28, 5px 15px 0 #281917, 0 34px 54px #0008;
  transform: rotateX(8deg) rotateY(-12deg) rotateZ(-4deg);
  animation: welcome-arrive 1300ms cubic-bezier(.2,.7,.2,1) both,
    welcome-float 2600ms 1300ms ease-in-out infinite alternate;
}

.welcome-tile::after {
  content: "";
  position: absolute;
  inset: -50%;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 35%, #fff8 48%, transparent 60%);
  transform: translateX(-100%);
  animation: welcome-shine 1700ms 400ms ease-out both;
}

.welcome-tile .logo-art { border-radius: 2px; }

.welcome-halo {
  position: absolute;
  width: 88%;
  aspect-ratio: 1;
  border: 1px solid #d5a8a222;
  border-radius: 50%;
  box-shadow: 0 0 80px #c3573820, inset 0 0 70px #b7593812;
}

.welcome-shadow {
  position: absolute;
  bottom: -10px;
  width: 58%;
  height: 22px;
  border-radius: 50%;
  background: #0008;
  filter: blur(12px);
}

.welcome-eyebrow {
  margin-bottom: .85rem;
  color: #d4b1a4;
  font-size: .875rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.welcome-screen h1 {
  margin: 0 auto .75rem;
  font-size: clamp(2rem, 6.6vw, 3.5rem);
  font-weight: 500;
  letter-spacing: -.025em;
  text-wrap: balance;
}

#welcome-message {
  margin-bottom: 1.7rem;
  color: #d6c5bf;
  font-size: 1.0625rem;
}

.welcome-continue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  min-height: 48px;
  padding: .7rem 1.35rem;
  border: 1px solid #d1b5a84d;
  border-radius: 999px;
  color: #fff9f6;
  background: #ffffff08;
  cursor: pointer;
  font-size: .9375rem;
}

.welcome-continue:hover { background: #ffffff14; border-color: #d1b5a8; }
.welcome-continue:focus-visible { outline: 2px solid #f9d7bc; outline-offset: 5px; }
.welcome-signature { margin: 0; color: #b79e95; font-size: .875rem; }

@keyframes welcome-arrive {
  from { opacity: 0; transform: translateY(24px) rotateX(18deg) rotateY(-28deg) rotateZ(-8deg) scale(.9); }
  to { opacity: 1; transform: rotateX(8deg) rotateY(-12deg) rotateZ(-4deg); }
}

@keyframes welcome-float {
  to { transform: translateY(-8px) rotateX(4deg) rotateY(3deg) rotateZ(-2deg); }
}

@keyframes welcome-shine { to { transform: translateX(100%); } }

@media (max-width: 1200px) {
  .header-inner { position: relative; }
  .menu-button { display: block; order: 2; }
  .header-actions { order: 3; }
  .main-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    display: none;
    max-height: calc(100dvh - 76px);
    overflow-y: auto;
    padding: .55rem 1rem 1rem;
    border-top: 1px solid #ffffff14;
    background: #100807;
    box-shadow: 0 22px 35px #0004;
  }
  .main-nav.open { display: grid; }
  .main-nav a { justify-content: start; min-height: 44px; padding: 0 .4rem; font-size: .92rem; }
  .main-nav a::after { display: none; }
}

@media (max-width: 420px) {
  .brand > .brand-mark:last-child { display: block; width: 112px; }
}

@media (max-height: 600px) {
  .welcome-content { padding-block: .5rem 1rem; }
  .welcome-stage { height: 170px; margin-bottom: 1.25rem; }
  .welcome-tile { width: 150px; border-radius: 32px; padding: .65rem; }
  .welcome-halo { width: 200px; }
  .welcome-screen h1 { font-size: 2rem; }
  #welcome-message { margin-bottom: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .welcome-screen, .welcome-tile, .welcome-tile::after { animation: none; transition: none; }
  .welcome-tile { transform: none; }
  .welcome-tile::after { display: none; }
  .hero-logo-tile { transform: none; }
}
