:root{--bg: #f5f0eb;--card: #fdfaf7;--ink: #2d2d2d;--muted: #7b7268;--line: #e8ded0;--accent: #6b4c9a;--accent-soft: #ece4f4;--gold: #d4a574;--gold-deep: #b27f43;--rose: #b27f43;--good: #4f9d77;--warn: #b27f43;--off: #b04a52;--shadow: 0 18px 44px -26px rgba(74, 56, 40, .4);--radius: 18px;--display: "Cormorant Garamond", Georgia, "Times New Roman", serif;--body: "Jost", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--body);color:var(--ink);background:var(--bg);min-height:100vh}#root{display:flex;justify-content:center;padding:calc(24px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(48px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.app{width:100%;max-width:430px}.wordmark{text-align:center;font-family:var(--display);font-size:26px;letter-spacing:.34em;text-transform:uppercase;color:var(--accent);margin:6px 0 22px;font-weight:600}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 24px;border:1px solid var(--line)}.step-dots{display:flex;gap:8px;justify-content:center;margin-bottom:22px}.step-dots span{width:8px;height:8px;border-radius:50%;background:var(--line)}.step-dots span.on{background:var(--accent)}h1{font-family:var(--display);font-size:30px;margin:0 0 6px;font-weight:600;letter-spacing:.01em}.sub{color:var(--muted);font-size:14.5px;line-height:1.5;margin:0 0 20px}label.field{display:block;margin-bottom:16px}label.field>span{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink)}input[type=text],input[type=date],input[type=time],input[type=number],select{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:13px;font-size:15px;background:#fcfaff;color:var(--ink);font-family:inherit}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.hint{font-size:12.5px;color:var(--muted);margin-top:5px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.toggle-row:first-of-type{border-top:none}.toggle-row .lab{font-size:14.5px;font-weight:550}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button{flex:1 1 auto;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fcfaff;color:var(--muted);font-size:13.5px;font-weight:550;cursor:pointer}.seg button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.row{display:flex;gap:12px}.row>*{flex:1}.actions{display:flex;gap:12px;margin-top:8px}button.primary{flex:1;padding:14px;border:none;border-radius:14px;background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer}button.ghost{padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--muted);font-size:15px;font-weight:550;cursor:pointer}button.primary:hover{filter:brightness(1.05)}.error{background:#fdeef0;color:var(--off);border-radius:12px;padding:10px 12px;font-size:13px;margin-bottom:14px}.greeting{font-family:var(--display);font-size:28px;font-weight:600;margin:2px 0}.date{color:var(--muted);font-size:13.5px;margin-bottom:18px}.orb-wrap{display:flex;justify-content:center;margin:6px 0 18px}.orb{position:relative;width:180px;height:180px}.orb .center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.orb .day-num{font-family:var(--display);font-size:46px;font-weight:600;line-height:1;color:var(--accent)}.orb .day-lab{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:4px}.phase-pill{display:inline-block;margin:0 auto;text-transform:capitalize;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.phase-center{text-align:center;margin-bottom:18px}.read{background:linear-gradient(160deg,#fdfaf7,#f4ece0);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}.read .eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rose);font-weight:700;margin-bottom:8px}.read .body{font-family:var(--display);font-size:19px;line-height:1.45}.read .room{margin-top:12px;font-size:13px;color:var(--muted)}.read .room b{color:var(--ink)}.badge{display:inline-block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--warn);background:#fbf3df;border-radius:6px;padding:2px 7px;margin-left:8px;vertical-align:middle}.section-title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:18px 0 10px}.watch{font-size:14.5px;line-height:1.5;color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:12px;font-weight:600;border-radius:999px;padding:6px 11px;border:1px solid var(--line);text-transform:capitalize;display:inline-flex;align-items:center;gap:6px}.dot{width:7px;height:7px;border-radius:50%}.dot.full{background:var(--good)}.dot.degraded{background:var(--warn)}.dot.unavailable{background:var(--off)}.notes{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.notes li{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:5px}.companion{background:linear-gradient(150deg,#6b4c9a,#563d7c);color:#fff;border-radius:14px;padding:18px;margin-bottom:16px}.companion-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.speak{border:1px solid rgba(255,255,255,.5);background:#ffffff26;color:#fff;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;cursor:pointer}.companion-opener{font-size:14px;opacity:.9;margin-bottom:4px}.companion-focus{font-family:var(--display);font-size:21px;font-weight:600;line-height:1.3}.companion-why{font-size:13.5px;opacity:.92;margin-top:8px;line-height:1.5}.companion-prompts{margin-top:12px;border-top:1px solid rgba(255,255,255,.25);padding-top:10px}.companion-prompts .prompt{font-size:13.5px;opacity:.95;line-height:1.6}.feelings{display:flex;flex-wrap:wrap;gap:8px}.feelings button{padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:#fcfaff;color:var(--muted);font-size:13.5px;font-weight:550;text-transform:capitalize;cursor:pointer}.feelings button.on{border-color:var(--rose);background:#fbeef3;color:var(--rose)}.checkin{background:#fcfaff;border:1px solid var(--line);border-radius:16px;padding:16px}.scale-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.scale-label{width:56px;font-size:13px;font-weight:600;color:var(--muted)}.scale-row .seg{flex:1}.checkin .primary{width:100%;margin-top:2px}.bodygraph-wrap{margin-top:14px}.bodygraph-wrap svg{display:block;max-width:280px;margin:0 auto}.planet-cols{display:flex;justify-content:space-between;gap:16px;margin-top:12px}.planet-col{flex:1}.planet-title{font-size:10.5px;letter-spacing:.12em;font-weight:700;margin-bottom:6px}.planet-row{display:flex;align-items:center;gap:8px;font-size:12.5px;line-height:1.7}.planet-col:last-child .planet-row{flex-direction:row-reverse;text-align:right}.planet-glyph{width:14px;text-align:center}.planet-gl{font-variant-numeric:tabular-nums;color:var(--ink)}.bio-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.bio-label{width:92px;font-size:12.5px;color:var(--muted)}.bio-track{flex:1;height:8px;border-radius:999px;background:var(--line);overflow:hidden}.bio-fill{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--rose))}.bio-val{width:48px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink)}.explore-btn{width:100%;margin-top:20px;padding:14px;border:1px solid var(--accent);border-radius:14px;background:var(--accent-soft);color:var(--accent);font-size:15px;font-weight:600;cursor:pointer}.lens-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.lens-tabs button{flex:1;padding:9px 6px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}.lens-tabs button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.tarot-card{text-align:center}.tarot-pos{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.tarot-frame{width:92px;height:140px;border-radius:10px;border:1.5px solid var(--accent);background:linear-gradient(160deg,#fdfaf7,#efe6f3);display:flex;align-items:center;justify-content:center;padding:8px;margin:0 auto}.tarot-name{font-family:var(--display);font-size:16px;line-height:1.2;color:var(--ink)}.tarot-meta{font-size:11px;color:var(--muted);margin-top:6px}.tarot-meaning{font-size:12px;line-height:1.45;color:var(--ink);margin-top:5px}.tarot-spread{display:flex;justify-content:space-between;gap:8px;margin-top:16px}.tarot-spread .tarot-frame{width:100%;height:120px}.tarot-spread .tarot-name{font-size:13px}.explore-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.link-back{background:none;border:none;color:var(--accent);font-size:15px;font-weight:600;cursor:pointer;padding:0}.hexagram{display:flex;flex-direction:column;gap:7px;align-items:center;margin:14px 0}.hx-line{display:flex;align-items:center;justify-content:center;gap:6px;width:150px;position:relative}.hx-bar{display:block;height:9px;border-radius:2px;background:var(--ink);flex:1}.hx-bar.half{flex:0 0 40%}.hx-gap{flex:0 0 18px}.hx-change{position:absolute;right:-18px;color:var(--rose);font-size:11px}.restart{margin-top:16px;text-align:center}.restart button{background:none;border:none;color:var(--accent);font-size:13.5px;font-weight:600;cursor:pointer}
