:root{--night: #f7f4ec;--card: #ffffff;--edge: rgba(31, 35, 51, .1);--edge-strong: rgba(31, 35, 51, .18);--violet: #5a46c7;--violet-bright: #4936ad;--blue: #2563b8;--teal: #0f8a7a;--text: #23273a;--text-soft: #3c4158;--dim: #6d7288;--pos: #1f8a4d;--neg: #c23b52;--gold: #a37e1f;--gold-bright: #8a6a15;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(900px 480px at 85% -10%,rgba(90,70,199,.1) 0%,transparent 60%),radial-gradient(700px 420px at -10% 40%,rgba(37,99,184,.07) 0%,transparent 55%),var(--night);color:var(--text);font-family:var(--font-body);line-height:1.65;min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(1px 1px at 12% 22%,rgba(90,70,199,.18) 50%,transparent 51%),radial-gradient(1px 1px at 68% 8%,rgba(35,39,58,.12) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 84% 44%,rgba(90,70,199,.16) 50%,transparent 51%),radial-gradient(1px 1px at 30% 70%,rgba(35,39,58,.1) 50%,transparent 51%),radial-gradient(1px 1px at 55% 88%,rgba(35,39,58,.12) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 92% 76%,rgba(15,138,122,.15) 50%,transparent 51%);z-index:0}#root{position:relative;z-index:1}.shell{max-width:880px;margin:0 auto;padding:2.5rem 1.25rem 5rem}.masthead{text-align:center;margin-bottom:2.75rem}.masthead .eyebrow{font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.35em;text-transform:uppercase;color:var(--violet);margin-bottom:.9rem}.masthead h1{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,6vw,3.1rem);letter-spacing:-.02em;line-height:1.12}.masthead h1 span{background:linear-gradient(135deg,var(--violet-bright),#2563b8);-webkit-background-clip:text;background-clip:text;color:transparent}.masthead p{max-width:34rem;margin:1rem auto 0;color:var(--dim);font-size:1rem}.altar{background:var(--card);border:1px solid var(--edge);border-radius:20px;padding:1.75rem 1.5rem;box-shadow:0 18px 45px #1f23331a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.altar .fields{display:grid;grid-template-columns:1.4fr 1fr .7fr;gap:1rem}@media (max-width: 680px){.altar .fields{grid-template-columns:1fr}}.field label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:.45rem}.field input{width:100%;background:#1f23330a;border:1px solid var(--edge-strong);border-radius:12px;color:var(--text);font-family:var(--font-body);font-size:1.02rem;padding:.75rem .9rem;transition:border-color .2s ease;color-scheme:dark}.field input#name{text-transform:capitalize}.field input:focus-visible{outline:2px solid var(--violet);outline-offset:1px;border-color:var(--violet)}.field .hint{font-size:.79rem;color:var(--dim);margin-top:.35rem}.decode-btn{margin-top:1.4rem;width:100%;font-family:var(--font-display);font-weight:700;letter-spacing:.06em;font-size:.95rem;color:#fff;background:linear-gradient(135deg,var(--violet),var(--blue));border:none;border-radius:12px;padding:.95rem 1rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 10px 26px #5a46c747}.decode-btn:hover{transform:translateY(-1px);box-shadow:0 14px 32px #5a46c759}.decode-btn:focus-visible{outline:3px solid var(--text);outline-offset:2px}.form-error{margin-top:.9rem;color:var(--neg);font-size:.92rem;text-align:center}.seal-stage{display:flex;flex-direction:column;align-items:center;margin:3.25rem 0 2.5rem}.wax-seal{position:relative;width:190px;height:190px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(from 210deg,#a83a4b,#6e1626,#c05a52,#a83a4b);box-shadow:0 18px 45px #7a1a2b59;animation:stamp .55s cubic-bezier(.18,1.4,.4,1) both}.wax-seal:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#8c2333,#5d1220 72%)}.wax-seal .ring{position:absolute;top:16px;right:16px;bottom:16px;left:16px;border:1px solid rgba(245,227,179,.4);border-radius:50%}.wax-seal .ring:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px dashed rgba(245,227,179,.35);border-radius:50%}.wax-seal .number{font-family:var(--font-display);font-weight:700;font-size:4.6rem;background:linear-gradient(135deg,#f5e3b3,#d9a94c);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;position:relative;z-index:1}.wax-seal .label{position:absolute;bottom:34px;font-family:var(--font-display);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:#f5e3b3cc;z-index:1}@keyframes stamp{0%{transform:scale(1.5);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.wax-seal{animation:none}}.seal-caption{margin-top:1.4rem;text-align:center}.seal-caption h2{font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:.02em;color:var(--text)}.seal-caption .master-tag{display:inline-block;margin-top:.55rem;font-family:var(--font-display);font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;background:#8b7cf626;border:1px solid rgba(139,124,246,.4);border-radius:999px;color:var(--violet-bright);padding:.32rem .9rem}.results{display:grid;gap:.9rem}.card{background:var(--card);border:1px solid var(--edge);border-radius:16px;padding:1.5rem 1.4rem}.card h3{font-family:var(--font-display);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--violet);margin-bottom:.8rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.card h3 .value{font-size:1.6rem;letter-spacing:0;color:var(--text);font-weight:700}.card .qualities{font-style:italic;color:var(--violet-bright);font-size:.93rem;margin-bottom:.7rem}.card p{color:var(--text-soft);font-size:.97rem}.card p+p{margin-top:.6rem}.card ul{list-style:none;display:grid;gap:.55rem}.card ul li{padding-left:1.4rem;position:relative;font-size:.96rem;color:var(--text-soft)}.card ul li:before{content:"✦";position:absolute;left:0;color:var(--violet);font-size:.78rem;top:.2rem}.card .steps{margin-top:.95rem;border-top:1px solid var(--edge);padding-top:.8rem;font-size:.85rem;color:var(--dim)}.card .steps strong{font-family:var(--font-display);font-size:.64rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--violet);display:block;margin-bottom:.35rem}.duo{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}@media (max-width: 680px){.duo{grid-template-columns:1fr}}.astro-line{display:flex;gap:1.75rem;flex-wrap:wrap;margin-top:.4rem}.astro-line div span{display:block;font-family:var(--font-display);font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--violet);margin-bottom:.2rem}.vibes{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.4rem}@media (max-width: 560px){.vibes{grid-template-columns:1fr}}.vibes .pos,.vibes .neg{font-size:.91rem;color:var(--text-soft)}.vibes span{display:block;font-family:var(--font-display);font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.3rem}.vibes .pos span{color:var(--pos)}.vibes .neg span{color:var(--neg)}.letter-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:.9rem}.letter-tile{text-align:center;min-width:32px;background:#1f233309;border:1px solid var(--edge);border-radius:8px;padding:6px 5px}.letter-tile .lt{font-size:.95rem;font-weight:700;color:var(--text);font-family:var(--font-display)}.letter-tile .lv{font-size:.82rem;color:var(--violet-bright)}.letter-sum{color:var(--violet-bright)!important;margin-bottom:.6rem;font-weight:500}.footnote{margin-top:3rem;text-align:center;color:var(--dim);font-size:.82rem}.footnote em{color:var(--violet-bright);font-style:normal}.combo-block{margin:.9rem 0;padding:.85rem 1rem;border:1px solid var(--gold, #c9a84c);border-radius:10px;background:#c9a84c12}.combo-block p{font-size:.93rem;color:var(--gold-bright, #e8c96a)}.combo-block p+p{margin-top:.5rem}.biz-details{margin-top:.9rem;border-top:1px solid rgba(31,35,51,.1);padding-top:.9rem}.biz-details summary{cursor:pointer;font-weight:600;color:var(--violet-bright, #b5a8ff);font-size:.97rem;list-style:none;position:relative;padding-left:1.2rem}.biz-details summary::-webkit-details-marker{display:none}.biz-details summary:before{content:"▸";position:absolute;left:0;transition:transform .15s ease}.biz-details[open] summary:before{transform:rotate(90deg)}.biz-details .biz-counsel{margin-top:.7rem;font-style:italic}.biz-details ul{margin-top:.7rem}.biz-note{margin-top:.8rem;font-size:.9rem;color:var(--dim, #8a8794);border-left:2px solid var(--violet, #8b7cf6);padding-left:.8rem}.biz-footnote{margin-top:.9rem;font-size:.85rem;color:var(--dim, #8a8794);font-style:italic}.biz-decoder{margin-top:3rem}.biz-heading{text-align:center;font-size:1.45rem;margin-bottom:.4rem;color:var(--text, #f2f0f7)}.biz-sub{text-align:center;color:var(--dim, #8a8794);font-size:.9rem;margin-bottom:1.4rem}.verdict{margin-top:.9rem;padding:.85rem 1rem;border-radius:10px;font-size:.94rem}.verdict-harmony{border:1px solid rgba(94,205,138,.55);background:#5ecd8a14;color:#1f7a45}.verdict-neutral{border:1px solid rgba(201,168,76,.55);background:#c9a84c12;color:var(--gold-bright, #e8c96a)}.verdict-disharmony{border:1px solid rgba(224,92,92,.55);background:#e05c5c14;color:#a83232}.swatch-group{margin-top:1rem}.swatch-label{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-bottom:.55rem}.swatch-row{display:flex;flex-wrap:wrap;gap:.55rem}.swatch{display:inline-flex;align-items:center;gap:.45rem;font-size:.86rem;color:var(--text-soft);border:1px solid var(--edge);border-radius:999px;padding:.3rem .75rem .3rem .35rem;background:var(--card)}.swatch-chip{width:22px;height:22px;border-radius:50%;border:1px solid rgba(31,35,51,.18);flex-shrink:0}.bdn-block{margin-top:1rem;border-top:1px solid rgba(31,35,51,.08);padding-top:.9rem}.bdn-block:first-of-type{border-top:none}.bdn-head{font-weight:600;color:var(--violet-bright);margin-bottom:.4rem}.bdn-head .value{margin-left:.4rem}
