/* Night-sky theme: deep navy, soft gold (matches astro/art/signs), cream text. Mobile first, body ≥ 18 px
   (core buyer = women 40–70: high contrast, big tap targets). Fonts self-hosted per script (astro/brand/BRAND.md).
   Destina Serif = EB Garamond, Destina Sans = Manrope: both have Greek (GR market). Built by astro/brand/fonts/
   build_fonts.py WITHOUT the Bulgarian Cyrillic forms (д/т drawn like g/m), which read oddly to 60+ readers. */
@font-face { font-family: 'Destina Serif'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/assets/fonts/Destina-Serif-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2116, U+2122, U+2190-2193, U+2212; }
@font-face { font-family: 'Destina Serif'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/assets/fonts/Destina-Serif-latin-ext.woff2) format('woff2'); unicode-range: U+0100-017F, U+0218-021B, U+02C7, U+02D8-02DD, U+20A0-20AB, U+20AD-20C0; }
@font-face { font-family: 'Destina Serif'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/assets/fonts/Destina-Serif-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1; }
@font-face { font-family: 'Destina Serif'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/assets/fonts/Destina-Serif-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Destina Serif'; font-style: italic; font-weight: 400 600; font-display: swap; src: url(/assets/fonts/Destina-Serif-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2116, U+2122, U+2190-2193, U+2212; }
@font-face { font-family: 'Destina Serif'; font-style: italic; font-weight: 400 600; font-display: swap; src: url(/assets/fonts/Destina-Serif-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-017F, U+0218-021B, U+02C7, U+02D8-02DD, U+20A0-20AB, U+20AD-20C0; }
@font-face { font-family: 'Destina Serif'; font-style: italic; font-weight: 400 600; font-display: swap; src: url(/assets/fonts/Destina-Serif-italic-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1; }
@font-face { font-family: 'Destina Serif'; font-style: italic; font-weight: 400 600; font-display: swap; src: url(/assets/fonts/Destina-Serif-italic-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Destina Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(/assets/fonts/Destina-Sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2116, U+2122, U+2190-2193, U+2212; }
@font-face { font-family: 'Destina Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(/assets/fonts/Destina-Sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-017F, U+0218-021B, U+02C7, U+02D8-02DD, U+20A0-20AB, U+20AD-20C0; }
@font-face { font-family: 'Destina Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(/assets/fonts/Destina-Sans-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1; }
@font-face { font-family: 'Destina Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(/assets/fonts/Destina-Sans-greek.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }

:root {
  --bg: #0B1024; --bg2: #060917; --card: #121A38; --card2: #18224A;
  --line: rgba(226, 196, 127, .24); --line2: rgba(226, 196, 127, .5);
  --gold: #E2C47F; --gold2: #C9A961; --gold-ink: #1D1607;
  --cream: #F6EDD7; --muted: #CDC3AB; --dim: #A79F8C;
  --ok: #8FD1A6; --bad: #FF9C8F;
  --serif: 'Destina Serif', Georgia, 'Times New Roman', serif;
  --sans: 'Destina Sans', 'Segoe UI', Roboto, Arial, sans-serif;
  --r: 16px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: var(--bg2); }
body {
  margin: 0; min-height: 100vh; color: var(--cream); font: 400 18px/1.55 var(--sans);
  background:
    radial-gradient(1.2px 1.2px at 12% 18%, rgba(246,237,215,.75), transparent 60%),
    radial-gradient(1px 1px at 78% 9%, rgba(246,237,215,.6), transparent 60%),
    radial-gradient(1.4px 1.4px at 64% 31%, rgba(226,196,127,.7), transparent 60%),
    radial-gradient(1px 1px at 28% 44%, rgba(246,237,215,.45), transparent 60%),
    radial-gradient(1.2px 1.2px at 88% 52%, rgba(246,237,215,.5), transparent 60%),
    radial-gradient(1px 1px at 7% 71%, rgba(226,196,127,.55), transparent 60%),
    radial-gradient(1.3px 1.3px at 47% 83%, rgba(246,237,215,.45), transparent 60%),
    radial-gradient(1px 1px at 93% 90%, rgba(246,237,215,.5), transparent 60%),
    radial-gradient(120% 60% at 50% -10%, #1B2656 0%, rgba(11,16,36,0) 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
  background-attachment: fixed;
}
img { max-width: 100%; display: block; }
a { color: var(--gold); }
b, strong { font-weight: 600; color: #fff7e6; }
.wrap { max-width: 540px; margin: 0 auto; padding: 0 20px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.12; margin: 0 0 12px; letter-spacing: .1px; color: #FFF6E2; }
h1 { font-size: 38px; }
h2 { font-size: 31px; }
h3 { font-size: 25px; }
p { margin: 0 0 14px; }
.kicker { font: 600 14px/1.3 var(--sans); letter-spacing: 1.6px; text-transform: uppercase; color: var(--gold); margin: 0 0 12px; }
.lead { font-size: 19px; color: var(--muted); }
.muted { color: var(--muted); }
.center { text-align: center; }
.hide, [hidden] { display: none !important; }
.star { color: var(--gold); }
.orn { display: flex; align-items: center; gap: 12px; color: var(--gold2); margin: 26px 0 18px; font-size: 14px; }
.orn::before, .orn::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--line2), transparent); }

/* ---------- header / footer ---------- */
.top { display: flex; align-items: center; justify-content: center; height: 58px; font: 600 15px var(--sans); letter-spacing: 2.4px; text-transform: uppercase; color: var(--gold); }
.top a { color: inherit; text-decoration: none; }
.top > span, .top > a { display: inline-flex; align-items: center; }
.top .mark { width: 18px; height: 18px; margin: -2px 9px 0 0; } /* the Destina star (astro/brand/logo) */
.foot .foot-brand .mark { width: 15px; height: 15px; vertical-align: -2px; margin-right: 7px; }
.foot { margin-top: 56px; padding: 30px 0 46px; border-top: 1px solid var(--line); font-size: 15px; color: var(--dim); }
.foot p { margin: 0 0 10px; }
.foot .foot-brand { font: 600 15px var(--sans); letter-spacing: 2px; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }
.foot .links a { margin-right: 16px; color: var(--muted); }

/* ---------- buttons ---------- */
.btn {
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 62px; padding: 14px 22px;
  border: 0; border-radius: var(--r); cursor: pointer; text-decoration: none; text-align: center;
  font: 600 19px/1.25 var(--sans); color: var(--gold-ink);
  background: linear-gradient(180deg, #F0D89B 0%, #D9B66A 100%);
  box-shadow: 0 10px 30px -10px rgba(226, 196, 127, .55), inset 0 1px 0 rgba(255,255,255,.55);
  transition: transform .12s ease, filter .2s;
}
.btn:active { transform: scale(.985); }
.btn[disabled] { filter: grayscale(.6) brightness(.7); cursor: default; }
.btn.ghost { background: transparent; color: var(--muted); box-shadow: none; border: 1px solid var(--line); min-height: 54px; font-weight: 500; font-size: 17px; margin-top: 12px; }
.btn .arr { font-size: 22px; line-height: 1; }
.linkbtn { background: none; border: 0; color: var(--muted); font: 500 17px var(--sans); text-decoration: underline; padding: 14px; cursor: pointer; width: 100%; }

/* ---------- start screen ---------- */
.start { padding: 18px 0 30px; text-align: center; }
.start .seal { width: 112px; height: 112px; margin: 6px auto 20px; }
.start h1 { font-size: 40px; margin-bottom: 16px; }
.start .lead { margin-bottom: 26px; }
.start .note { font-size: 15px; color: var(--dim); margin-top: 12px; }
.proofs { list-style: none; padding: 0; margin: 28px 0 0; text-align: left; display: grid; gap: 12px; }
.proofs li { display: flex; gap: 12px; align-items: flex-start; font-size: 17px; color: var(--muted); }
.proofs li::before { content: '✦'; color: var(--gold); font-size: 15px; margin-top: 2px; }

/* ---------- quiz ---------- */
.qbar { position: sticky; top: 0; z-index: 5; margin: 0 -20px; padding: 10px 20px 16px; background: linear-gradient(180deg, rgba(10,14,32,.97) 72%, rgba(10,14,32,0)); }
main.wrap { min-height: calc(100vh - 58px); }
.qbar .row { display: flex; align-items: center; gap: 12px; }
.qback { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--cream); cursor: pointer; flex: none;
  display: grid; place-items: center; padding: 0; } /* drawn arrow: the ← glyph fell back to Arial and sat off-centre */
.qback svg { display: block; }
.qback[disabled] { opacity: 0; pointer-events: none; }
.progress { flex: 1; height: 6px; border-radius: 6px; background: rgba(246,237,215,.12); overflow: hidden; }
.progress i { display: block; height: 100%; width: 0; border-radius: 6px; background: linear-gradient(90deg, var(--gold2), #F3DDA2); transition: width .35s ease; }
.qcount { font-size: 14px; color: var(--dim); min-width: 52px; text-align: right; }
.qscreen { padding: 8px 0 30px; animation: rise .35s ease both; }
@keyframes rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.qscreen h2 { font-size: 32px; margin-bottom: 10px; }
.qscreen .sub { color: var(--muted); margin-bottom: 22px; }
.opts { display: grid; gap: 12px; }
.opt {
  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 66px; padding: 14px 18px; text-align: left;
  border-radius: var(--r); border: 1.5px solid var(--line); background: rgba(18, 26, 56, .78); color: var(--cream);
  font: 500 19px/1.3 var(--sans); cursor: pointer; transition: border-color .15s, background .15s;
}
.opt:hover { border-color: var(--line2); }
.opt.on { border-color: var(--gold); background: rgba(226, 196, 127, .12); }
.opt .box { width: 26px; height: 26px; border-radius: 7px; border: 1.5px solid var(--line2); flex: none; display: grid; place-items: center; font-size: 16px; color: var(--gold-ink); }
.opt.on .box { background: var(--gold); border-color: var(--gold); }
.opt .ico { font-size: 24px; width: 30px; text-align: center; color: var(--gold); flex: none; }
.statement { font-family: var(--serif); font-size: 30px; line-height: 1.2; font-style: italic; color: #FFF6E2; margin: 6px 0 26px; padding: 22px 20px; border-radius: var(--r); border: 1px solid var(--line); background: rgba(18,26,56,.6); }
.selects { display: grid; grid-template-columns: 1fr 1.6fr 1.2fr; gap: 10px; }
.selects.two { grid-template-columns: 1fr 1fr; }
.field label, .fld label { display: block; font-size: 15px; color: var(--muted); margin: 0 0 6px; }
select, input[type=text], input[type=email], input[type=tel], input[type=date], input[type=time], textarea, .fld input {
  width: 100%; min-height: 60px; padding: 14px 14px; border-radius: 14px; border: 1.5px solid var(--line2);
  background: #0E1533; color: var(--cream); font: 500 19px var(--sans); appearance: none; -webkit-appearance: none;
}
select { background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%); background-position: calc(100% - 20px) 26px, calc(100% - 14px) 26px; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 32px; }
textarea { min-height: 120px; resize: vertical; line-height: 1.45; }
select:focus, input:focus, textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(226,196,127,.2); }
::placeholder { color: #8E8774; }
.qerr, .err { color: var(--bad); font-size: 16px; margin-top: 8px; min-height: 0; }
.qnext { margin-top: 22px; }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: 16px; line-height: 1.45; color: var(--muted); margin: 16px 0 0; cursor: pointer; }

/* place picker */
.pp { position: relative; }
.pp-list { list-style: none; margin: 8px 0 0; padding: 0; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); }
.pp-list li { padding: 14px 16px; min-height: 56px; border-bottom: 1px solid rgba(226,196,127,.12); background: #0F1735; cursor: pointer; font-size: 18px; }
.pp-list li:last-child { border-bottom: 0; }
.pp-list li small { display: block; color: var(--dim); font-size: 15px; }
.pp-list li.on, .pp-list li:hover { background: #1A2350; }
.pp-chosen { margin-top: 12px; padding: 12px 14px; border-radius: 12px; background: rgba(143,209,166,.1); color: var(--ok); font-size: 17px; }
.pp-abroad { margin-top: 14px; }

/* reward (Sun sign) */
.reward { text-align: center; }
.reward .art { width: 230px; aspect-ratio: 864 / 1184; margin: 4px auto 18px; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px -20px rgba(226,196,127,.45); border: 1px solid var(--line2); animation: glow 2.4s ease both; background: var(--card); }
.reward .art img { width: 100%; height: 100%; object-fit: cover; }
@keyframes glow { from { opacity: 0; transform: scale(.94); filter: brightness(1.6); } to { opacity: 1; transform: none; filter: none; } }
.reward .teaser { text-align: left; font-size: 18px; color: var(--cream); background: rgba(18,26,56,.7); border: 1px solid var(--line); border-radius: var(--r); padding: 18px; }
.reward .after { color: var(--muted); font-size: 17px; margin-top: 16px; }

/* calc */
.calc { text-align: center; padding-top: 6px; }
.calc .wheelbox { width: min(330px, 86vw); aspect-ratio: 1; margin: 6px auto 18px; position: relative; }
.calc .wheelbox svg { width: 100%; height: 100%; }
.calc .data { color: var(--muted); font-size: 16px; margin-bottom: 14px; }
.calc ul { list-style: none; padding: 0; margin: 0 auto; max-width: 360px; text-align: left; display: grid; gap: 6px; }
.calc li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 10px; background: rgba(18,26,56,.65); font-size: 17px; animation: rise .4s ease both; }
.calc li span:last-child { color: var(--gold); }
.draw-ring { fill: none; stroke: var(--gold); stroke-width: 1.4; stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: draw 2.2s ease forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }

/* sign tiles (quiz versions A and C, first screen): 3 × 4 artwork tiles, the name over a bottom scrim */
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 4px; }
.tile { position: relative; aspect-ratio: 3 / 4; border-radius: 14px; border: 1px solid var(--line); background: var(--card) center 30% / cover no-repeat;
  box-shadow: inset 0 -46px 34px -14px rgba(6,9,23,.96); color: #FFF6E2; font: 600 16px/1.2 var(--sans); cursor: pointer; padding: 0;
  display: flex; align-items: flex-end; justify-content: center; transition: transform .12s, border-color .15s; }
.tile span { padding: 0 4px 9px; text-shadow: 0 1px 6px rgba(0,0,0,.8); }
.tile:active { transform: scale(.97); }
.tile.on { border-color: var(--gold); box-shadow: inset 0 -46px 34px -14px rgba(6,9,23,.96), 0 0 0 2px var(--gold); }
.reward .match { font-size: 17px; color: var(--gold); margin: -4px 0 12px; }
