

.hero__chips {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 10px; margin: 28px 0 0; padding: 0; list-style: none;
}
.hero__chips li a {
  display: inline-block; padding: 8px 16px; border-radius: 999px;
  border: 1px solid var(--line-strong); background: var(--glass);
  color: var(--ink-dim); font-size: 0.9rem; transition: all var(--t);
  backdrop-filter: blur(8px);
}
.hero__chips li a:hover { color: var(--ink); border-color: var(--gold-soft); background: var(--glass-soft); }

.page-hero {
  padding: clamp(80px, 14vw, 140px) 0 clamp(40px, 6vw, 60px);
  text-align: center;
}
.page-hero h1.section__title { white-space: normal; }

.ai-chat {
  background: linear-gradient(180deg, var(--glass-soft), var(--glass));
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  backdrop-filter: blur(14px);
  padding: 22px;
  box-shadow: var(--shadow-soft);
  display: flex; flex-direction: column; gap: 16px;
  max-width: 760px; margin: 0 auto;
}
.ai-chat__head { display: flex; align-items: center; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.ai-chat__avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--gold-soft), var(--violet-deep));
  display: grid; place-items: center; font-size: 1.5rem; color: #1a0c34;
}
.ai-chat__title { margin: 0; font-family: var(--serif-display); font-size: 1.05rem; letter-spacing: .04em; }
.ai-chat__sub { margin: 2px 0 0; color: var(--ink-faint); font-size: .82rem; }
.ai-chat__pulse { margin-left: auto; width: 10px; height: 10px; border-radius: 50%; background: #555; }
.ai-chat__pulse.is-on { background: #4ade80; box-shadow: 0 0 12px rgba(74, 222, 128, 0.6); animation: pulse 2.4s ease-in-out infinite; }
.ai-chat__pulse.is-off { background: #ef4444; box-shadow: 0 0 12px rgba(239, 68, 68, 0.5); }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .5; } }

.ai-chat__transcript {
  min-height: 140px; max-height: 460px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 12px;
  padding-right: 6px;
}
.ai-chat__transcript::-webkit-scrollbar { width: 6px; }
.ai-chat__transcript::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 999px; }

.ai-msg {
  padding: 14px 16px; border-radius: 14px;
  max-width: 85%; line-height: 1.55;
}
.ai-msg p { margin: 0; }
.ai-msg p + p { margin-top: 0.6em; }
.ai-msg--bot {
  background: rgba(124, 58, 237, 0.14);
  border: 1px solid rgba(179, 132, 255, 0.25);
  align-self: flex-start;
  font-family: var(--serif);
  font-size: 1.05rem;
  color: var(--ink);
}
.ai-msg--user {
  background: linear-gradient(135deg, rgba(212,175,55,.15), rgba(212,175,55,.08));
  border: 1px solid rgba(212,175,55,.25);
  align-self: flex-end;
  color: var(--ink);
}
.ai-msg--typing { color: var(--ink-dim); font-style: italic; }

.ai-chat__form { display: flex; flex-direction: column; gap: 10px; }
.ai-chat__form textarea {
  width: 100%; padding: 14px; resize: vertical;
  background: rgba(0,0,0,.35); border: 1px solid var(--line-strong);
  border-radius: 12px; color: var(--ink); font-family: inherit; font-size: 1rem;
  min-height: 60px; max-height: 160px;
}
.ai-chat__form textarea:focus { outline: 1px solid var(--gold); border-color: transparent; }
.ai-chat__row { display: flex; gap: 10px; align-items: center; }
.ai-chat__row select {
  flex: 1; padding: 12px 14px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit;
}
.ai-chat__note { margin: 0; color: var(--ink-faint); font-size: .82rem; text-align: center; }

.section--ai-feature { background: radial-gradient(70% 80% at 30% 0%, rgba(124, 58, 237, 0.18), transparent 70%); border-radius: var(--radius); }
.ai-feature { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: center; }
@media (max-width: 880px) { .ai-feature { grid-template-columns: 1fr; gap: 28px; } }
.ai-feature__txt p { color: var(--ink-dim); }
.ai-feature__widget .ai-chat { max-width: none; }

.ai-tarot {
  background: var(--glass);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  display: flex; flex-direction: column; gap: 16px;
}
.ai-tarot__intro { margin: 0; color: var(--ink-dim); font-family: var(--serif); font-size: 1.08rem; }
.ai-tarot__q label { display: flex; flex-direction: column; gap: 8px; }
.ai-tarot__q label span { color: var(--ink-dim); font-size: .9rem; }
.ai-tarot__q input {
  padding: 12px 14px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1rem;
}
.ai-tarot__q input:focus { outline: 1px solid var(--gold); border-color: transparent; }
.ai-tarot__board {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
@media (max-width: 640px) { .ai-tarot__board { grid-template-columns: 1fr; } }
.ai-tarot__board .tarot-card {
  background: linear-gradient(160deg, rgba(124,58,237,.15), rgba(0,0,0,.25));
  border: 1px solid var(--line-strong);
  border-radius: 12px; padding: 18px;
  text-align: center; transition: transform var(--t);
}
.ai-tarot__board .tarot-card:hover { transform: translateY(-4px); }
.ai-tarot__board .tarot-card.is-reversed { transform: rotate(.5deg); }
.ai-tarot__board .tarot-card__pos { color: var(--gold-soft); font-family: var(--serif-display); font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; margin: 0 0 10px; }
.ai-tarot__board .tarot-card__symbol { font-size: 2.4rem; margin: 0 0 8px; color: var(--gold); }
.ai-tarot__board .tarot-card__name { font-family: var(--serif); font-size: 1.2rem; margin: 0 0 10px; }
.ai-tarot__board .tarot-card__name em { color: var(--rose); font-style: italic; font-size: .9rem; }
.ai-tarot__board .tarot-card__txt { font-size: .92rem; color: var(--ink-dim); margin: 6px 0; line-height: 1.5; }
.ai-tarot__reading {
  background: rgba(0,0,0,.3);
  border-left: 3px solid var(--gold);
  padding: 22px 24px;
  font-family: var(--serif);
  font-size: 1.1rem; line-height: 1.7;
  white-space: pre-wrap;
  border-radius: 8px;
}
.ai-tarot__reading.is-loading::after {
  content: "Reading the cards…"; color: var(--ink-faint); font-style: italic;
}
.ai-tarot__cta { display: flex; gap: 12px; justify-content: center; }

.dream-form { display: flex; flex-direction: column; gap: 16px; max-width: 720px; margin: 0 auto; }
.dream-form label { display: flex; flex-direction: column; gap: 8px; }
.dream-form label span { color: var(--ink-dim); font-size: .9rem; }
.dream-form textarea {
  padding: 16px; border-radius: 14px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: var(--serif); font-size: 1.05rem; line-height: 1.6;
  min-height: 160px;
}
.dream-form textarea:focus { outline: 1px solid var(--gold); border-color: transparent; }
.dream-form__note { color: var(--ink-faint); font-size: .85rem; margin: 0; text-align: center; }
.dream-result {
  background: rgba(0,0,0,.3);
  border-left: 3px solid var(--violet);
  padding: 22px 24px; border-radius: 8px;
  font-family: var(--serif); font-size: 1.08rem; line-height: 1.7;
  white-space: pre-wrap;
}

.yesno-oracle { display: flex; flex-direction: column; gap: 14px; max-width: 600px; margin: 0 auto; }
.yesno-oracle label { display: flex; flex-direction: column; gap: 8px; }
.yesno-oracle label span { color: var(--ink-dim); font-size: .9rem; }
.yesno-oracle input {
  padding: 14px 16px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1.05rem; text-align: center;
}
.yesno-oracle input:focus { outline: 1px solid var(--gold); border-color: transparent; }
.yesno-result { text-align: center; padding: 26px; border-radius: 14px; background: var(--glass); border: 1px solid var(--line-strong); }
.yesno-result__verdict {
  font-family: var(--serif-display); font-size: clamp(2.4rem, 7vw, 4rem);
  letter-spacing: .15em; margin: 0 0 12px;
}
.yesno-result__verdict.is-yes  { color: #4ade80; }
.yesno-result__verdict.is-no   { color: #ec4899; }
.yesno-result__verdict.is-maybe{ color: var(--gold-soft); }
.yesno-result__reason { font-family: var(--serif); font-size: 1.15rem; color: var(--ink-dim); }

.card-of-day {
  background: linear-gradient(160deg, rgba(212,175,55,.12), rgba(0,0,0,.4));
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  padding: 28px; text-align: center; max-width: 520px; margin: 0 auto;
}
.card-of-day__eyebrow { color: var(--gold-soft); letter-spacing: .15em; text-transform: uppercase; font-size: .82rem; margin: 0; }
.card-of-day__symbol { font-size: 4rem; color: var(--gold); margin: 14px 0 8px; }
.card-of-day__name { font-family: var(--serif); font-size: 1.6rem; margin: 0 0 14px; }
.card-of-day__txt { font-family: var(--serif); font-size: 1.1rem; color: var(--ink); margin: 0 0 16px; }
.card-of-day__split { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; text-align: left; font-size: .92rem; color: var(--ink-dim); }
.card-of-day__split strong { color: var(--gold-soft); }

.tarot-library {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px;
  margin-bottom: 36px;
}
.tarot-library__card {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 18px 12px; border-radius: 14px;
  background: rgba(0,0,0,.3); border: 1px solid var(--line);
  text-align: center; color: var(--ink); transition: all var(--t);
}
.tarot-library__card:hover { transform: translateY(-3px); border-color: var(--gold-soft); background: var(--glass-soft); }
.tarot-library__num { font-size: .72rem; color: var(--ink-faint); letter-spacing: .15em; }
.tarot-library__symbol { font-size: 1.8rem; color: var(--gold); }
.tarot-library__name { font-family: var(--serif); font-size: .95rem; }

.tarot-library__detail { margin: 12px 0; padding: 16px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--glass); }
.tarot-library__detail summary { cursor: pointer; font-family: var(--serif); font-size: 1.15rem; padding: 4px 0; }
.tarot-library__detail summary span { color: var(--gold); margin-right: 8px; }
.tld__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 16px; }
@media (max-width: 720px) { .tld__grid { grid-template-columns: 1fr; } }
.tld__grid h4 { font-family: var(--serif-display); color: var(--gold-soft); letter-spacing: .12em; font-size: .85rem; margin: 0 0 8px; text-transform: uppercase; }
.tld__grid p { font-size: .95rem; color: var(--ink-dim); margin: 6px 0; }
.tld__grid em { color: var(--gold-soft); font-style: italic; margin-right: 4px; }

.moon-strip { display: grid; grid-template-columns: 1.1fr 1fr; gap: 20px; align-items: stretch; }
@media (max-width: 880px) { .moon-strip { grid-template-columns: 1fr; } }

.moon-card {
  display: grid; grid-template-columns: 140px 1fr; gap: 24px; align-items: center;
  padding: 28px; border-radius: var(--radius);
  background: radial-gradient(60% 80% at 30% 30%, rgba(255,255,255,.08), transparent 70%), rgba(0,0,0,.35);
  border: 1px solid var(--line-strong);
}
@media (max-width: 640px) { .moon-card { grid-template-columns: 1fr; text-align: center; } }
.moon-card__visual {
  width: 120px; height: 120px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff8d8, #d4af37 50%, #1a0c34 100%);
  display: grid; place-items: center;
  box-shadow: 0 0 60px rgba(255,255,255,.18), inset -30px -30px 60px rgba(0,0,0,.55);
  margin: 0 auto;
}
.moon-card__symbol { font-size: 3rem; }
.moon-card__txt p { margin: 6px 0; }
.moon-card__name { font-family: var(--serif); font-size: 1.6rem; margin: 0; }
.moon-card__meta { color: var(--ink-faint); font-size: .9rem; }
.moon-card__energy { color: var(--ink); font-family: var(--serif); font-size: 1.1rem; }
.moon-card__ritual { color: var(--ink-dim); font-size: .95rem; }
.moon-card__ritual strong { color: var(--gold-soft); }

.moon-cal__head { text-align: center; margin-bottom: 20px; }
.moon-cal__head h3 { font-family: var(--serif); font-size: 1.6rem; margin: 0 0 6px; }
.moon-cal__head p { color: var(--ink-dim); margin: 0; }
.moon-cal__grid { list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px;
}
.moon-cal__cell {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 12px 6px; border-radius: 10px;
  background: rgba(0,0,0,.3); border: 1px solid var(--line);
  font-size: .82rem;
}
.moon-cal__symbol { font-size: 1.4rem; }
.moon-cal__date { color: var(--ink-dim); }
.moon-cal__pct { color: var(--ink-faint); font-size: .72rem; }
.moon-cal__sub { font-family: var(--serif); font-size: 1.4rem; margin: 36px 0 14px; text-align: center; }
.moon-cal__milestones { list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
}
.moon-cal__milestones li {
  padding: 10px 16px; border-radius: 999px;
  background: var(--glass); border: 1px solid var(--line-strong);
  font-size: .92rem;
}
.moon-cal__milestones span { font-size: 1.1rem; margin-right: 6px; }
.moon-cal__milestones strong { color: var(--gold-soft); }

.merc-card {
  padding: 24px; border-radius: var(--radius);
  background: rgba(0,0,0,.35); border: 1px solid var(--line-strong);
  display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center;
}
.merc-card__symbol { font-size: 2.5rem; color: var(--gold); }
.merc-card.is-retro { background: linear-gradient(160deg, rgba(236, 72, 153, .14), rgba(0,0,0,.4)); border-color: rgba(236, 72, 153, .3); }
.merc-card.is-direct { background: linear-gradient(160deg, rgba(74, 222, 128, .12), rgba(0,0,0,.4)); border-color: rgba(74, 222, 128, .25); }
.merc-card h3 { font-family: var(--serif); font-size: 1.5rem; margin: 0; }
.merc-card p { margin: 2px 0; color: var(--ink-dim); }
.merc-card__advice { font-family: var(--serif); color: var(--ink); font-size: 1.05rem; max-width: 38ch; }

.rune-widget {
  padding: 24px; border-radius: var(--radius);
  background: var(--glass); border: 1px solid var(--line-strong);
  display: flex; flex-direction: column; gap: 14px;
}
.rune-widget__intro { margin: 0; color: var(--ink-dim); font-family: var(--serif); }
.rune-widget input {
  padding: 12px 14px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit;
}
.rune-widget__result { text-align: center; padding: 16px; border: 1px dashed var(--gold-soft); border-radius: 12px; background: rgba(212,175,55,.06); }
.rune-widget__symbol { font-size: 4rem; color: var(--gold); display: block; margin-bottom: 8px; }
.rune-widget__result h3 { font-family: var(--serif); font-size: 1.4rem; margin: 0 0 6px; }
.rune-widget__result p { margin: 0; color: var(--ink-dim); font-family: var(--serif); }

.crystal-picker { max-width: 480px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.crystal-picker label { display: flex; flex-direction: column; gap: 8px; color: var(--ink-dim); }
.crystal-picker select {
  padding: 12px 14px; border-radius: 999px; background: rgba(0,0,0,.4);
  border: 1px solid var(--line-strong); color: var(--ink); font-family: inherit;
}
.crystal-picker__list { list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
}
.crystal-picker__list li {
  padding: 10px 16px; border-radius: 999px;
  background: linear-gradient(135deg, rgba(212,175,55,.15), rgba(124,58,237,.15));
  border: 1px solid var(--line-strong);
  font-family: var(--serif); font-size: 1rem;
}

.section--lead-magnet {
  padding: clamp(40px, 8vw, 80px) 0;
  background: radial-gradient(60% 80% at 50% 0%, rgba(212, 175, 55, 0.12), transparent 70%);
}
.lead-magnet {
  max-width: 720px; margin: 0 auto;
  padding: 36px;
  background: linear-gradient(160deg, rgba(212,175,55,.1), rgba(124,58,237,.08));
  border: 1px solid rgba(212,175,55,.3);
  border-radius: var(--radius);
  display: flex; flex-direction: column; gap: 18px;
}
.lead-magnet__title { font-family: var(--serif); font-size: clamp(1.4rem, 3vw, 2rem); margin: 0; text-align: center; }
.lead-magnet__desc { color: var(--ink-dim); text-align: center; margin: 0; font-family: var(--serif); font-size: 1.08rem; }
.lead-magnet__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lead-magnet__row:nth-of-type(2) { grid-template-columns: 1fr 1fr 1.4fr; }
@media (max-width: 720px) { .lead-magnet__row, .lead-magnet__row:nth-of-type(2) { grid-template-columns: 1fr; } }
.lead-magnet label { display: flex; flex-direction: column; gap: 6px; color: var(--ink-dim); font-size: .9rem; }
.lead-magnet input {
  padding: 12px 14px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit;
}
.lead-magnet input:focus { outline: 1px solid var(--gold); border-color: transparent; }
.lead-magnet button { align-self: center; min-width: 280px; }
.lead-magnet__legal { font-size: .82rem; color: var(--ink-faint); text-align: center; margin: 0; }
.lead-magnet__ok {
  background: rgba(74, 222, 128, .1); border: 1px solid rgba(74, 222, 128, .3);
  border-radius: 12px; padding: 18px; color: var(--ink); text-align: center;
  font-family: var(--serif); font-size: 1.1rem;
}

.pricing-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
  align-items: stretch;
}
@media (max-width: 880px) { .pricing-grid { grid-template-columns: 1fr; } }
.pricing-card {
  padding: 32px; border-radius: var(--radius);
  background: var(--glass); border: 1px solid var(--line-strong);
  display: flex; flex-direction: column; gap: 18px;
  position: relative;
  transition: transform var(--t);
}
.pricing-card:hover { transform: translateY(-4px); }
.pricing-card.is-highlight {
  background: linear-gradient(160deg, rgba(212,175,55,.12), rgba(124,58,237,.12));
  border-color: var(--gold-soft);
  box-shadow: 0 30px 80px -30px rgba(212, 175, 55, 0.4);
  transform: scale(1.02);
}
.pricing-card.is-highlight:hover { transform: scale(1.02) translateY(-4px); }
.pricing-card__tag {
  position: absolute; top: -12px; left: 24px;
  padding: 4px 12px; border-radius: 999px;
  background: var(--gold); color: #1a0c34;
  font-size: .72rem; letter-spacing: .15em; text-transform: uppercase;
  font-family: var(--serif-display); font-weight: 600;
}
.pricing-card h3 { font-family: var(--serif); font-size: 1.6rem; margin: 0; }
.pricing-card__price { font-family: var(--serif-display); font-size: 2.6rem; font-weight: 600; color: var(--gold-soft); }
.pricing-card__price small { font-size: 1rem; color: var(--ink-faint); margin-left: 6px; font-weight: 400; }
.pricing-card__list { list-style: none; padding: 0; margin: 0; flex: 1; }
.pricing-card__list li {
  padding: 8px 0 8px 26px; border-bottom: 1px solid var(--line);
  position: relative; color: var(--ink-dim); font-size: .96rem;
}
.pricing-card__list li::before {
  content: "✦"; position: absolute; left: 0; top: 8px;
  color: var(--gold-soft);
}
.pricing-card .btn { align-self: stretch; text-align: center; }

.testimonials {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
@media (max-width: 880px) { .testimonials { grid-template-columns: 1fr; } }
.testimonial {
  margin: 0; padding: 28px; border-radius: var(--radius);
  background: var(--glass); border: 1px solid var(--line);
}
.testimonial blockquote {
  margin: 0 0 14px; font-family: var(--serif); font-size: 1.12rem; line-height: 1.6;
  color: var(--ink);
}
.testimonial figcaption { color: var(--ink-faint); font-size: .9rem; }
.testimonial figcaption strong { color: var(--gold-soft); }

.why-us { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 880px) { .why-us { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .why-us { grid-template-columns: 1fr; } }
.why-us__item {
  padding: 24px; border-radius: var(--radius);
  background: var(--glass); border: 1px solid var(--line);
}
.why-us__icon { display: inline-block; font-size: 1.8rem; color: var(--gold); margin-bottom: 8px; }
.why-us__item h4 { font-family: var(--serif); font-size: 1.15rem; margin: 0 0 8px; }
.why-us__item p { color: var(--ink-dim); margin: 0; font-size: .95rem; }

.faq { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 8px; }
.faq__item {
  padding: 16px 22px; border-radius: 12px;
  background: var(--glass); border: 1px solid var(--line);
  transition: background var(--t);
}
.faq__item[open] { background: var(--glass-soft); border-color: var(--line-strong); }
.faq__item summary {
  cursor: pointer; font-family: var(--serif); font-size: 1.12rem; color: var(--ink);
  list-style: none; padding-right: 30px; position: relative;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: "+"; position: absolute; right: 0; top: 50%;
  transform: translateY(-50%); color: var(--gold-soft); font-size: 1.4rem;
  transition: transform var(--t);
}
.faq__item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq__item div { margin-top: 12px; color: var(--ink-dim); line-height: 1.6; }

.auth-chip { position: relative; display: inline-block; }
.auth-chip--guest {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border-radius: 999px;
  background: var(--glass); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: .9rem;
  transition: all var(--t);
}
.auth-chip--guest:hover { border-color: var(--gold-soft); background: var(--glass-soft); }
.auth-chip__icon { color: var(--gold-soft); font-weight: 700; }

.auth-chip__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 4px 12px 4px 4px; border-radius: 999px;
  background: var(--glass); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: .85rem; cursor: pointer;
  transition: all var(--t);
}
.auth-chip__btn:hover { border-color: var(--gold-soft); }
.auth-chip__avatar {
  --accent: var(--gold);
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--violet-deep));
  display: grid; place-items: center;
  font-family: var(--serif-display); font-weight: 700; color: #1a0c34;
  font-size: .8rem;
}
.auth-chip__tier { font-family: var(--serif-display); letter-spacing: .12em; font-size: .78rem; text-transform: uppercase; }
.auth-chip__menu {
  position: absolute; top: calc(100% + 8px); right: 0;
  list-style: none; padding: 8px; margin: 0; min-width: 200px;
  background: rgba(10, 4, 24, .98); backdrop-filter: blur(14px);
  border: 1px solid var(--line-strong); border-radius: 14px;
  box-shadow: var(--shadow-deep);
  display: none; z-index: 100;
}
.auth-chip.is-open .auth-chip__menu { display: block; }
.auth-chip__menu li a {
  display: block; padding: 10px 14px; border-radius: 8px;
  color: var(--ink-dim); font-size: .92rem;
  transition: all .2s;
}
.auth-chip__menu li a:hover { background: var(--glass-soft); color: var(--ink); }
.auth-chip__sep { height: 1px; background: var(--line); margin: 6px 4px; }

.auth-card {
  max-width: 480px; margin: 0 auto;
  background: linear-gradient(180deg, var(--glass-soft), var(--glass));
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  backdrop-filter: blur(14px);
  padding: 32px;
  box-shadow: var(--shadow-soft);
}
.auth-tabs { display: flex; gap: 4px; margin-bottom: 24px; padding: 4px; border-radius: 999px; background: rgba(0,0,0,.3); }
.auth-tabs__tab {
  flex: 1; padding: 10px 16px; border: none; cursor: pointer;
  background: transparent; color: var(--ink-dim);
  font-family: var(--serif-display); letter-spacing: .12em; font-size: .82rem;
  text-transform: uppercase; border-radius: 999px;
  transition: all var(--t);
}
.auth-tabs__tab.is-active {
  background: linear-gradient(135deg, var(--gold), var(--gold-soft));
  color: #1a0c34; font-weight: 600;
}
.auth-form { display: none; flex-direction: column; gap: 14px; }
.auth-form.is-active { display: flex; }
.auth-form__lede { color: var(--ink-dim); margin: 0 0 4px; font-family: var(--serif); font-size: 1.05rem; }
.auth-form label { display: flex; flex-direction: column; gap: 6px; color: var(--ink-dim); font-size: .9rem; }
.auth-form label em { color: var(--ink-faint); font-style: normal; font-size: .82rem; }
.auth-form input[type=text],
.auth-form input[type=email],
.auth-form input[type=password] {
  padding: 12px 14px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1rem;
}
.auth-form input:focus { outline: 1px solid var(--gold); border-color: transparent; }
.auth-form__check { flex-direction: row; align-items: center; gap: 10px; cursor: pointer; }
.auth-form__check input { accent-color: var(--gold); }
.auth-form__small { color: var(--ink-faint); font-size: .85rem; margin: 4px 0 0; text-align: center; }
.auth-form__small a { color: var(--gold-soft); }
.auth-form__msg { padding: 12px 16px; border-radius: 8px; font-size: .92rem; margin-top: 8px; }
.auth-form__msg.is-error { background: rgba(236, 72, 153, .12); color: #fda4af; border: 1px solid rgba(236, 72, 153, .3); }
.auth-form__msg.is-ok { background: rgba(74, 222, 128, .12); color: #86efac; border: 1px solid rgba(74, 222, 128, .3); }
.auth-card--logged-in p { color: var(--ink); font-family: var(--serif); font-size: 1.1rem; }

.my-account { display: flex; flex-direction: column; gap: 32px; }
.my-account__head {
  display: grid; grid-template-columns: auto 1fr auto; gap: 20px;
  align-items: center;
  padding: 28px;
  background: var(--glass); border: 1px solid var(--line-strong);
  border-radius: var(--radius);
}
@media (max-width:640px){ .my-account__head { grid-template-columns: auto 1fr; gap: 14px; } .my-account__actions { grid-column: 1/3; } }
.my-account__avatar {
  width: 64px; height: 64px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--serif-display); font-size: 1.8rem; font-weight: 700;
  color: #1a0c34;
}
.my-account__greet h2 { font-family: var(--serif); font-size: 1.6rem; margin: 4px 0 2px; }
.my-account__email { color: var(--ink-dim); margin: 0; font-size: .92rem; }

.my-account__tier {
  display: grid; grid-template-columns: 80px 1fr auto; gap: 20px;
  align-items: center;
  padding: 28px; border-radius: var(--radius);
  background: linear-gradient(160deg, color-mix(in srgb, var(--accent) 18%, transparent), rgba(0,0,0,.35));
  border: 1px solid var(--line-strong);
}
@media (max-width:640px){ .my-account__tier { grid-template-columns: 1fr; text-align: center; } }
.my-account__tier-icon {
  font-size: 3rem; color: var(--accent);
  filter: drop-shadow(0 0 20px var(--accent));
  text-align: center;
}
.my-account__tier-body h3 { font-family: var(--serif); font-size: 1.6rem; margin: 4px 0 6px; }
.my-account__tier-body p { color: var(--ink-dim); margin: 0; }

.my-account__caps h3,
.my-account__orders h3 { font-family: var(--serif); font-size: 1.4rem; margin: 0 0 16px; }

.my-account__cap-grid {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px;
}
.my-account__cap {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px; border-radius: 12px;
  background: var(--glass); border: 1px solid var(--line);
  transition: all var(--t);
}
.my-account__cap.is-on { border-left: 3px solid var(--gold); }
.my-account__cap.is-off { opacity: .55; }
.my-account__cap-icon { font-size: 1.5rem; color: var(--gold); flex: 0 0 auto; }
.my-account__cap.is-off .my-account__cap-icon { color: var(--ink-faint); }
.my-account__cap-label { flex: 1; font-family: var(--serif); }
.my-account__cap-go { color: var(--gold-soft); font-size: .88rem; }
.my-account__cap-lock { color: var(--ink-faint); font-size: .82rem; font-style: italic; }

.my-account__order-table { width: 100%; border-collapse: collapse; }
.my-account__order-table th, .my-account__order-table td {
  padding: 10px 12px; text-align: left;
  border-bottom: 1px solid var(--line);
  font-size: .9rem;
}
.my-account__order-table th { color: var(--gold-soft); font-family: var(--serif-display); letter-spacing: .12em; text-transform: uppercase; font-size: .78rem; }
.status-pill { padding: 3px 10px; border-radius: 999px; font-size: .78rem; }
.status-pill--is-ok { background: rgba(74, 222, 128, .12); color: #86efac; }
.status-pill--is-bad { background: rgba(236, 72, 153, .12); color: #fda4af; }
.status-pill--is-pending { background: rgba(212, 175, 55, .12); color: #fde68a; }

.my-account__profile-prompt {
  background: linear-gradient(160deg, rgba(212,175,55,.15), rgba(124,58,237,.12));
  border: 1px solid var(--gold-soft);
  border-radius: var(--radius);
  padding: 36px;
  text-align: center;
}
.my-account__profile-prompt-glyph {
  display: block; font-size: 3rem; color: var(--gold);
  margin-bottom: 12px; filter: drop-shadow(0 0 24px rgba(212,175,55,.5));
  animation: halopulse 4s ease-in-out infinite;
}
.my-account__profile-prompt h3 { font-family: var(--serif); font-size: 1.8rem; margin: 0 0 12px; }
.my-account__profile-prompt p { color: var(--ink-dim); max-width: 56ch; margin: 0 auto 24px; }

.my-account__big-three h3,
.my-account__planets h3,
.my-account__numerology h3,
.my-account__today h3,
.my-account__profile-form h3,
.my-account__readings h3 {
  font-family: var(--serif); font-size: 1.4rem; margin: 0 0 18px;
}
.big-three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width:640px){ .big-three { grid-template-columns: 1fr; } }
.big-three__pillar {
  --accent: var(--gold);
  text-align: center;
  padding: 28px 20px;
  border-radius: var(--radius);
  background: radial-gradient(80% 100% at 50% 0%, color-mix(in srgb, var(--accent) 25%, transparent), rgba(0,0,0,.4));
  border: 1px solid var(--line-strong);
  position: relative; overflow: hidden;
}
.big-three__pillar::before {
  content: ""; position: absolute; top:-50%; left:-50%; width:200%; height:200%;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent) 20%, transparent), transparent 50%);
  animation: cardHaloRotate 30s linear infinite;
  pointer-events: none;
}
.big-three__symbol {
  display: block; font-size: 3.4rem; color: var(--accent);
  filter: drop-shadow(0 0 16px var(--accent));
  margin-bottom: 8px; position: relative; z-index: 1;
}
.big-three__label { color: var(--gold-soft); letter-spacing: .15em; font-size: .78rem; text-transform: uppercase; margin: 0; font-family: var(--serif-display); position: relative; z-index: 1; }
.big-three__sign { font-family: var(--serif); font-size: 1.6rem; margin: 4px 0 4px; position: relative; z-index: 1; }
.big-three__meta { color: var(--ink-dim); font-size: .9rem; margin: 0; position: relative; z-index: 1; }
.big-three__deg { color: var(--ink-faint); font-family: var(--serif-display); font-size: .82rem; margin: 4px 0 0; position: relative; z-index: 1; }

.planet-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.planet-cell {
  display: flex; flex-direction: column; gap: 4px; align-items: center;
  padding: 14px 10px; border-radius: 12px;
  background: rgba(0,0,0,.3); border: 1px solid var(--line);
  text-align: center;
}
.planet-cell__glyph { font-size: 1.6rem; color: var(--gold); }
.planet-cell__name { font-family: var(--serif-display); font-size: .82rem; letter-spacing: .12em; color: var(--ink-dim); text-transform: uppercase; }
.planet-cell__sign { font-family: var(--serif); font-size: 1.05rem; color: var(--ink); }
.planet-cell__deg { color: var(--ink-faint); font-size: .78rem; }

.num-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; }
.num-cell {
  text-align: center; padding: 24px 18px; border-radius: 14px;
  background: linear-gradient(160deg, rgba(124,58,237,.16), rgba(0,0,0,.4));
  border: 1px solid var(--line-strong);
}
.num-cell__big {
  display: block;
  font-family: var(--serif-display); font-size: 3rem; font-weight: 700;
  background: linear-gradient(135deg, var(--gold), var(--gold-soft));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.num-cell__label { display: block; color: var(--ink-dim); font-size: .9rem; margin-top: 4px; }

.personal-today { background: var(--glass); border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 24px; }
.personal-today__row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 0; border-bottom: 1px solid var(--line);
}
.personal-today__row:last-of-type { border-bottom: none; }
.personal-today__lbl { color: var(--ink-faint); font-family: var(--serif-display); letter-spacing: .12em; font-size: .78rem; text-transform: uppercase; }
.personal-today__val { font-family: var(--serif); color: var(--ink); }
.personal-today__note {
  margin: 12px 0 0; padding: 10px 14px;
  border-left: 2px solid var(--gold-soft);
  background: rgba(212, 175, 55, .06);
  border-radius: 4px; color: var(--ink); font-family: var(--serif); font-size: 1.02rem;
}

.profile-form { display: flex; flex-direction: column; gap: 16px; padding: 28px; background: var(--glass); border: 1px solid var(--line-strong); border-radius: var(--radius); }
.profile-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.profile-form label { display: flex; flex-direction: column; gap: 6px; color: var(--ink-dim); font-size: .9rem; }
.profile-form input[type=text],
.profile-form input[type=date],
.profile-form input[type=time],
.profile-form input[type=number],
.profile-form select {
  padding: 12px 14px; border-radius: 10px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1rem;
}
.profile-form input:focus, .profile-form select:focus { outline: 1px solid var(--gold); border-color: transparent; }
.profile-form__advanced { padding: 12px 14px; border: 1px dashed var(--line-strong); border-radius: 10px; }
.profile-form__advanced summary { cursor: pointer; color: var(--gold-soft); font-family: var(--serif-display); letter-spacing: .1em; font-size: .82rem; }
.profile-form__hint { color: var(--ink-faint); font-size: .8rem; margin: 8px 0 0; }
.profile-form__interests { border: 1px solid var(--line); border-radius: 12px; padding: 16px 20px; }
.profile-form__interests legend { padding: 0 8px; color: var(--gold-soft); font-family: var(--serif-display); letter-spacing: .12em; font-size: .8rem; text-transform: uppercase; }
.profile-form__chk { display: inline-flex; align-items: center; gap: 6px; margin: 6px 14px 6px 0; cursor: pointer; }
.profile-form__chk input { accent-color: var(--gold); }
.profile-form__msg { padding: 12px 16px; border-radius: 8px; font-size: .92rem; }
.profile-form__msg.is-ok { background: rgba(74, 222, 128, .12); color: #86efac; border: 1px solid rgba(74, 222, 128, .3); }
.profile-form__msg.is-error { background: rgba(236, 72, 153, .12); color: #fda4af; border: 1px solid rgba(236, 72, 153, .3); }

.support-fab {
  position: fixed; bottom: 20px; left: 20px; z-index: 55;
  display: flex; align-items: center; gap: 8px;
  padding: 12px 18px; border-radius: 999px;
  background: linear-gradient(135deg, var(--violet-deep), rgba(10,4,24,.95));
  border: 1px solid var(--violet);
  color: var(--ink); font-family: inherit; font-size: .9rem; cursor: pointer;
  box-shadow: 0 16px 32px -16px rgba(124, 58, 237, 0.6);
  transition: all var(--t);
}
.support-fab:hover { transform: translateY(-2px); border-color: var(--gold-soft); }
.support-fab__icon {
  display: grid; place-items: center;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--gold); color: #1a0c34;
  font-family: var(--serif-display); font-weight: 700;
}
@media (max-width: 600px) {
  .support-fab { bottom: 12px; left: 12px; padding: 10px 14px; font-size: .82rem; }
  .support-fab__label { display: none; }
}

.support-page { display: flex; flex-direction: column; gap: 32px; }
.support-triage {
  background: linear-gradient(180deg, var(--glass-soft), var(--glass));
  border: 1px solid var(--line-strong); border-radius: var(--radius);
  padding: 28px;
}
.support-triage__head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.support-triage__avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-soft), var(--violet-deep));
  display: grid; place-items: center; font-size: 1.4rem; color: #1a0c34;
}
.support-triage__head h2 { font-family: var(--serif); font-size: 1.4rem; margin: 0; }
.support-triage__sub { color: var(--ink-faint); font-size: .9rem; margin: 2px 0 0; }

.support-triage__transcript {
  min-height: 120px; max-height: 380px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 12px;
  margin-bottom: 14px;
}
.support-triage__form { display: flex; gap: 10px; align-items: stretch; }
.support-triage__form textarea {
  flex: 1; padding: 12px 14px; border-radius: 12px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1rem; resize: vertical; min-height: 56px;
}
.support-triage__form button { align-self: flex-end; }

.support-divider {
  position: relative; text-align: center; color: var(--ink-faint);
  font-family: var(--serif-display); letter-spacing: .12em; font-size: .82rem; text-transform: uppercase;
}
.support-divider::before, .support-divider::after {
  content: ""; position: absolute; top: 50%; width: 38%; height: 1px; background: var(--line-strong);
}
.support-divider::before { left: 0; } .support-divider::after { right: 0; }

.support-form-section h2 { font-family: var(--serif); font-size: 1.4rem; margin: 0 0 8px; }
.support-form-section > p { color: var(--ink-dim); margin: 0 0 18px; }
.support-form { display: flex; flex-direction: column; gap: 14px; padding: 24px; background: var(--glass); border: 1px solid var(--line-strong); border-radius: var(--radius); }
.support-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width:640px){ .support-form__row { grid-template-columns: 1fr; } }
.support-form label { display: flex; flex-direction: column; gap: 6px; color: var(--ink-dim); font-size: .9rem; }
.support-form input, .support-form select, .support-form textarea {
  padding: 12px 14px; border-radius: 10px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1rem;
}
.support-form input:focus, .support-form select:focus, .support-form textarea:focus { outline: 1px solid var(--gold); border-color: transparent; }
.support-form__msg { padding: 12px 16px; border-radius: 8px; font-size: .92rem; }
.support-form__msg.is-ok { background: rgba(74,222,128,.12); color: #86efac; border: 1px solid rgba(74,222,128,.3); }
.support-form__msg.is-error { background: rgba(236,72,153,.12); color: #fda4af; border: 1px solid rgba(236,72,153,.3); }

.support-history__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.support-history__item {
  display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center;
  padding: 14px 18px; border-radius: 12px;
  background: rgba(0,0,0,.25); border: 1px solid var(--line);
}
.support-history__item a { color: var(--ink); font-family: var(--serif); font-size: 1.05rem; }
.support-history__meta { color: var(--ink-faint); font-size: .82rem; }

.ticket-view {
  background: var(--glass); border: 1px solid var(--line-strong);
  border-radius: var(--radius); padding: 28px;
}
.ticket-view__head { padding-bottom: 16px; border-bottom: 1px solid var(--line); margin-bottom: 18px; }
.ticket-view__head h2 { font-family: var(--serif); font-size: 1.6rem; margin: 4px 0; }
.ticket-view__meta { color: var(--ink-faint); font-size: .88rem; margin: 0; }
.ticket-view__thread { display: flex; flex-direction: column; gap: 14px; }
.ticket-msg {
  padding: 16px 20px; border-radius: 12px;
  background: rgba(0,0,0,.25); border: 1px solid var(--line);
}
.ticket-msg--staff { background: rgba(124,58,237,.10); border-color: var(--violet); }
.ticket-msg header { color: var(--ink-faint); font-size: .88rem; margin-bottom: 8px; }
.ticket-msg header strong { color: var(--ink); }
.ticket-staff-badge { background: var(--gold-soft); color: #1a0c34; padding: 2px 10px; border-radius: 999px; font-size: .72rem; font-family: var(--serif-display); letter-spacing: .12em; text-transform: uppercase; margin-left: 8px; }
.ticket-msg div { color: var(--ink); line-height: 1.6; }
.ticket-msg div p { margin: 0 0 .8em; }
.ticket-msg div p:last-child { margin: 0; }

.ticket-reply { display: flex; flex-direction: column; gap: 10px; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.ticket-reply textarea {
  padding: 14px; border-radius: 12px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1rem; resize: vertical;
}
.ticket-reply button { align-self: flex-start; }
.ticket-reply__msg { padding: 10px 14px; border-radius: 8px; font-size: .9rem; }
.ticket-reply__msg.is-ok { background: rgba(74,222,128,.12); color: #86efac; }
.ticket-reply__msg.is-error { background: rgba(236,72,153,.12); color: #fda4af; }

.zodiac-hero, .entry__hero--illust {
  --accent: var(--gold);
  max-width: 480px;
  margin: 32px auto;
  position: relative;
}
.zodiac-hero img, .entry__hero--illust img {
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  box-shadow: 0 30px 80px -30px rgba(0,0,0,.7), 0 0 60px -20px var(--accent);
  border: 1px solid var(--line-strong);
}
.zodiac-hero::before, .entry__hero--illust::before {
  content: "";
  position: absolute; inset: -20px;
  border-radius: 24px;
  background: radial-gradient(80% 80% at 50% 50%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 60%);
  z-index: -1; pointer-events: none;
}
@media (max-width: 600px) {
  .zodiac-hero, .entry__hero--illust { max-width: 100%; margin: 20px 0; }
}

.period-tabs {
  display: flex; gap: 4px; padding: 4px;
  border-radius: 999px; background: rgba(0,0,0,.3);
  max-width: max-content; margin: 0 auto 24px;
}
.period-tabs__tab {
  padding: 10px 22px; border-radius: 999px;
  color: var(--ink-dim); font-family: var(--serif-display);
  letter-spacing: .12em; font-size: .82rem; text-transform: uppercase;
  transition: all var(--t);
}
.period-tabs__tab:hover { color: var(--ink); }
.period-tabs__tab.is-active {
  background: linear-gradient(135deg, var(--gold), var(--gold-soft));
  color: #1a0c34; font-weight: 600;
}

.events-list {
  list-style: none; counter-reset: ev; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 6px;
}
.events-list__item {
  display: grid; grid-template-columns: 80px 1fr; gap: 12px; align-items: center;
  padding: 12px 16px; border-radius: 10px;
  background: rgba(0,0,0,.25); border-left: 3px solid var(--gold-soft);
  font-size: .92rem;
}
.events-list__item.is-flow { border-left-color: #4ade80; }
.events-list__item.is-friction { border-left-color: var(--rose); }
.events-list__item.is-fuse { border-left-color: var(--gold-soft); }
.events-list__date {
  font-family: var(--serif-display); letter-spacing: .12em; font-size: .82rem;
  color: var(--gold-soft); text-transform: uppercase;
}
.events-list__line strong { color: var(--ink); }
.events-list__line em { color: var(--ink-faint); font-style: normal; font-size: .82rem; }
.events-list__sym { color: var(--gold-soft); font-family: var(--serif-display); margin: 0 4px; }

@media (max-width:640px){ .events-list__item { grid-template-columns: 1fr; gap: 4px; } }

.psychomatrix { display: flex; flex-direction: column; gap: 28px; }
.psychomatrix__head { text-align: center; }
.psychomatrix__head h2 { font-family: var(--serif); font-size: 1.8rem; margin: 6px 0 8px; }
.psychomatrix__sub { color: var(--ink-dim); margin: 0; }
.psychomatrix__sub strong { color: var(--gold-soft); }

.psy-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px;
  max-width: 460px; margin: 0 auto;
  background: var(--line-strong); padding: 4px; border-radius: 14px;
  box-shadow: 0 30px 80px -30px rgba(212,175,55,.25);
}
.psy-cell {
  aspect-ratio: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 14px 8px;
  background: rgba(10,4,24,.95);
  border-radius: 10px;
  position: relative;
  transition: all var(--t);
  cursor: help;
}
.psy-cell:hover { transform: scale(1.04); z-index: 2; }
.psy-cell--absent      { opacity: .35; background: rgba(0,0,0,.55); }
.psy-cell--hint        { background: rgba(124,58,237,.10); }
.psy-cell--normal      { background: rgba(124,58,237,.18); }
.psy-cell--enhanced    { background: linear-gradient(160deg, rgba(212,175,55,.18), rgba(124,58,237,.18)); }
.psy-cell--strong      { background: linear-gradient(160deg, rgba(212,175,55,.30), rgba(124,58,237,.20)); border: 1px solid var(--gold-soft); }
.psy-cell--overload    { background: linear-gradient(160deg, rgba(236,72,153,.25), rgba(212,175,55,.25)); border: 1px solid var(--rose); animation: psyPulse 2.4s ease-in-out infinite; }
@keyframes psyPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(236,72,153,0); } 50% { box-shadow: 0 0 30px 0 rgba(236,72,153,.3); } }

.psy-cell__num {
  position: absolute; top: 6px; left: 8px;
  font-family: var(--serif-display); font-size: .72rem; color: var(--ink-faint); letter-spacing: .15em;
}
.psy-cell__count {
  font-family: var(--serif-display); font-weight: 700;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  color: var(--gold);
  letter-spacing: .04em;
  line-height: 1;
  text-shadow: 0 0 18px rgba(212,175,55,.5);
}
.psy-cell__count--empty { color: var(--ink-faint); text-shadow: none; }
.psy-cell__name {
  position: absolute; bottom: 6px; right: 8px;
  font-family: var(--serif-display); font-size: .68rem; letter-spacing: .12em;
  color: var(--ink-dim); text-transform: uppercase;
}
.psy-cell--strong .psy-cell__name, .psy-cell--enhanced .psy-cell__name { color: var(--gold-soft); }

.psy-lines h3 { font-family: var(--serif); font-size: 1.3rem; margin: 0 0 12px; text-align: center; }
.psy-lines__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.psy-line {
  display: grid; grid-template-columns: 1fr 70px 140px 40px; gap: 12px; align-items: center;
  padding: 10px 16px; border-radius: 10px;
  background: rgba(0,0,0,.25); border-left: 3px solid var(--line-strong);
  font-size: .92rem;
}
.psy-line--missing    { opacity: .55; }
.psy-line--weak       { border-left-color: var(--rose); }
.psy-line--present    { border-left-color: var(--gold-soft); }
.psy-line--strong     { border-left-color: #4ade80; }
.psy-line--very_strong{ border-left-color: var(--gold); background: linear-gradient(135deg, rgba(212,175,55,.10), rgba(0,0,0,.25)); }
.psy-line__label { color: var(--ink); font-family: var(--serif); }
.psy-line__cells { color: var(--ink-faint); font-family: var(--serif-display); font-size: .82rem; letter-spacing: .12em; }
.psy-line__bar { height: 8px; border-radius: 999px; background: rgba(255,255,255,.05); overflow: hidden; position: relative; }
.psy-line__bar-fill { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--gold-soft)); width: var(--w); transition: width .8s cubic-bezier(.2,.8,.2,1); }
.psy-line__val { font-family: var(--serif-display); color: var(--gold-soft); text-align: right; }
.psy-lines__lead { text-align: center; color: var(--ink-dim); margin-top: 14px; }
.psy-lines__lead strong { color: var(--gold-soft); }

@media (max-width:640px){
  .psy-line { grid-template-columns: 1fr 60px; gap: 6px; }
  .psy-line__bar, .psy-line__val { display: none; }
  .psy-line__cells { font-size: .72rem; }
}

.psy-card-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width:640px){ .psy-card-row { grid-template-columns: 1fr; } }
.psy-card {
  padding: 24px; text-align: center;
  background: linear-gradient(160deg, rgba(124,58,237,.18), rgba(0,0,0,.35));
  border: 1px solid var(--line-strong); border-radius: var(--radius);
}
.psy-card__symbol {
  display: block; font-size: 3rem; color: var(--gold);
  filter: drop-shadow(0 0 20px rgba(212,175,55,.4)); margin-bottom: 6px;
}
.psy-card h4 { font-family: var(--serif); font-size: 1.4rem; margin: 4px 0 8px; }
.psy-card p { color: var(--ink-dim); margin: 0; font-family: var(--serif); font-size: .95rem; line-height: 1.55; }

.psy-karmic, .psy-decan {
  padding: 22px; border-radius: var(--radius);
  background: rgba(0,0,0,.3); border-left: 3px solid var(--rose);
}
.psy-decan { border-left-color: var(--gold); }
.psy-karmic h3, .psy-decan h3 { font-family: var(--serif); margin: 0 0 12px; font-size: 1.2rem; }
.psy-karmic ul { list-style: none; padding: 0; margin: 0; }
.psy-karmic li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.psy-karmic li:last-child { border-bottom: none; }
.psy-karmic strong { color: var(--rose); display: block; margin-bottom: 4px; }

.psy-cta { text-align: center; padding: 12px 0; }
.psy-cta__note { display: block; margin-top: 8px; color: var(--ink-faint); font-size: .82rem; }
.psy-ai-result {
  margin-top: 20px; padding: 24px 28px;
  background: rgba(0,0,0,.35); border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  font-family: var(--serif); font-size: 1.08rem; line-height: 1.7; color: var(--ink);
  white-space: pre-wrap;
}

.biorhythms { display: flex; flex-direction: column; gap: 24px; }
.biorhythms__head { text-align: center; }
.biorhythms__head h2 { font-family: var(--serif); font-size: 1.8rem; margin: 6px 0 8px; }
.biorhythms__sub { color: var(--ink-dim); margin: 0 0 16px; }
.biorhythms__picker {
  padding: 10px 16px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: 1rem;
  text-align: center; cursor: pointer;
}

.bio-grid { display: flex; flex-direction: column; gap: 10px; }
.bio-row {
  --col: var(--gold);
  display: grid; grid-template-columns: 56px 1fr 80px; gap: 16px; align-items: center;
  padding: 16px 20px; border-radius: 12px;
  background: rgba(0,0,0,.25); border: 1px solid var(--line);
  border-left: 3px solid var(--col);
}
.bio-row__symbol {
  font-size: 2rem; color: var(--col); text-align: center;
  filter: drop-shadow(0 0 12px var(--col));
}
.bio-row__name { color: var(--ink); margin: 0 0 8px; font-size: .95rem; }
.bio-row__name strong { color: var(--col); font-family: var(--serif); }
.bio-row__bar {
  position: relative; height: 14px;
  background: rgba(255,255,255,.06); border-radius: 999px; overflow: hidden;
  margin-bottom: 8px;
}
.bio-row__bar-zero {
  position: absolute; left: 50%; top: 0; bottom: 0; width: 1px;
  background: rgba(255,255,255,.2);
}
.bio-row__bar-fill {
  position: absolute; top: 0; bottom: 0;
  width: calc(var(--w, 0) / 2);
  background: linear-gradient(90deg, var(--col), color-mix(in srgb, var(--col) 50%, transparent));
  transition: width .6s cubic-bezier(.2,.8,.2,1);
}
.bio-row__bar-fill[style*="--side:left"]  { right: 50%; }
.bio-row__bar-fill[style*="--side:right"] { left: 50%; }
.bio-row__txt { color: var(--ink-dim); margin: 0; font-family: var(--serif); font-size: .98rem; }
.bio-row__pct { font-family: var(--serif-display); font-size: 1.4rem; color: var(--col); text-align: right; font-weight: 600; }

.bio-row--peak     { box-shadow: 0 0 30px -10px var(--col); }
.bio-row--critical { background: linear-gradient(135deg, rgba(236,72,153,.10), rgba(0,0,0,.3)); }

@media (max-width:640px){ .bio-row { grid-template-columns: 40px 1fr; } .bio-row__pct { display: none; } }

.my-account__notify {
  background: var(--glass);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  padding: 28px;
}
.my-account__notify h3 { font-family: var(--serif); font-size: 1.4rem; margin: 0 0 8px; }
.my-account__notify > p { color: var(--ink-dim); margin: 0 0 18px; }
.notify-options { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(0,0,0,.3); }
.notify-options__option {
  padding: 10px 22px; border-radius: 999px; cursor: pointer;
  color: var(--ink-dim); font-family: var(--serif-display);
  letter-spacing: .12em; font-size: .82rem; text-transform: uppercase;
  transition: all var(--t);
}
.notify-options__option input { display: none; }
.notify-options__option:hover { color: var(--ink); }
.notify-options__option.is-active {
  background: linear-gradient(135deg, var(--gold), var(--gold-soft));
  color: #1a0c34; font-weight: 600;
}
.notify-msg { margin-left: 12px; font-size: .92rem; }

.reading-block {
  padding: 36px;
  background: linear-gradient(160deg, rgba(124,58,237,.10), rgba(0,0,0,.4));
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  margin-bottom: 24px;
}
.reading-block--personal {
  background: linear-gradient(160deg, rgba(212,175,55,.14), rgba(124,58,237,.10), rgba(0,0,0,.45));
  border-color: var(--gold-soft);
  box-shadow: 0 30px 80px -30px rgba(212,175,55,.18);
}
.reading-block__head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line);
}
.reading-block__head h2 { font-family: var(--serif); font-size: 1.5rem; margin: 0; }
.reading-block__source {
  font-family: var(--serif-display); letter-spacing: .12em; font-size: .72rem;
  text-transform: uppercase; color: var(--gold-soft); flex: 0 0 auto;
}
.reading-block p { font-family: var(--serif); font-size: 1.12rem; line-height: 1.7; color: var(--ink); margin: 0 0 1em; }
.reading-block p:last-child { margin: 0; }

.reading-data {
  margin: 16px 0 24px;
  padding: 14px 18px;
  border: 1px dashed var(--line-strong);
  border-radius: 12px;
  background: rgba(0,0,0,.2);
}
.reading-data summary {
  cursor: pointer; color: var(--gold-soft);
  font-family: var(--serif-display); letter-spacing: .12em; font-size: .82rem;
  text-transform: uppercase; padding: 4px 0;
}
.reading-data__body { padding-top: 14px; }
.reading-data__body h4 {
  font-family: var(--serif-display); letter-spacing: .12em; font-size: .82rem;
  color: var(--ink-dim); text-transform: uppercase; margin: 0 0 10px;
}
.reading-data__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; }
.reading-data__list li { padding: 6px 12px; background: rgba(0,0,0,.25); border-radius: 8px; font-size: .92rem; color: var(--ink); }
.reading-data__list strong { color: var(--gold-soft); margin: 0 4px; }
.reading-data__ruler { color: var(--gold); font-style: italic; font-size: .82rem; margin-left: 4px; }

.reading-personal-cta {
  margin-top: 24px;
  padding: 32px;
  background: radial-gradient(80% 100% at 50% 0%, rgba(212,175,55,.15), transparent 70%), rgba(0,0,0,.3);
  border: 1px solid var(--gold-soft);
  border-radius: var(--radius);
  text-align: center;
}
.reading-personal-cta h3 { font-family: var(--serif); font-size: 1.6rem; margin: 6px 0 12px; }
.reading-personal-cta p { color: var(--ink-dim); max-width: 60ch; margin: 0 auto 14px; }

.my-account__transits {
  background: linear-gradient(160deg, rgba(124,58,237,.08), rgba(0,0,0,.3));
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  padding: 28px;
}
.my-account__transits h3 { font-family: var(--serif); font-size: 1.4rem; margin: 0 0 18px; }
.transit-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 8px; }
@media (max-width:640px){ .transit-summary { grid-template-columns: 1fr; } }
.transit-summary__item {
  display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center;
  padding: 14px 18px; border-radius: 12px;
  background: rgba(0,0,0,.3); border: 1px solid var(--line);
}
.transit-summary__big {
  font-family: var(--serif-display); font-size: 1.6rem;
  color: var(--gold-soft);
  text-align: center;
}
.transit-summary__item strong { color: var(--ink); display: block; font-family: var(--serif); font-size: 1rem; margin-bottom: 2px; }
.transit-summary__item p { color: var(--ink-dim); font-size: .88rem; margin: 0; }

.transit-aspects { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.transit-aspect {
  display: grid; grid-template-columns: 1fr auto 1fr 50px; gap: 12px; align-items: center;
  padding: 10px 14px; border-radius: 10px;
  background: rgba(0,0,0,.25); border-left: 3px solid var(--gold-soft);
  font-size: .92rem;
}
.transit-aspect.is-flow { border-left-color: #4ade80; }
.transit-aspect.is-friction { border-left-color: var(--rose); }
.transit-aspect.is-fuse { border-left-color: var(--gold-soft); }
.transit-aspect strong { color: var(--ink); }
.transit-aspect__symbol { font-family: var(--serif-display); color: var(--gold); }
.transit-aspect__name { font-size: .78rem; color: var(--ink-dim); letter-spacing: .12em; text-transform: uppercase; margin-left: 4px; }
.transit-aspect__natal { color: var(--ink-dim); }
.transit-aspect__orb { color: var(--ink-faint); font-family: var(--serif-display); text-align: right; }
@media (max-width:760px){
  .transit-aspect { grid-template-columns: 1fr; gap: 4px; }
  .transit-aspect__orb { text-align: left; }
}

.personal-daily {
  margin-top: 20px;
  padding: 24px 28px; border-radius: var(--radius);
  background: rgba(0,0,0,.35);
  border-left: 3px solid var(--gold);
  font-family: var(--serif); font-size: 1.1rem; line-height: 1.7; color: var(--ink);
}
.personal-daily p { margin: 0 0 1em; }
.personal-daily p:last-child { margin-bottom: 0; }

.readings-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.reading-item {
  display: flex; gap: 14px; padding: 14px 18px; border-radius: 12px;
  background: rgba(0,0,0,.25); border: 1px solid var(--line);
}
.reading-item__glyph { font-size: 1.6rem; color: var(--gold); flex: 0 0 auto; }
.reading-item__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 4px; }
.reading-item__kind { color: var(--gold-soft); font-family: var(--serif-display); letter-spacing: .12em; font-size: .78rem; text-transform: uppercase; }
.reading-item__when { color: var(--ink-faint); font-size: .78rem; }
.reading-item__teaser { margin: 0; color: var(--ink-dim); font-family: var(--serif); font-size: .98rem; line-height: 1.5; }

.lang-switcher { position: relative; display: inline-block; margin-right: 12px; }
.lang-switcher__current {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 12px; border-radius: 999px;
  background: var(--glass); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit; font-size: .85rem; cursor: pointer;
  transition: all var(--t);
}
.lang-switcher__current:hover { border-color: var(--gold-soft); background: var(--glass-soft); }
.lang-switcher__flag { font-size: 1rem; line-height: 1; }
.lang-switcher__code { font-family: var(--serif-display); letter-spacing: .12em; }
.lang-switcher__caret { font-size: .7rem; opacity: .7; }
.lang-switcher__list {
  position: absolute; top: calc(100% + 8px); right: 0;
  list-style: none; padding: 8px; margin: 0; min-width: 180px;
  background: rgba(10, 4, 24, .98); backdrop-filter: blur(14px);
  border: 1px solid var(--line-strong); border-radius: 14px;
  box-shadow: var(--shadow-deep);
  display: none; z-index: 100;
}
.lang-switcher.is-open .lang-switcher__list { display: block; }
.lang-switcher__list li a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: 8px;
  color: var(--ink-dim); font-size: .92rem;
  transition: all .2s;
}
.lang-switcher__list li a:hover { background: var(--glass-soft); color: var(--ink); }
.lang-switcher__list li[aria-selected="true"] a { color: var(--gold-soft); background: rgba(212, 175, 55, .08); }

@media (max-width: 880px) {
  .site-cta { display: flex !important; align-items: center; }
  .site-cta .btn { display: none; }
  .lang-switcher { margin-right: 0; }
}

[hidden] { display: none !important; }

.sticky-cta {
  position: fixed; bottom: 20px; right: 20px; z-index: 60;
  display: flex; align-items: center; gap: 12px;
  padding: 14px 18px; border-radius: 999px;
  background: linear-gradient(135deg, rgba(20,8,42,.94), rgba(10,4,24,.94));
  border: 1px solid var(--gold-soft);
  backdrop-filter: blur(10px);
  box-shadow: 0 20px 50px -20px rgba(212, 175, 55, 0.4);
  max-width: calc(100% - 40px);
  animation: slideUp 0.5s cubic-bezier(.2,.8,.2,1);
}
@keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.sticky-cta p { margin: 0; font-size: .92rem; color: var(--ink); max-width: 300px; line-height: 1.4; }
.sticky-cta__star { color: var(--gold); font-size: 1.2rem; }
.sticky-cta__close {
  background: none; border: none; color: var(--ink-faint); cursor: pointer;
  font-size: 1.4rem; line-height: 1; padding: 0 4px;
}
.sticky-cta__close:hover { color: var(--ink); }
.btn--sm { padding: 8px 14px; font-size: .88rem; }

@media (max-width: 600px) {
  .sticky-cta { bottom: 12px; right: 12px; left: 12px; flex-wrap: wrap; }
  .sticky-cta p { flex: 1 1 100%; font-size: .85rem; }
}

.exit-modal {
  position: fixed; inset: 0; z-index: 100;
  display: grid; place-items: center;
  animation: fadeIn 0.3s ease-out;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.exit-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(5,3,20,.85); backdrop-filter: blur(8px);
}
.exit-modal__panel {
  position: relative; z-index: 1;
  max-width: 520px; width: calc(100% - 32px);
  padding: 40px 32px; border-radius: var(--radius);
  background: linear-gradient(160deg, var(--bg-2), var(--bg-1));
  border: 1px solid var(--gold-soft);
  box-shadow: 0 50px 120px rgba(0,0,0,.6);
  text-align: center;
  animation: zoomIn 0.4s cubic-bezier(.2,.8,.2,1);
}
@keyframes zoomIn { from { transform: scale(.92); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.exit-modal__close {
  position: absolute; top: 12px; right: 16px;
  background: none; border: none; color: var(--ink-faint); cursor: pointer;
  font-size: 1.6rem; line-height: 1;
}
.exit-modal__close:hover { color: var(--ink); }
.exit-modal__symbol { font-size: 2.6rem; color: var(--gold); margin-bottom: 8px; }
.exit-modal h3 { font-family: var(--serif); font-size: 1.6rem; margin: 0 0 12px; }
.exit-modal p { color: var(--ink-dim); margin: 0 0 18px; }
.exit-modal__form { display: flex; gap: 10px; }
.exit-modal__form input {
  flex: 1; padding: 12px 14px; border-radius: 999px;
  background: rgba(0,0,0,.4); border: 1px solid var(--line-strong);
  color: var(--ink); font-family: inherit;
}
.exit-modal__form input:focus { outline: 1px solid var(--gold); border-color: transparent; }
.exit-modal__legal { font-size: .82rem; color: var(--ink-faint); margin-top: 12px; }

.site-footer__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.site-footer__list a { color: var(--ink-dim); }
.site-footer__list a:hover { color: var(--ink); }

@media (max-width: 880px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 580px) {
  .site-footer__grid { grid-template-columns: 1fr; }
}

.hero__moon .moon {
  display: block; width: 200px; height: 200px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff8d8 0%, #d4af37 45%, #1a0c34 100%);
  box-shadow: 0 0 80px rgba(255, 248, 216, 0.3), inset -40px -40px 80px rgba(0,0,0,.6);
}
@media (max-width: 880px) { .hero__moon { display: none; } }
