.hero-copy {
  min-width: 0;
}

.brand-mark svg {
  width: 42px;
  height: 42px;
  overflow: visible;
  filter: drop-shadow(0 3px 5px rgb(75 15 12 / 40%));
}

.dream-moon { fill: #f5d79f; }
.dream-star { fill: #fff3ca; }
.star-large {
  transform-origin: 46.5px 19.8px;
  animation: dream-twinkle 2.8s ease-in-out infinite;
}
.star-small {
  transform-origin: 54px 32.7px;
  animation: dream-twinkle 2.8s 0.7s ease-in-out infinite;
}

@keyframes dream-twinkle {
  0%, 100% { opacity: 0.65; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1.08); }
}

.hero-copy p {
  margin: 5px 0 0;
  color: #dbcac5;
  font-size: 12px;
  line-height: 1.5;
}

.language-select {
  margin-left: auto;
  max-width: 112px;
  padding: 7px 24px 7px 9px;
  border: 1px solid #e0aa7866;
  border-radius: 10px;
  background: #6f2925;
  color: #f7e9dc;
  font-size: 11px;
}

.language-control {
  position: relative;
  flex: 0 0 auto;
  margin-left: auto;
}

#language-current {
  display: none;
}

.disclaimer-note {
  margin: 18px 10px 0;
  color: #8d7b72;
  font-size: 10px;
  line-height: 1.6;
  text-align: center;
}

.search input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
}

.search input[type="search"]::-webkit-search-cancel-button,
.search input[type="search"]::-webkit-search-decoration {
  display: none;
  -webkit-appearance: none;
}

@media (max-width: 440px) {
  body {
    background: linear-gradient(180deg, #421c1a 0 202px, #f5efe7 202px);
  }

  .app-shell {
    width: 100%;
    padding: 18px 14px 36px;
  }

  .hero {
    min-height: 112px;
    gap: 13px;
    padding: 5px 4px 20px;
  }

  .brand-mark {
    width: 50px;
    height: 50px;
    border-radius: 15px;
    font-size: 25px;
  }

  .hero h1 {
    font-size: 24px;
    letter-spacing: 1px;
  }

  .hero-copy p {
    margin-top: 3px;
    font-size: 11px;
  }

  .language-select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
  }

  .language-control {
    width: 62px;
    height: 32px;
    border: 1px solid #e0aa7866;
    border-radius: 10px;
    background: #6f2925;
    color: #f7e9dc;
  }

  .language-control::after {
    content: "⌄";
    position: absolute;
    right: 8px;
    top: 5px;
    color: #e8c9b1;
    font-size: 12px;
    pointer-events: none;
  }

  #language-current {
    display: block;
    padding: 7px 21px 0 9px;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
    pointer-events: none;
  }

  .search {
    height: 54px;
    top: 6px;
    margin-bottom: 11px;
    padding-left: 11px;
    border-radius: 16px;
    gap: 6px;
  }

  .search-icon {
    font-size: 22px;
  }

  .search input {
    font-size: 13px;
  }

  .search > button#submit {
    height: 40px;
    padding: 0 13px;
    border-radius: 12px;
  }

  .section-card,
  .result-card {
    margin-top: 11px;
    border-radius: 17px;
  }

  .section-card {
    padding: 16px;
  }

  .result-card > h2 {
    margin: 18px 16px 7px;
    font-size: 22px;
  }

  .interpretation {
    margin: 0 16px 17px;
    font-size: 12px;
  }

  .number-groups {
    gap: 8px;
    padding: 0 12px 15px;
  }

  .number-block {
    padding: 13px 9px 11px;
    border-radius: 14px;
  }

  .number-block strong {
    font-size: 21px;
  }

  .result-meta {
    padding: 10px 16px;
  }
}
