:root{--bg-0:#15102e;--bg-1:#221945;--bg-2:#2c2056;--gold:#f4c95d;--gold-soft:#f9e3a6;--rose:#e89bb0;--cream:#f6efe4;--muted:#b3a7d6;--line:#f4c95d38;--card-line:#f6efe424;--font-display:"Fraunces", Georgia, serif;--font-body:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-0);color:var(--cream);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100%}body{background:radial-gradient(1200px 700px at 50% -10%, var(--bg-2), transparent 60%), radial-gradient(900px 600px at 80% 110%, #3a2566, transparent 55%), linear-gradient(180deg, var(--bg-1), var(--bg-0));background-attachment:fixed}.sky{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.star{background:var(--cream);opacity:.5;border-radius:50%;width:2px;height:2px;animation:4s ease-in-out infinite twinkle;position:absolute}.star.big{background:var(--gold-soft);width:3px;height:3px}@keyframes twinkle{0%,to{opacity:.2}50%{opacity:.9}}.wrap{z-index:1;flex-direction:column;max-width:560px;min-height:100vh;margin:0 auto;padding:40px 22px 80px;display:flex;position:relative}.brand{font-family:var(--font-display);letter-spacing:.5px;color:var(--cream);align-items:center;gap:9px;font-size:20px;display:flex}.brand .dot{color:var(--gold);font-size:22px;line-height:0}.hero{margin-top:44px}.eyebrow{letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);font-size:12px;font-weight:600}.hero h1{font-family:var(--font-display);letter-spacing:-.5px;margin:14px 0 12px;font-size:clamp(34px,9vw,50px);font-weight:400;line-height:1.05}.hero h1 em{color:var(--gold-soft);font-style:italic}.hero p{color:var(--muted);max-width:42ch;font-size:16px;line-height:1.55}.card{border:1px solid var(--card-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff09;border-radius:20px;margin-top:30px;padding:22px 20px 24px}.field{margin-bottom:20px}.field:last-child{margin-bottom:0}.label{letter-spacing:.3px;color:var(--cream);margin-bottom:10px;font-size:13px;font-weight:600;display:block}.label .hint{color:var(--muted);font-weight:400}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font-family:var(--font-body);color:var(--cream);border:1px solid var(--card-line);cursor:pointer;background:0 0;border-radius:999px;padding:8px 13px;font-size:14px;transition:border-color .15s,background .15s,transform .1s}.chip:hover{border-color:var(--line)}.chip[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:#2a1f08;font-weight:600}.chip:active{transform:scale(.97)}.zodiac-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.zchip{border:1px solid var(--card-line);color:var(--cream);cursor:pointer;font-family:var(--font-body);background:0 0;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;transition:border-color .15s,background .15s,transform .1s;display:flex}.zchip .glyph{color:var(--gold-soft);font-size:20px;line-height:1}.zchip .nm{color:var(--muted);font-size:11px}.zchip:hover{border-color:var(--line)}.zchip[aria-pressed=true]{border-color:var(--gold);background:#f4c95d24}.zchip[aria-pressed=true] .nm{color:var(--cream)}.zchip:active{transform:scale(.97)}.text-input{width:100%;font-family:var(--font-body);color:var(--cream);border:1px solid var(--card-line);background:#0003;border-radius:12px;padding:12px 14px;font-size:15px}.text-input::placeholder{color:#b3a7d6b3}.text-input:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:#0000}.cta{width:100%;font-family:var(--font-body);color:#2a1f08;background:linear-gradient(180deg, var(--gold-soft), var(--gold));cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:9px;margin-top:26px;padding:15px 20px;font-size:16px;font-weight:600;transition:transform .1s,filter .15s;display:inline-flex}.cta:hover{filter:brightness(1.04)}.cta:active{transform:scale(.99)}.cta:disabled{opacity:.6;cursor:default}.err{color:var(--rose);text-align:center;margin-top:14px;font-size:14px}.result{text-align:center;border:1px solid var(--line);background:radial-gradient(420px 220px at 50% 0,#f4c95d29,#0000 70%),#ffffff08;border-radius:22px;margin-top:28px;padding:34px 26px 30px;animation:.5s both rise}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.result .sign{letter-spacing:2px;text-transform:uppercase;color:var(--gold);font-size:13px}.result .sign .g{font-size:16px}.result .name{font-family:var(--font-display);color:var(--cream);margin:12px 0 14px;font-size:clamp(44px,13vw,68px);font-style:italic;font-weight:500;line-height:1.02}.result .reason{color:var(--muted);max-width:32ch;margin:0 auto;font-size:16px;line-height:1.5}.result-actions{justify-content:center;gap:10px;margin-top:24px;display:flex}.ghost{font-family:var(--font-body);color:var(--cream);border:1px solid var(--card-line);cursor:pointer;background:0 0;border-radius:12px;padding:11px 16px;font-size:14px;font-weight:500;transition:border-color .15s,transform .1s}.ghost:hover{border-color:var(--line)}.ghost:active{transform:scale(.98)}.keepsake{border:1px dashed var(--line);text-align:center;background:#e89bb00f;border-radius:18px;margin-top:18px;padding:20px}.keepsake h3{font-family:var(--font-display);margin-bottom:6px;font-size:21px;font-weight:500}.keepsake p{color:var(--muted);margin-bottom:16px;font-size:14px;line-height:1.5}.keepsake .price{color:var(--gold-soft);font-weight:600}.overlay{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0718b8;justify-content:center;align-items:center;padding:22px;animation:.2s both fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:linear-gradient(180deg, var(--bg-2), var(--bg-1));border:1px solid var(--line);border-radius:20px;width:100%;max-width:400px;padding:26px 22px 24px;position:relative}.modal h3{font-family:var(--font-display);margin-bottom:8px;font-size:23px;font-weight:500}.modal p{color:var(--muted);margin-bottom:18px;font-size:14px;line-height:1.55}.modal .text-input{margin-bottom:12px}.modal .close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1;position:absolute;top:14px;right:14px}.thanks{text-align:center;padding:8px 0 4px}.thanks .big{font-size:34px}.thanks h3{margin:10px 0 8px}.foot{text-align:center;color:var(--muted);margin-top:auto;padding-top:40px;font-size:12px}@media (prefers-reduced-motion:reduce){.star{opacity:.5;animation:none}.result,.overlay{animation:none}}
