:root {
  color-scheme: dark;
  background: #080a0a;
  color: #f5f5f2;
  font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: #080a0a; }
::selection { background: #856347; color: #fff; }

.atmosphere {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 52%, #131513 0, #0c0e0d 43%, #080a0a 76%);
}

.light { position: absolute; pointer-events: none; }
.light-copper {
  inset: -35% -25% -45%;
  background: radial-gradient(ellipse 32% 52% at 77% 56%, #b9794433 0, #87543516 44%, transparent 74%);
  transform: rotate(-28deg);
  animation: copper-arrives 4.8s cubic-bezier(.16, .7, .2, 1) both;
}
.light-ivory {
  inset: -45% -30%;
  background: radial-gradient(ellipse 17% 52% at 27% 32%, #c3c5b012 0, #aaa79006 45%, transparent 74%);
  transform: rotate(-28deg);
  animation: ivory-arrives 4.6s cubic-bezier(.16, .7, .2, 1) both;
}
.arc {
  position: absolute;
  left: 50%;
  top: 60%;
  width: max(1200px, 145vw);
  height: 105vw;
  min-height: 800px;
  border: 1px solid #be956d0f;
  border-radius: 50%;
  transform: translateX(-50%) rotate(-12deg);
  box-shadow: 0 -35px 100px -85px #c3956533;
  animation: arc-arrives 4.8s ease-out both;
}
.vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 45%, transparent 25%, #03060645 85%, #0204049e 120%);
}

.arrival {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 56px 28px;
  isolation: isolate;
}
.signature { width: min(100%, 530px); text-align: center; transform: translateY(-14px); }
h1 { margin: 0; font-size: 1rem; font-weight: 400; }
h1 img { display: block; width: 100%; height: auto; }
.thread {
  width: 52px;
  height: 1px;
  margin: 25px auto 28px;
  background: linear-gradient(90deg, transparent, #ccab7c 45%, #e7d6b8 50%, #ccab7c 55%, transparent);
  box-shadow: 0 0 18px 2px #bd824718;
  animation: thread-arrives 3.8s ease-out both;
}
.promise {
  margin: 0;
  padding-left: .38em;
  color: #b8ad9c;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .38em;
  line-height: 1.8;
  text-transform: uppercase;
}

/* A single quiet arrival; the scene settles within five seconds. */
@keyframes copper-arrives {
  from { opacity: .42; transform: translate(1.5%, 1%) rotate(-31deg); }
  to { opacity: 1; transform: translate(0, 0) rotate(-28deg); }
}
@keyframes ivory-arrives {
  from { opacity: .4; transform: translate(-1%, -.5%) rotate(-30deg); }
  to { opacity: 1; transform: translate(0, 0) rotate(-28deg); }
}
@keyframes arc-arrives { from { opacity: .35; } to { opacity: 1; } }
@keyframes thread-arrives { from { opacity: .35; transform: scaleX(.65); } to { opacity: 1; transform: scaleX(1); } }

@media (max-width: 600px) {
  .signature { width: min(100%, 350px); transform: translateY(-8px); }
  .thread { width: 40px; margin-top: 27px; margin-bottom: 27px; }
  .promise { font-size: 9px; letter-spacing: .34em; padding-left: .34em; }
  .light-copper { inset: -10% -130%; }
  .light-ivory { inset: -50% -110%; }
  .arc { top: 61%; }
}

@media (max-height: 460px) and (min-width: 601px) {
  .arrival { padding-block: 26px; }
  .signature { width: 310px; transform: none; }
  .thread { margin-top: 10px; margin-bottom: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; }
}
