body {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 120px 20px 40px;
  text-align: center;
  background-color: #111;
  background-image: radial-gradient(ellipse at center, #1c1c1c 0%, #111 100%);
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;
  color: #fff;
  font-family: 'Crimson Pro', serif;
}

h1 {
  font-size: 1.4em;
  font-weight: 400;
  letter-spacing: 1px;
  opacity: 0.7;
  margin-bottom: 12px;
}

.entry-whisper {
  font-size: 0.9em;
  font-style: italic;
  opacity: 0.45;
  margin-bottom: 60px;
  transition: opacity 2s ease;
}

.entry-whisper.fade {
  opacity: 0;
}

.ritual-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ritual-prompt {
  font-size: 0.9em;
  font-style: italic;
  opacity: 0;
  margin-bottom: 20px;
  transition: opacity 2s ease;
}

.ritual-prompt.show {
  opacity: 0.5;
}

#drawButton {
  background: none;
  border: 1px solid rgba(255,255,255,0.35);
  padding: 10px 22px;
  color: #fff;
  font-size: 0.9em;
  border-radius: 4px;
  cursor: pointer;
  transition: opacity 1s ease, border-color 0.3s ease;
}

#drawButton:hover {
  border-color: #fff;
}

#drawButton.fade-out {
  opacity: 0;
  pointer-events: none;
}

/* result */
.totem-result {
  margin-top: 50px;
  opacity: 0;
  transition: opacity 1.6s ease;
  max-width: 360px;
  min-height: 220px;
}

.totem-result.show {
  opacity: 1;
}

/* reflection first */
.totem-reflection {
  font-style: italic;
  font-size: 1em;
  opacity: 0.85;
  white-space: pre-wrap;
  min-height: 40px;
  margin-bottom: 24px;
}

/* image later */
.totem-image {
  display: block;
  width: 120px;
  height: 120px;
  margin: 0 auto 14px;
  opacity: 0;
  transition: opacity 1.6s ease;
}

.totem-image.show {
  opacity: 1;
}

/* name */
.totem-name {
  font-size: 0.9em;
  opacity: 0.7;
  font-style: italic;
}

/* holding state */
body.after-draw #drawButton {
  display: none;
}

body.after-draw .ritual-prompt {
  opacity: 0;
}

body.after-draw .entry-whisper {
  opacity: 0;
}

.totem-footer {
  position: fixed;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.7em;
  letter-spacing: 0.08em;
  opacity: 0.45;
  transition: opacity 2.4s ease;
  pointer-events: none; /* prevents accidental clicks while hidden */
}

.totem-footer a {
  color: rgba(255,255,255,0.45);
  text-decoration: none;
  transition: color 0.4s ease;
  pointer-events: auto;
}

.totem-footer a:hover {
  color: rgba(255,255,255,0.8);
}

/* reveal slowly after interaction */
body.after-draw .totem-footer {
  opacity: 0.35;
}

/* optional: slightly stronger on hover anywhere near bottom */
.totem-footer:hover {
  opacity: 0.7;
}