/* The compact navigator keeps all six sections as independent, stable targets:
   a horizontal strip once hid Sky Now and Calendar at the 320px support floor. */
button,
a { touch-action: manipulation; }

.hero-art,
.related-rail a::before { pointer-events: none; }

/* The persistent navigator must never make the form beneath it look broken
   while a visitor scrolls. */
.tabbar {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .38rem;
  background: rgba(11, 11, 26, .97);
  box-shadow: 0 10px 18px rgba(8, 7, 20, .32);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  margin-bottom: .75rem;
}

/* Every tab owns the same footprint. Active state changes colour only — never
   font metrics or width — so choosing a different sky cannot shove the bar. */
.tabbar button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  min-width: 0;
  padding-inline: .5rem;
  color: #d9d1e1;
  font-weight: 700;
  letter-spacing: -.01em;
  text-align: center;
}

.tabbar button span {
  display: inline-grid;
  place-items: center;
  flex: 0 0 1.4rem;
  inline-size: 1.4rem;
  block-size: 1.4rem;
  margin: 0;
  border: 1px solid rgba(226, 199, 137, .36);
  border-radius: 50%;
  color: #efd694;
  font-family: "Apple Symbols", "Segoe UI Symbol", Georgia, serif;
  font-size: .88rem;
  line-height: 1;
}

.tabbar button[aria-selected=true] {
  color: #261936;
  font-weight: 700;
  background: linear-gradient(120deg, #d9bc7b, #fff0bf);
  box-shadow: 0 10px 28px rgba(214, 180, 116, .18);
}

.tabbar button[aria-selected=true] span {
  border-color: rgba(53, 29, 75, .3);
  background: rgba(53, 29, 75, .14);
  color: #341c4a;
}

/* A checkbox cannot be reduced to an unlabelled circle. The whole card is a
   52px+ control, has a real checked state in every engine, and retains native
   keyboard semantics through the underlying input. */
.choice-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 72px;
  margin-top: 1rem;
  padding: .75rem .9rem;
  border: 1px solid rgba(215, 194, 255, .38);
  border-radius: 1rem;
  background: rgba(185, 149, 255, .06);
  color: var(--ink);
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.choice-card:hover { border-color: rgba(239, 208, 139, .72); }

.choice-card input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  opacity: 0;
  clip-path: inset(50%);
}

.choice-indicator {
  display: grid;
  flex: 0 0 28px;
  place-items: center;
  inline-size: 28px;
  block-size: 28px;
  border: 1.5px solid rgba(215, 194, 255, .72);
  border-radius: 50%;
  color: transparent;
  font-size: .9rem;
  font-weight: 900;
  line-height: 1;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}

.choice-copy { display: grid; gap: .18rem; }
.choice-copy strong { font-size: .95rem; line-height: 1.25; }
.choice-copy small { color: var(--muted); font-size: .78rem; font-weight: 500; line-height: 1.35; }
.choice-card.is-selected { border-color: var(--gold); background: linear-gradient(120deg, rgba(239, 208, 139, .18), rgba(185, 149, 255, .12)); box-shadow: 0 10px 26px rgba(239, 208, 139, .09); }
.choice-card.is-selected .choice-indicator { border-color: var(--gold); background: var(--gold); color: #1d102b; transform: scale(1.06); }
.choice-card:has(input:focus-visible) { outline: 3px solid #e3c8ff; outline-offset: 3px; }

.form-actions { display: grid; gap: .75rem; }
.button-quiet { color: var(--muted); background: transparent; border-color: transparent; }
.button-quiet:hover { color: var(--ink); background: rgba(185, 149, 255, .08); border-color: var(--line); }

/* Separate adjacent actions everywhere, including the long Synastry form. */
.ritual-card > .button + .button,
.ritual-card > .result + .button { margin-top: .9rem; }

select:disabled { cursor: not-allowed; border-color: rgba(215, 194, 255, .18); color: rgba(250, 245, 233, .48); background-color: rgba(17, 15, 40, .54); }
#birth-time-fields:has(select:disabled) { opacity: .62; }

/* The chart result needs an actual sky to look at, not only a ledger of
   positions. This wheel is drawn from the local ChartDocument: no image, no
   remote widget and no decorative chart pretending to be calculated. */
.natal-constellation { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(15rem, .88fr); gap: 1rem; margin: 1.5rem 0; }
.natal-wheel-card, .big-three-card { min-width: 0; padding: 1.15rem; border: 1px solid rgba(240, 207, 135, .23); border-radius: 1.2rem; background: linear-gradient(140deg, rgba(37, 25, 70, .66), rgba(7, 9, 23, .56)); }
.natal-wheel-card h3, .big-three-card h3 { margin: .12rem 0 .75rem; font-size: 1.5rem; }
.natal-wheel { width: min(100%, 25rem); margin: .15rem auto .35rem; aspect-ratio: 1; }
.natal-wheel svg { display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 14px 25px rgba(0, 0, 0, .28)); }
.natal-wheel__halo { fill: rgba(6, 8, 21, .42); stroke: rgba(239, 208, 135, .42); stroke-width: .8; }
.natal-wheel__zodiac { fill: rgba(35, 25, 67, .54); stroke: rgba(215, 194, 255, .24); stroke-width: .65; }
.natal-wheel__orbit { fill: rgba(9, 10, 25, .72); stroke: rgba(239, 208, 135, .22); stroke-width: .65; }
.natal-wheel__living-orbit { fill: none; stroke: rgba(239, 208, 135, .38); stroke-width: .55; stroke-dasharray: 2 4; transform-origin: 100px 100px; animation: natal-orbit 24s linear infinite; }
.natal-wheel__segment { stroke: rgba(239, 208, 135, .28); stroke-width: .55; }
.natal-wheel__house { stroke: rgba(185, 149, 255, .31); stroke-width: .5; stroke-dasharray: 1.2 1.7; }
.natal-wheel__sign { fill: #e8cf93; font-family: "Apple Symbols", "Segoe UI Symbol", Georgia, serif; font-size: 9px; }
.natal-wheel__aspect { stroke: rgba(185, 149, 255, .34); stroke-width: .65; }
.natal-wheel__aspect--opposition { stroke: rgba(230, 162, 158, .46); }
.natal-wheel__aspect--trine { stroke: rgba(123, 185, 220, .5); }
.natal-wheel__aspect--sextile { stroke: rgba(239, 208, 135, .44); }
.natal-wheel__placement circle { fill: #17102b; stroke: #f0d08a; stroke-width: .8; }
.natal-wheel__placement text { fill: #fff4cf; font-family: "Apple Symbols", "Segoe UI Symbol", Georgia, serif; font-size: 8.3px; }
.natal-wheel__placement { transform-origin: center; animation: natal-pulse 4.8s ease-in-out infinite; animation-delay: var(--orbital-delay); }
.natal-wheel__ascendant { fill: #f6d892; stroke: #211336; stroke-width: .6; }
.big-three-list { display: grid; gap: .72rem; }
.big-three-item { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); align-items: center; gap: .72rem; min-height: 4.1rem; padding: .65rem .25rem; border-bottom: 1px solid rgba(240, 207, 135, .14); }
.big-three-item:last-child { border-bottom: 0; }
.big-three-item__symbol { display: grid; place-items: center; inline-size: 2.2rem; block-size: 2.2rem; border: 1px solid rgba(239, 208, 135, .48); border-radius: 50%; color: var(--gold); font-family: "Apple Symbols", "Segoe UI Symbol", Georgia, serif; font-size: 1.15rem; }
.big-three-item strong { display: block; color: var(--ink); font: 700 1rem Georgia, serif; }
.big-three-item small { display: block; margin-top: .18rem; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.houses-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.25rem; margin: 1.75rem 0 .85rem; }
.houses-heading h3 { margin: .1rem 0 0; }
.houses-heading .status { max-width: 42rem; margin: 0; text-align: right; }
.house-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin: 0; padding: 0; list-style: none; }
.house-card { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: .7rem; min-block-size: 8.25rem; padding: .85rem; border: 1px solid rgba(215, 194, 255, .18); border-radius: 1rem; background: radial-gradient(circle at 88% 14%, rgba(239, 208, 135, .1), transparent 5rem), rgba(8, 8, 23, .4); }
.house-card__number { display: grid; place-items: center; inline-size: 2.25rem; block-size: 2.25rem; border: 1px solid rgba(239, 208, 135, .44); border-radius: 50%; color: var(--gold); font: 700 .78rem Georgia, serif; }
.house-card strong, .house-card small { display: block; }
.house-card strong { color: var(--ink); font: 700 1rem Georgia, serif; }
.house-card small { margin-top: .16rem; color: var(--gold); font-size: .73rem; }
.house-card p { margin: .44rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.4; }

/* Calendar entries are little lunar portraits, not a dense timestamp list. */
.moon-phase-list { list-style: none; padding-left: 0; gap: .85rem; }
.moon-event { display: grid; grid-template-columns: 74px minmax(0, 1fr); align-items: center; gap: .85rem; min-height: 86px; padding: .65rem .75rem; border: 1px solid rgba(240, 207, 135, .18); border-radius: 1rem; background: linear-gradient(135deg, rgba(239, 208, 139, .08), rgba(185, 149, 255, .06)); }
.moon-event__art { display: grid; place-items: center; inline-size: 70px; block-size: 70px; border-radius: 50%; background: radial-gradient(circle, rgba(239, 208, 135, .14), transparent 68%); }
.moon-phase-art { display: block; inline-size: 64px; block-size: 64px; filter: drop-shadow(0 8px 12px rgba(0, 0, 0, .42)); }
.moon-halo { fill: none; stroke: rgba(239, 208, 135, .42); stroke-width: 1; }
.moon-disc { stroke: rgba(255, 246, 211, .44); stroke-width: 1; }
.moon-crater { fill: rgba(96, 65, 97, .26); }
.moon-crater--two { fill: rgba(96, 65, 97, .2); }
.moon-shadow { fill: #171328; opacity: .88; }
.moon-phase-art--new .moon-disc { fill: #1b1630; }
.moon-phase-art--new .moon-shadow { fill: #090814; opacity: .78; }
.moon-phase-art--new .moon-crater { opacity: .22; }
.moon-event__copy { display: grid; gap: .2rem; min-width: 0; }
.moon-event__copy strong { color: var(--ink); font: 700 1.04rem Georgia, serif; }
.moon-event__copy small { color: var(--muted); line-height: 1.4; }

/* A tactile, sign-led daily forecast: real sky facts stay distinct from the
   symbolic reading they inspire. */
.forecast-shell { display: grid; gap: 1.25rem; margin-top: 2rem; }
.zodiac-picker { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .5rem; }
.zodiac-sign { display: grid; place-content: center; gap: .18rem; min-height: 68px; padding: .5rem .2rem; border: 1px solid rgba(215, 194, 255, .2); border-radius: 1rem; background: rgba(9, 8, 22, .42); color: var(--muted); cursor: pointer; font-size: .7rem; line-height: 1.1; }
.zodiac-sign span { color: var(--gold); font-family: "Apple Symbols", "Segoe UI Symbol", "Noto Sans Symbols 2", Georgia, serif; font-size: 1.35rem; font-variant-emoji: text; line-height: 1; }
.zodiac-sign.is-active { border-color: var(--gold); background: linear-gradient(135deg, rgba(239, 208, 135, .22), rgba(185, 149, 255, .12)); color: var(--ink); box-shadow: 0 10px 24px rgba(239, 208, 135, .08); }
.forecast-card { position: relative; overflow: hidden; padding: clamp(1.2rem, 3vw, 2.2rem); border: 1px solid rgba(240, 207, 135, .3); border-radius: 1.4rem; background: radial-gradient(circle at 86% 8%, rgba(185, 149, 255, .25), transparent 26rem), linear-gradient(140deg, rgba(36, 25, 69, .96), rgba(10, 14, 39, .96)); box-shadow: 0 24px 64px rgba(0, 0, 0, .28); }
.forecast-card { min-block-size: 930px; background: radial-gradient(circle at 86% 8%, rgba(166, 124, 178, .22), transparent 26rem), linear-gradient(140deg, rgba(31, 22, 55, .98), rgba(8, 11, 27, .98)); }
.forecast-card[aria-busy=true] { opacity: .82; }
.forecast-card::after { content: ""; position: absolute; inset: auto -10% -26% auto; inline-size: 18rem; aspect-ratio: 1; border: 1px solid rgba(239, 208, 135, .2); border-radius: 50%; box-shadow: 0 0 0 1.5rem rgba(239, 208, 135, .035), 0 0 0 3rem rgba(185, 149, 255, .035); pointer-events: none; }
.forecast-card__header { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.forecast-glyph { display: grid; place-items: center; flex: 0 0 4.25rem; inline-size: 4.25rem; block-size: 4.25rem; border: 1px solid rgba(239, 208, 135, .56); border-radius: 50%; color: var(--gold); font-family: "Apple Symbols", "Segoe UI Symbol", "Noto Sans Symbols 2", Georgia, serif; font-size: 2.25rem; font-variant-emoji: text; line-height: 1; box-shadow: inset 0 0 1.5rem rgba(239, 208, 135, .1), 0 0 2rem rgba(185, 149, 255, .14); }
.forecast-card h3 { position: relative; min-block-size: 3.15em; margin: .25rem 0 .75rem; max-width: 19ch; font-size: clamp(2.15rem, 5vw, 3.8rem); }
.forecast-reading { position: relative; min-block-size: 8.75rem; max-width: 58ch; color: #eee6f3; font-size: 1.06rem; line-height: 1.65; }
.forecast-celestial { position: relative; display: grid; grid-template-columns: 5.2rem minmax(0, 1fr); align-items: center; gap: 1rem; min-block-size: 6.6rem; margin: 1rem 0; padding: .8rem; border: 1px solid rgba(239, 208, 135, .2); border-radius: 1rem; background: linear-gradient(100deg, rgba(239, 208, 135, .08), rgba(185, 149, 255, .05)); }
.forecast-celestial h4 { margin: .12rem 0 .3rem; color: var(--ink); font: 700 1.08rem Georgia, serif; }
.forecast-celestial .status { margin: 0; line-height: 1.45; }
.forecast-moon { position: relative; inline-size: 4.4rem; block-size: 4.4rem; border: 1px solid rgba(255, 243, 200, .58); border-radius: 50%; overflow: hidden; background: radial-gradient(circle at 34% 29%, #fff8d4, #e7ca82 45%, #8e5d78 100%); box-shadow: 0 0 0 .45rem rgba(239, 208, 135, .05), 0 0 1.8rem rgba(185, 149, 255, .26); animation: forecast-moon-breathe 5.2s ease-in-out infinite; }
.forecast-moon::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(11, 10, 27, .88); transform: translateX(-100%); transition: transform .45s ease; }
.forecast-moon[data-phase="new-moon"]::before { transform: translateX(0); }
.forecast-moon[data-phase="waxing-crescent"]::before, .forecast-moon[data-phase="first-quarter"]::before { transform: translateX(-42%); }
.forecast-moon[data-phase="waxing-gibbous"]::before { transform: translateX(-18%); }
.forecast-moon[data-phase="full-moon"]::before { transform: translateX(-100%); }
.forecast-moon[data-phase="waning-gibbous"]::before { transform: translateX(18%); }
.forecast-moon[data-phase="last-quarter"]::before, .forecast-moon[data-phase="waning-crescent"]::before { transform: translateX(42%); }
.forecast-moon i { position: absolute; inset: 20% 18% auto auto; inline-size: .45rem; block-size: .45rem; border-radius: 50%; background: rgba(89, 59, 83, .26); box-shadow: -1.3rem 1.4rem 0 .13rem rgba(89, 59, 83, .2); }
.forecast-sky { position: relative; display: flex; flex-wrap: wrap; align-content: flex-start; min-block-size: 4.75rem; gap: .5rem; margin: 1.25rem 0; }
.forecast-sky span { padding: .45rem .65rem; border: 1px solid rgba(215, 194, 255, .2); border-radius: 999px; background: rgba(7, 7, 19, .33); color: #e6dcec; font-size: .78rem; line-height: 1.25; }
.fate-line { position: relative; display: flex; align-items: center; gap: .5rem; margin: 1.55rem 0; color: var(--gold); }
.fate-line::before { content: "Line of the day"; color: var(--gold); font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.fate-line span { flex: 1; min-inline-size: 2rem; block-size: 1px; background: linear-gradient(90deg, var(--gold), rgba(185, 149, 255, .18)); }
.fate-line i { inline-size: .48rem; block-size: .48rem; border: 1px solid var(--gold); border-radius: 50%; background: #24184b; }
.fate-line i:nth-of-type(2) { transform: scale(1.35); background: var(--gold); box-shadow: 0 0 1rem var(--gold); }
.forecast-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.forecast-grid section { min-block-size: 9.7rem; padding: 1rem; border-radius: 1rem; background: rgba(5, 5, 17, .36); }
.forecast-grid section > p:last-child { margin: 0; color: #eee6f3; line-height: 1.55; }
.forecast-care { border: 1px solid rgba(239, 208, 135, .26); }
.forecast-disclaimer { position: relative; margin: 1.25rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.forecast-mantra { position: relative; margin: 1.25rem 0 0; padding: .9rem 1rem; border-left: 1px solid var(--gold); color: #f3e9ca; font: italic 1.08rem/1.5 Georgia, serif; }

/* The review surface owns one deliberately quiet, below-the-fold placement.
   An unwired unit is invisible; when an approved unit is later connected, its
   fixed frame exists before the lazy Google library reaches it. */
.sf-adslot { min-block-size: 13rem; max-width: 46rem; margin: 0 auto 3rem; padding: 1rem; border: 1px solid rgba(239, 208, 135, .22); border-radius: 1rem; background: rgba(7, 7, 19, .26); color: var(--muted); }
.sf-adslot > p { margin: 0; color: var(--gold); font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.sf-adslot[data-ad-unit=""] { display: none; }
.sf-adslot[data-sf-adslot-state="loading"] { display: block; }

@keyframes natal-orbit { to { rotate: 360deg; } }
@keyframes natal-pulse { 0%,100% { opacity: .9; } 50% { opacity: 1; filter: drop-shadow(0 0 2px #f3d68d); } }
@keyframes forecast-moon-breathe { 0%,100% { scale: .96; box-shadow: 0 0 0 .45rem rgba(239, 208, 135, .05), 0 0 1.5rem rgba(185, 149, 255, .2); } 50% { scale: 1.04; box-shadow: 0 0 0 .56rem rgba(239, 208, 135, .08), 0 0 2.1rem rgba(185, 149, 255, .36); } }

.visible-stars { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.visible-stars h3 { margin: .15rem 0 .4rem; font-size: 1.65rem; }
.visible-stars-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: 1rem; }
.star-card { min-height: 140px; padding: 1rem; border: 1px solid rgba(215, 194, 255, .18); border-radius: 1rem; background: radial-gradient(circle at 82% 18%, rgba(239, 208, 135, .14), transparent 5rem), rgba(8, 8, 23, .46); }
.star-card h4 { margin: 0; color: var(--gold); font: 1.2rem Georgia, serif; }
.star-card p { margin: .55rem 0 0; color: #e5ddea; font-size: .88rem; line-height: 1.5; }
.star-card__meta { color: var(--muted) !important; font-size: .74rem !important; }

/* A calmer, more expensive-feeling night: ink-black field, antique gold and
   restrained amethyst rather than a bright generic purple wash. */
:root { --night: #070810; --ink: #fffaf1; --muted: #c8c0cf; --gold: #dec68e; --violet: #a58abc; --blue: #5d7ab1; --line: rgba(222, 198, 142, .22); }
body { background: radial-gradient(ellipse at 18% 4%, #2a1c48 0, transparent 34rem), radial-gradient(ellipse at 88% 28%, #102c59 0, transparent 34rem), linear-gradient(160deg, #070810, #0a0d1b 52%, #06070e); }
.tab-panel { background: linear-gradient(145deg, rgba(27, 20, 52, .94), rgba(9, 12, 27, .96)); box-shadow: 0 32px 82px rgba(0, 0, 0, .34); }

/* Static information pages have a genuine compact navigation, rather than
   running its links together on iPhone Safari. */
.site-header nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; }
.site-header nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); text-underline-offset: .28rem; }

@media (max-width: 720px) {
  .hero {
    gap: 1rem;
    padding: 1.25rem 0 1.75rem;
  }

  .hero-art {
    width: min(52vw, 230px);
  }

  .site-header:has(nav) { gap: .7rem; }
  .site-header:has(nav) .brand { flex: 1 1 auto; }
  .site-header:has(nav) nav { flex: 0 1 auto; gap: .45rem; font-size: .84rem; }

  .hero h1 {
    font-size: clamp(2.65rem, 12vw, 3.35rem);
  }

  .hero-copy > p:not(.eyebrow) {
    margin-block: .8rem;
    font-size: 1rem;
  }
  .zodiac-picker { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .natal-constellation { grid-template-columns: 1fr; }
  .natal-wheel { max-width: 19rem; }
  .house-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .houses-heading { display: block; }
  .houses-heading .status { margin-top: .5rem; text-align: left; }
  .forecast-grid, .visible-stars-list { grid-template-columns: 1fr; }
  .forecast-card { min-block-size: 1510px; }
  .forecast-sky { min-block-size: 6.5rem; }
}

@media (max-width: 420px) {
  .site-header:has(nav) { align-items: flex-start; }
  .site-header:has(nav) nav { gap: .3rem; font-size: .76rem; }
  .moon-event { grid-template-columns: 62px minmax(0, 1fr); min-height: 78px; padding: .55rem .6rem; }
  .moon-event__art { inline-size: 58px; block-size: 58px; }
  .moon-phase-art { inline-size: 54px; block-size: 54px; }
  .forecast-card h3 { font-size: 2.1rem; }
  .zodiac-sign { min-height: 62px; }
  .forecast-card { min-block-size: 2240px; }
  .house-gallery { grid-template-columns: 1fr; }
}

@media (min-width: 361px) and (max-width: 420px) {
  .forecast-card { min-block-size: 2240px; }
}

@media (max-width: 480px) {
  .tabbar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .2rem;
    overflow: clip;
    padding: .55rem 0 .7rem;
  }

  .tabbar button {
    display: grid;
    place-content: center;
    min-width: 0;
    min-height: 54px;
    padding: .35rem .05rem;
    font-size: .68rem;
    line-height: 1.08;
    letter-spacing: -.025em;
    white-space: normal;
  }

  .tabbar button span {
    display: grid;
    margin: 0 0 .16rem;
    justify-self: center;
    font-size: .92rem;
  }

}

@media (prefers-reduced-motion: reduce) {
  .choice-card,
  .choice-indicator,
  .natal-wheel__living-orbit,
  .natal-wheel__placement,
  .forecast-moon { transition: none; animation: none; }
}

@media (max-width: 360px) {
  .date-grid,
  .compact,
  .time-grid { grid-template-columns: 1fr; }

  .date-grid label:last-child,
  .compact label:last-child { grid-column: auto; }
}
