:root{--brand-50:#fdf2f2;--brand-100:#f8d7d7;--brand-300:#d47272;--brand-400:#b94545;--brand-500:#8b1a1a;--brand-600:#751616;--brand-700:#5f1212;--cream:#fdfaf4;--card:#fff;--line:#eee5d7;--ink:#2a2320;--ink-soft:#6b5d52;--muted:#9c8e80;--gold:#c99a3b;--gold-deep:#b07d1e;--gold-soft:#e8c97a;--gold-wash:#f7ecd0;--teal:#2dd4bf;--teal-deep:#1b897b;--rose:#ec4899;--rose-deep:#c2568a;--success:#059669;--success-bg:#ecfdf5;--warning:#d97706;--warning-bg:#fffbeb;--error:#dc2626;--error-bg:#fef2f2;--sp-xs:4px;--sp-sm:8px;--sp-md:12px;--sp-lg:16px;--sp-xl:20px;--sp-2xl:24px;--sp-3xl:32px;--sp-4xl:40px;--sp-5xl:48px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-full:9999px;--shadow-card:0 1px 2px #4a0e0e0a, 0 18px 44px -26px #4a0e0e38;--shadow-btn:0 10px 24px -10px #8b1a1a8c;--font-body:"Noto Sans Devanagari", system-ui, -apple-system, sans-serif;--font-serif:"Noto Serif Devanagari", "Cormorant Garamond", Georgia, serif;--font-num:"Cormorant Garamond", Georgia, serif}*{box-sizing:border-box}body{color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background:radial-gradient(900px 340px at 50% -190px, #c99a3b0f, transparent 72%), var(--cream);background-attachment:fixed;margin:0;line-height:1.6}.app-header{-webkit-backdrop-filter:blur(10px);align-items:center;gap:var(--sp-sm);min-height:62px;padding:var(--sp-sm) clamp(16px, 4vw, 40px);z-index:20;background:#fdfaf4cc;border-bottom:1px solid #c99a3b29;display:flex;position:sticky;top:0}.app-header__back{cursor:pointer;color:var(--brand-500);border-radius:var(--r-full);background:0 0;border:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:22px;line-height:1;transition:background .15s;display:flex}.app-header__back[hidden]{display:none}.app-header__back:hover{background:#8b1a1a14}.brand{align-items:center;gap:9px;display:inline-flex}.brand__icon{width:auto;height:40px;display:block}.brand__word{width:auto;height:22px;display:block}.page{max-width:980px;margin:0 auto;padding:clamp(28px,3vw,40px) clamp(16px,4vw,24px) 64px}#form-view{flex-direction:column;justify-content:center;min-height:calc(100vh - 190px);display:flex}#form-view[hidden]{display:none}.intro{text-align:center;margin-bottom:34px;animation:.55s ease-out both fadeSlideUp}.intro__eyebrow{letter-spacing:.04em;color:var(--gold-deep);margin:0 0 14px;font-size:12.5px;font-weight:600}.intro__title{font-family:var(--font-serif);color:var(--brand-700);margin:0;font-size:clamp(38px,5.5vw,56px);font-weight:600;line-height:1.2}.intro__sub{max-width:32em;color:var(--ink-soft);margin:16px auto 0;font-size:clamp(15px,1.6vw,17px);line-height:1.6}.flourish{justify-content:center;align-items:center;gap:var(--sp-md);margin-top:24px;display:flex}.flourish:before,.flourish:after{content:"";background:linear-gradient(90deg, transparent, var(--gold));width:clamp(48px,12vw,84px);height:1px}.flourish:after{background:linear-gradient(90deg, var(--gold), transparent)}.flourish span{background:var(--gold);width:8px;height:8px;transform:rotate(45deg);box-shadow:0 0 0 4px #c99a3b26}.toggle-wrap{justify-content:center;margin-bottom:30px;display:flex}.pill-tabs{gap:var(--sp-xs);border:1px solid var(--line);border-radius:var(--r-full);background:#8b1a1a0f;padding:5px;display:inline-flex}.pill{cursor:pointer;font-family:var(--font-body);color:var(--ink-soft);border-radius:var(--r-full);background:0 0;border:none;padding:9px 22px;font-size:14px;font-weight:600;transition:background .18s,color .18s,box-shadow .18s}.pill.active{color:#fff;box-shadow:var(--shadow-btn);background:linear-gradient(#9b2020,#7a1616)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:24px}.card__title{font-family:var(--font-serif);color:var(--ink);margin:0 0 var(--sp-lg);align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.card__title:before{content:"";background:var(--gold);flex:none;width:7px;height:7px;transform:rotate(45deg)}.people{grid-template-columns:1fr 1fr;gap:clamp(16px,2.5vw,24px);display:grid}@media (width<=720px){.people{grid-template-columns:1fr}}.pcard{position:relative;overflow:hidden}.pcard:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.pcard--groom{animation:.55s ease-out .12s both fadeSlideUp}.pcard--bride{animation:.55s ease-out .2s both fadeSlideUp}.pcard--groom:before{background:linear-gradient(90deg, var(--teal), var(--teal-deep))}.pcard--bride:before{background:linear-gradient(90deg, #f49ac2, var(--rose-deep))}.pcard__head{align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-xl);display:flex}.pcard__badge{border-radius:var(--r-md);flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;display:flex}.pcard--groom .pcard__badge{color:var(--teal-deep);background:#2dd4bf24}.pcard--bride .pcard__badge{color:var(--rose-deep);background:#ec48991f}.pcard__title{font-family:var(--font-serif);color:var(--ink);margin:0;font-size:20px;font-weight:600}.pcard__sub{color:var(--muted);margin:2px 0 0;font-size:12.5px}.field{margin-bottom:var(--sp-lg)}.field:last-child{margin-bottom:0}.field-row{gap:var(--sp-md);display:flex}.field-row .field{flex:1}.field label{letter-spacing:.02em;color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input,.field select{width:100%;font-family:var(--font-body);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:13px 15px;font-size:15.5px;transition:border-color .16s,box-shadow .16s}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%238B1A1A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 15px center;background-repeat:no-repeat;background-size:12px;padding-right:40px}.field input:focus,.field select:focus{border-color:var(--brand-400);outline:none;box-shadow:0 0 0 3px #8b1a1a1f}.mode-note{text-align:center;color:var(--muted);margin:var(--sp-xl) 0 0;font-size:12.5px;font-weight:500}form[data-mode=birth_details] .kundali-fields,form[data-mode=kundali] .birth-fields{display:none}.actions{flex-direction:column;align-items:center;margin-top:34px;display:flex}.btn-primary{min-width:300px;font-family:var(--font-body);letter-spacing:.02em;color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-btn);cursor:pointer;background:linear-gradient(#9b2020,#7a1616);border:1px solid #c99a3b8c;padding:16px 40px;font-size:16px;font-weight:600;transition:transform .15s,box-shadow .15s,filter .15s}.btn-primary:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 14px 30px -10px #8b1a1aa6}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:default}.trust{margin:var(--sp-lg) 0 0;color:var(--muted);align-items:center;gap:7px;font-size:13px;display:flex}.trust:before{content:"";background:var(--gold);width:6px;height:6px;transform:rotate(45deg)}.legal{max-width:36em;color:var(--muted);text-align:center;margin:10px auto 0;font-size:12px;line-height:1.6}.spinner{border-radius:var(--r-full);vertical-align:middle;border:2px solid #fff6;border-top-color:#fff;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.form-error{text-align:center;color:var(--error);margin:var(--sp-md) 0 0;font-size:14px;font-weight:500}#result{max-width:560px;margin:0 auto}.result-enter{animation:.32s ease-out both fadeSlideUp}.result-enter .card{margin-bottom:var(--sp-lg)}.hero{text-align:center;padding:clamp(28px, 4vw, 40px) var(--sp-lg);position:relative;overflow:hidden}.hero__eyebrow{margin:0 0 var(--sp-lg);letter-spacing:.14em;color:var(--gold-deep);font-size:12px;font-weight:600}.score-ring{border-radius:var(--r-full);border:6px solid var(--muted);background:var(--card);width:132px;height:132px;margin:0 auto var(--sp-lg);flex-direction:column;justify-content:center;align-items:center;animation:.5s cubic-bezier(.34,1.56,.64,1) both ringPop;display:flex}.score-ring__num{font-family:var(--font-num);font-size:48px;font-weight:700;line-height:1}.score-ring__den{letter-spacing:.06em;color:var(--ink-soft);margin-top:3px;font-size:12px}.verdict{font-family:var(--font-serif);font-size:24px;font-weight:600}.verdict-sub{margin-top:var(--sp-xs);color:var(--gold-deep);font-size:14px;font-weight:600}.score-ring.band-error{border-color:var(--error);background:linear-gradient(180deg, var(--error-bg), #fff);box-shadow:0 0 0 6px #dc26260f,0 18px 42px -20px #dc262673}.score-ring.band-warning{border-color:var(--warning);background:linear-gradient(180deg, var(--warning-bg), #fff);box-shadow:0 0 0 6px #d977060f,0 18px 42px -20px #d977066b}.score-ring.band-success{border-color:var(--success);background:linear-gradient(180deg, var(--success-bg), #fff);box-shadow:0 0 0 6px #0596690f,0 18px 42px -20px #05966973}.score-ring.band-error .score-ring__num{color:var(--error)}.score-ring.band-warning .score-ring__num{color:var(--warning)}.score-ring.band-success .score-ring__num{color:var(--success)}.verdict.band-error{color:var(--error)}.verdict.band-warning{color:var(--warning)}.verdict.band-success{color:var(--success)}.koota-row{margin-bottom:var(--sp-lg);animation:.22s ease-out both fadeSlideUp}.koota-row:last-of-type{margin-bottom:0}.koota-row__head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.koota-row__name{color:var(--ink);font-size:14.5px}.koota-row__score{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.koota-bar{border-radius:var(--r-full);background:#8b1a1a0f;height:8px;overflow:hidden}.koota-bar__fill{border-radius:var(--r-full);transform-origin:0;height:100%;animation:.64s ease-out both barGrow}.fill-success{background:linear-gradient(90deg,#34d399,#059669)}.fill-warning{background:linear-gradient(90deg,#fbbf24,#d97706)}.fill-error{background:linear-gradient(90deg,#f87171,#dc2626)}.koota-total{border-top:1px solid var(--line);padding-top:var(--sp-lg);margin-top:var(--sp-xl);justify-content:space-between;align-items:center;display:flex}.koota-total__label{font-family:var(--font-serif);color:var(--ink);font-size:17px;font-weight:600}.koota-total__val{font-family:var(--font-num);font-size:26px;font-weight:700}.koota-total__val.band-error{color:var(--error)}.koota-total__val.band-warning{color:var(--warning)}.koota-total__val.band-success{color:var(--success)}.dosha{padding:var(--sp-md) 0;border-bottom:1px solid var(--line)}.dosha:first-child{padding-top:0}.dosha:last-of-type{border-bottom:none}.dosha__head{justify-content:space-between;align-items:center;gap:var(--sp-sm);display:flex}.dosha__name{color:var(--ink);font-size:14.5px;font-weight:600}.dosha__note{color:var(--ink-soft);margin:5px 0 0;font-size:13px;line-height:1.6}.dosha-chip{border-radius:var(--r-full);white-space:nowrap;padding:3px 11px;font-size:12px;font-weight:600}.chip--ok{background:var(--success-bg);color:var(--success)}.chip--bad{background:var(--error-bg);color:var(--error)}.chip--muted{color:var(--muted);background:#0000000d}.disclaimer{margin:var(--sp-lg) 0 0;padding-top:var(--sp-md);border-top:1px solid var(--line);color:var(--muted);text-align:center;font-size:12px;font-weight:500;line-height:1.6}.ktable__head,.krow{align-items:center;display:flex}.ktable__head{border-bottom:2px solid var(--gold-wash);padding-bottom:var(--sp-sm)}.ktable__head span{color:var(--brand-500);text-align:center;font-size:14px;font-weight:600}.krow{border-bottom:1px solid var(--line);padding:var(--sp-md) 0}.krow:last-child{border-bottom:none}.kcell-label{color:var(--ink-soft);text-align:left;flex:1;font-size:14px}.kcell-val{color:var(--ink);text-align:center;flex:1.2;font-size:14px;font-weight:600}.ktable__head .kcell-label{color:var(--brand-500)}.confetti{pointer-events:none;height:0;position:absolute;top:0;left:0;right:0}.confetti span{border-radius:var(--r-full);width:8px;height:8px;animation:1.8s ease-in both confettiFall;position:absolute;top:0}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes ringPop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes barGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px)}66%{opacity:1}to{opacity:0;transform:translateY(300px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
