.alert-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:300;padding:1rem}.alert-card{width:100%;max-width:360px;background:var(--bg-modal);border:1px solid var(--border-medium);border-radius:18px;padding:1.5rem 1.75rem;text-align:center;box-shadow:var(--shadow-modal);animation:modalPop .15s ease-out}.alert-title{font-size:1.05rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.alert-message{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin:0 0 1.25rem}.alert-actions{display:flex;gap:.6rem}.alert-cancel{flex:1;padding:.65rem;border:1px solid var(--border-medium);border-radius:12px;background:transparent;color:var(--text-muted);font-size:.85rem;cursor:pointer;font-family:inherit;transition:all .2s}.alert-cancel:hover{background:var(--bg-card-hover)}.alert-confirm{flex:1.2;padding:.65rem;border:none;border-radius:12px;background:var(--accent-gradient);color:var(--text-on-accent);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.alert-confirm:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.alert-card.danger .alert-confirm{background:var(--danger-gradient)}.alert-card.danger .alert-confirm:hover{box-shadow:0 4px 12px #ef444466}.alert-card.purchase .alert-confirm{background:linear-gradient(135deg,#d97706,#f59e0b)}.alert-card.purchase .alert-confirm:hover{box-shadow:0 4px 12px #f59e0b66}.star-wallet{position:relative}.wallet-toggle{display:flex;align-items:center;gap:.35rem;padding:.2rem .65rem;border:1px solid var(--star-border);border-radius:20px;background:var(--star-bg);color:var(--star-color);cursor:pointer;font-family:inherit;white-space:nowrap;min-height:44px}.wallet-toggle:hover{background:#f59e0b26}.star-icon{font-size:.85rem}.star-count{font-weight:700;font-size:.9rem}.wallet-held{font-size:.6rem;color:#ef4444b3;white-space:nowrap;margin-left:.15rem}.wallet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000;z-index:199;animation:backdropIn .35s ease forwards}.wallet-backdrop.closing{animation:backdropOut .4s ease forwards}@keyframes backdropIn{to{background:var(--bg-overlay)}}@keyframes backdropOut{0%{background:var(--bg-overlay)}to{background:#0000}}.shop-modal{position:fixed;top:50%;left:50%;width:min(360px,calc(100vw - 2rem));max-height:calc(100vh - 6rem);overflow-y:auto;background:var(--bg-modal);border:1px solid var(--border-medium);border-radius:20px;padding:1.25rem;box-shadow:var(--shadow-modal);z-index:200;--start-x: calc(var(--origin-x, 50vw) - 50vw);--start-y: calc(var(--origin-y, 50vh) - 50vh);animation:heroShopIn .35s cubic-bezier(.28,.11,.32,1) forwards}.shop-modal.closing{animation:heroShopOut .4s cubic-bezier(.28,.11,.32,1) forwards}@keyframes heroShopIn{0%{opacity:0;transform:translate(calc(-50% + var(--start-x)),calc(-50% + var(--start-y))) scale(.1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes heroShopOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--start-x)),calc(-50% + var(--start-y))) scale(.1)}}.shop-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.shop-balance-row{display:flex;flex-direction:column;gap:.15rem}.shop-balance-num{font-size:1.1rem;font-weight:700;color:var(--star-color)}.shop-balance-held{font-size:.7rem;color:#ef4444b3}.reward-star-panel{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;padding:.7rem .75rem;border:1px solid var(--star-border);border-radius:8px;background:var(--star-bg)}.reward-star-panel div{display:grid;gap:.15rem}.reward-star-panel strong{color:var(--text-primary);font-size:.8rem}.reward-star-panel span{color:var(--text-muted);font-size:.65rem}.reward-star-btn{min-height:44px;padding:.4rem .65rem;border:0;border-radius:8px;background:var(--accent-gradient);color:var(--text-on-accent);font:inherit;font-size:.72rem;font-weight:600;white-space:nowrap}.reward-star-btn:disabled{opacity:.45}.close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:.25rem;width:44px;min-height:44px}.star-toast{position:fixed;top:60px;left:50%;transform:translate(-50%);padding:.6rem 1.25rem;background:var(--bg-toast);border:1px solid var(--accent-border);border-radius:12px;color:var(--accent-text);font-size:.82rem;font-weight:500;z-index:300;animation:toastIn .15s ease-out;box-shadow:var(--shadow-modal)}.pack-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.85rem}.pack-card{display:flex;align-items:center;justify-content:space-between;padding:.65rem .75rem;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface);position:relative}.pack-card.featured{border-color:var(--accent-border);background:#a855f70f}.pack-badge{position:absolute;top:-6px;left:12px;font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--accent-gradient);color:var(--text-on-accent);padding:.1rem .4rem;border-radius:4px}.pack-info{display:flex;flex-direction:column;gap:.1rem}.pack-name{font-size:.82rem;font-weight:500;color:var(--text-primary)}.pack-stars{font-size:.7rem;color:var(--text-muted)}.pack-stars .bonus{color:var(--star-color)}.pack-buy-btn{padding:.4rem .85rem;border:none;border-radius:10px;background:var(--accent-gradient);color:var(--text-on-accent);font-weight:600;font-size:.82rem;cursor:pointer;white-space:nowrap;font-family:inherit}.pack-buy-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.pack-buy-btn:disabled{opacity:.5}.restore-purchases-btn{display:block;min-height:44px;margin:-.2rem auto .75rem;padding:.55rem .8rem;border:0;background:transparent;color:var(--accent-text);font:inherit;font-size:.78rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.restore-purchases-btn:disabled{opacity:.5}.reading-costs{border-top:1px solid var(--border-subtle);padding-top:.6rem}.reading-costs h4{font-size:.68rem;font-weight:500;color:var(--text-muted);margin:0 0 .35rem;text-transform:uppercase;letter-spacing:1px}.cost-grid{display:grid;grid-template-columns:auto auto auto auto;gap:.15rem .6rem;font-size:.68rem;color:var(--text-muted)}.cost-grid-item{display:contents}.cost-grid-label{white-space:nowrap}.cost-grid-item em{font-style:normal;color:var(--star-color);white-space:nowrap}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#0a0612f7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle);padding:.4rem 0;padding-bottom:calc(.4rem + env(safe-area-inset-bottom,0px));z-index:100}.tab-bar-item{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.25rem .75rem;border:none;background:none;cursor:pointer;font-family:inherit;transition:color .15s;min-height:44px;color:var(--text-muted)}.tab-bar-item.active{color:var(--accent)}.tab-bar-icon{display:flex;align-items:center;justify-content:center;height:24px}.tab-bar-label{font-size:.6rem;font-weight:500;letter-spacing:.3px}.skeleton-card{background:var(--bg-surface);border-radius:24px;padding:2rem;max-width:480px;margin:2rem auto}.skeleton-shimmer{background:linear-gradient(90deg,var(--border-subtle) 25%,var(--border-medium) 50%,var(--border-subtle) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:8px;margin-bottom:1rem}.skeleton-greeting{height:28px;width:60%}.skeleton-badge{height:32px;width:40%;border-radius:16px}.skeleton-text{height:18px;width:100%}.skeleton-text.short{width:75%}.skeleton-affirmation{height:48px;width:90%;margin-top:1.5rem}.skeleton-footer{display:flex;gap:1rem;margin-top:1.5rem}.skeleton-detail{height:24px;width:120px;margin-bottom:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.connection-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.connection-panel{width:min(100%,380px);text-align:center}.connection-symbol{display:block;margin-bottom:.8rem;color:var(--accent-text);font-size:2rem}.connection-panel h1{margin:0;color:var(--text-primary);font-size:1.25rem}.connection-panel p{margin:.75rem 0 1.25rem;color:var(--text-secondary);font-size:.85rem;line-height:1.6}.connection-panel button,.connection-banner button{border:1px solid var(--accent-border);border-radius:8px;background:var(--accent-gradient);color:var(--text-on-accent);font:inherit;font-weight:600}.connection-panel button{min-width:8rem;padding:.65rem 1rem}.connection-banner{position:fixed;top:calc(.5rem + var(--sat));left:50%;z-index:500;display:flex;align-items:center;gap:.75rem;width:min(calc(100% - 2rem),440px);min-height:44px;padding:.4rem .5rem .4rem .8rem;border:1px solid var(--error-border);border-radius:8px;background:var(--bg-toast);box-shadow:var(--shadow-card);color:var(--text-primary);transform:translate(-50%)}.connection-banner span{flex:1;font-size:.75rem}.connection-banner button{min-height:36px;padding:.35rem .65rem;font-size:.72rem}.tarot-detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:320;display:grid;place-items:center;padding:1rem;background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);perspective:1200px}.tarot-detail-card{position:fixed;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(330px,calc(100vw - 3rem),calc((100dvh - 4rem)*.75));aspect-ratio:3 / 4;max-height:calc(100dvh - 4rem);padding:1.75rem;overflow-y:auto;border:1px solid rgba(212,175,55,.38);border-radius:10px;background:linear-gradient(145deg,#211208,#3a210c);box-shadow:var(--shadow-modal),0 0 32px #d4af3724;color:var(--text-primary);font:inherit;text-align:center;cursor:pointer;box-sizing:border-box;backface-visibility:hidden;transform-style:preserve-3d;animation:tarotDetailEmerge 1.35s cubic-bezier(.16,.75,.25,1) both}.tarot-detail-card:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid rgba(212,175,55,.13);border-radius:8px;pointer-events:none}.tarot-detail-card.is-returning{animation:tarotDetailReturn 1.05s ease-in-out both;pointer-events:none}.tarot-detail-symbol{color:var(--theme-tarot);font-size:2.3rem;filter:drop-shadow(0 0 10px rgba(212,175,55,.45));animation:tarotDetailSymbol 1.05s ease-out both}.tarot-detail-position{margin-top:.8rem;color:var(--text-muted);font-size:.6rem;font-weight:700;text-transform:uppercase}.tarot-detail-name{margin-top:.35rem;color:var(--theme-tarot);font-size:1.35rem}.tarot-detail-rule{width:2.5rem;height:1px;margin:1rem 0;background:#d4af3759}.tarot-detail-meaning{color:var(--text-secondary)}.tarot-detail-action{margin-top:2rem;color:var(--text-muted);font-size:.65rem}@keyframes tarotDetailEmerge{0%{opacity:.2;transform:translate(calc(-50% + var(--origin-x)),calc(-50% + var(--origin-y))) scale(.24) rotateY(180deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotateY(0)}}@keyframes tarotDetailReturn{0%{opacity:1;transform:translate(-50%,-50%) scale(1) rotateY(0)}to{opacity:.2;transform:translate(calc(-50% + var(--origin-x)),calc(-50% + var(--origin-y))) scale(.24) rotateY(180deg)}}@keyframes tarotDetailSymbol{0%{opacity:0;transform:scale(.5) rotate(-45deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(prefers-color-scheme:light){.tarot-detail-card{background:linear-gradient(180deg,#fffdf5,var(--bg-modal))}}@media(prefers-reduced-motion:reduce){.tarot-detail-card,.tarot-detail-symbol{animation:none}}.reading-body-text{color:var(--text-secondary);font-size:.9rem;line-height:1.65}.reading-body-text p{margin:0 0 .75rem}.reading-body-text p:last-child{margin-bottom:0}.tarot-mini-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;aspect-ratio:3 / 4;padding:.7rem .35rem;overflow:hidden;border:1px solid rgba(212,175,55,.2);border-radius:8px;background:linear-gradient(145deg,#09060f,#171020);color:var(--theme-tarot);font:inherit;cursor:pointer;box-sizing:border-box}.tarot-mini-card:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid rgba(212,175,55,.3);background:linear-gradient(45deg,transparent 46%,rgba(212,175,55,.08) 47% 53%,transparent 54%),linear-gradient(-45deg,transparent 46%,rgba(212,175,55,.08) 47% 53%,transparent 54%);border-radius:6px;pointer-events:none}.tarot-mini-card:hover:not(:disabled){border-color:#d4af3773;background:linear-gradient(145deg,#0c0814,#201529)}.tarot-mini-card:disabled{cursor:default;opacity:.52}.tarot-mini-card.is-revealed{background:#d4af370f;opacity:1}.tarot-mini-card.is-awaiting{animation:tarotMiniAwait 3.2s ease-in-out infinite;transform-origin:center}.tarot-mini-position{position:absolute;top:.65rem;max-width:calc(100% - .5rem);overflow:hidden;color:var(--text-muted);font-size:.52rem;font-weight:600;text-transform:uppercase;white-space:nowrap}.tarot-mini-back-mark{position:relative;z-index:1;display:grid;grid-template-columns:auto auto;place-items:center;gap:.1rem;width:2.6rem;height:2.6rem;border:1px solid rgba(212,175,55,.55);border-radius:50%;color:var(--theme-tarot);font-size:.9rem;animation:tarotMiniPulse 3.2s ease-in-out infinite}.tarot-mini-prompt{margin-top:.45rem;color:var(--theme-tarot);font-size:clamp(.48rem,1.8vw,.62rem);font-weight:700;text-transform:uppercase;white-space:nowrap}.tarot-mini-name{max-width:100%;padding:0 .2rem;color:var(--theme-tarot);font-size:clamp(.66rem,2.4vw,.88rem);line-height:1.3;overflow-wrap:anywhere}@keyframes tarotMiniPulse{0%,to{opacity:.62;transform:scale(.96)}50%{opacity:1;transform:scale(1.12)}}@keyframes tarotMiniAwait{0%,to{transform:scale(1);box-shadow:0 0 #d4af3700}50%{transform:scale(1.045);box-shadow:0 0 16px #d4af3738}}@media(prefers-reduced-motion:reduce){.tarot-mini-back-mark,.tarot-mini-card.is-awaiting{animation:none}}.expandable-badge{background:color-mix(in srgb,var(--badge-accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--badge-accent) 15%,transparent);border-radius:14px;padding:.7rem .9rem;cursor:pointer;transition:background .15s,border-color .15s;margin-bottom:.5rem}.expandable-badge:hover{background:color-mix(in srgb,var(--badge-accent) 10%,transparent);border-color:color-mix(in srgb,var(--badge-accent) 25%,transparent)}.expandable-badge.expanded{background:color-mix(in srgb,var(--badge-accent) 8%,transparent);border-color:color-mix(in srgb,var(--badge-accent) 20%,transparent)}.badge-top{display:flex;align-items:center;gap:.65rem}.badge-emoji{font-size:1.8rem;flex-shrink:0;line-height:1}.badge-info{flex:2;min-width:0;display:flex;flex-direction:column}.badge-title{font-size:1.05rem;font-weight:700;color:var(--badge-accent);line-height:1.2}.badge-subtitle{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-hint);margin-top:.1rem}.badge-meta{flex:1;font-size:.68rem;color:var(--text-muted);text-align:left;line-height:1.5;display:flex;flex-direction:column;align-items:flex-start}.badge-header-content{margin-top:.5rem;animation:expandIn .15s ease-out}.badge-expanded{margin-top:.5rem;padding-top:.5rem;border-top:1px solid color-mix(in srgb,var(--badge-accent) 10%,transparent);animation:expandIn .15s ease-out}.badge-expanded p{font-size:.72rem;line-height:1.6;color:var(--text-muted);margin:0 0 .3rem;font-style:italic}.badge-expanded p:last-child{margin-bottom:0}.badge-expanded p strong{color:var(--badge-accent);font-style:normal}.accordion-section{overflow:hidden;margin-bottom:.5rem;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface)}.accordion-header{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:auto;padding:.75rem 1rem;border:0;background:none;color:var(--text-primary);font-family:inherit;text-align:left;cursor:pointer}.accordion-heading{min-width:0}.accordion-title{display:block;font-size:.88rem;font-weight:600}.accordion-summary{display:block;margin-top:.1rem;color:var(--text-muted);font-size:.72rem}.accordion-chevron{display:flex;flex-shrink:0;align-items:center;color:var(--text-muted)}.accordion-body{padding:0 1rem .75rem;animation:expandIn .15s ease-out}.message-card-collapsed{display:flex;align-items:center;gap:.5rem;width:100%;max-width:480px;margin:.35rem auto;padding:.75rem 1rem;border-radius:14px;border:1px solid var(--border-subtle);background:var(--bg-card-solid);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s;text-align:left;font-family:inherit;overflow:hidden}.message-card-collapsed:hover{background:var(--bg-card-hover)}.collapsed-icon{font-size:1.1rem;flex-shrink:0}.collapsed-label{font-size:.7rem;font-weight:600;color:var(--accent);flex-shrink:0}.message-card-collapsed.theme-tarot .collapsed-label{color:var(--theme-tarot)}.message-card-collapsed.theme-compat .collapsed-label{color:var(--theme-compat)}.message-card-collapsed.theme-ask .collapsed-label{color:var(--theme-ask)}.message-card-collapsed.theme-chart .collapsed-label{color:var(--theme-chart)}.message-card-collapsed.theme-weekly .collapsed-label{color:var(--theme-weekly)}.message-card-collapsed.theme-custom .collapsed-label{color:var(--theme-custom)}.message-card-collapsed.theme-guest .collapsed-label{color:var(--theme-guest)}.collapsed-greeting{flex:1;min-width:0;font-size:.78rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.collapsed-date{font-size:.65rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.collapsed-right{display:flex;align-items:center;gap:.35rem;flex-shrink:0;margin-left:auto}.collapsed-expand{display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.message-card-collapsed.theme-daily{border-color:#a855f726;background:#a855f70f}.message-card-collapsed.theme-tarot{border-color:#d4af3726;background:#d4af370f}.message-card-collapsed.theme-compat{border-color:#ec489926;background:#ec48990f}.message-card-collapsed.theme-ask{border-color:#14b8a626;background:#14b8a60f}.message-card-collapsed.theme-chart{border-color:#3b82f626;background:#3b82f60f}.message-card-collapsed.theme-weekly{border-color:#22c55e26;background:#22c55e0f}.message-card-collapsed.theme-custom{border-color:#f59e0b26;background:#f59e0b0f}.message-card-collapsed.theme-guest{border-color:#fbbf2426;background:#fbbf240f}.card-top-row{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:1rem}.collapse-btn{color:var(--text-muted);background:none;border:none;padding:.4rem;cursor:pointer;font-family:inherit;transition:color .15s;min-height:44px;display:flex;align-items:center;gap:.35rem;position:absolute;right:-.65rem}.collapse-date-label{font-size:.65rem;color:var(--text-muted);white-space:nowrap}.collapse-btn:hover{color:var(--text-muted)}.message-card{position:relative;transform-origin:top center;animation:readingCardArrive .7s cubic-bezier(.2,.82,.25,1) both;border-radius:20px;overflow:hidden;max-width:480px;margin:0 auto .75rem;background:var(--bg-card);box-shadow:var(--shadow-card),0 0 0 1px var(--border-subtle);color:var(--text-primary)}@keyframes readingCardArrive{0%{opacity:0;transform:translateY(.75rem) scaleY(.94)}to{opacity:1;transform:translateY(0) scaleY(1)}}@media(prefers-reduced-motion:reduce){.message-card{animation:none}}.message-card.theme-daily{background:linear-gradient(135deg,#1e0f37f7,#371950f2);box-shadow:var(--shadow-card),0 0 0 1px #a855f726}.message-card.theme-daily .greeting{text-shadow:0 1px 8px rgba(168,85,247,.3)}.message-card.theme-tarot{background:linear-gradient(135deg,#190f08f7,#2d190af2);box-shadow:var(--shadow-card),0 0 0 1px #d4af371f}.message-card.theme-tarot .card-type-badge{color:var(--theme-tarot)}.message-card.theme-tarot .affirmation{border-color:#d4af3726;color:var(--theme-tarot)}.message-card.theme-tarot .greeting{background:linear-gradient(135deg,#fff,var(--theme-tarot));-webkit-background-clip:text;background-clip:text}.message-card.theme-compat{background:linear-gradient(135deg,#280a19f7,#3c0f23f2);box-shadow:var(--shadow-card),0 0 0 1px #ec48991f}.message-card.theme-compat .card-type-badge{color:var(--theme-compat)}.message-card.theme-compat .affirmation{border-color:#ec489926;color:var(--theme-compat)}.message-card.theme-compat .greeting{background:linear-gradient(135deg,#fff,var(--theme-compat));-webkit-background-clip:text;background-clip:text}.message-card.theme-compat .horoscope-text{text-align:left}.message-card.theme-ask{background:linear-gradient(135deg,#08141ef7,#0a232df2);box-shadow:var(--shadow-card),0 0 0 1px #14b8a61f}.message-card.theme-ask .card-type-badge{color:var(--theme-ask)}.message-card.theme-ask .affirmation{border-color:#14b8a626;color:var(--theme-ask)}.message-card.theme-ask .greeting{background:linear-gradient(135deg,#fff,var(--theme-ask));-webkit-background-clip:text;background-clip:text}.message-card.theme-chart{background:linear-gradient(135deg,#050a1ef7,#0a0f32f2);box-shadow:var(--shadow-card),0 0 0 1px #3b82f61f}.message-card.theme-chart .card-type-badge{color:var(--theme-chart)}.message-card.theme-chart .affirmation{border-color:#3b82f626;color:var(--theme-chart)}.message-card.theme-chart .greeting{background:linear-gradient(135deg,#fff,var(--theme-chart));-webkit-background-clip:text;background-clip:text}.message-card.theme-weekly{background:linear-gradient(135deg,#0f190ff7,#142814f2);box-shadow:var(--shadow-card),0 0 0 1px #22c55e1f}.message-card.theme-weekly .card-type-badge{color:var(--theme-weekly)}.message-card.theme-weekly .affirmation{border-color:#22c55e26;color:var(--theme-weekly)}.message-card.theme-weekly .greeting{background:linear-gradient(135deg,#fff,var(--theme-weekly));-webkit-background-clip:text;background-clip:text}.message-card.theme-custom{background:linear-gradient(135deg,#1e0a28f7,#320f37f2);box-shadow:var(--shadow-card),0 0 0 1px #f59e0b26}.message-card.theme-custom .card-type-badge{color:var(--theme-custom)}.message-card.theme-custom .affirmation{border-color:#f59e0b26;color:var(--theme-custom)}.message-card.theme-custom .greeting{background:linear-gradient(135deg,#fff,var(--theme-custom));-webkit-background-clip:text;background-clip:text}.message-card.theme-guest{background:linear-gradient(135deg,#19140af7,#2d230ff2);box-shadow:var(--shadow-card),0 0 0 1px #fbbf241f}.message-card.theme-guest .card-type-badge{color:var(--theme-guest)}.message-card.theme-guest .affirmation{border-color:#fbbf2426;color:var(--theme-guest)}.message-card.theme-guest .greeting{background:linear-gradient(135deg,#fff,var(--theme-guest));-webkit-background-clip:text;background-clip:text}.guest-label{font-size:.78rem;color:#fbbf24b3;margin-bottom:1rem}.guest-label strong{color:var(--theme-guest)}.card-bg-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.card-bg{width:100%;height:100%;object-fit:cover;opacity:.3}.card-bg-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f051e66,#0f051ed9 60%,#0f051efa)}.card-content{position:relative;z-index:1;padding:1.5rem}.card-type-badge{display:inline-flex;align-items:center;gap:.25rem;padding:0;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--accent);background:none;border:none;pointer-events:none;position:absolute;left:0}.card-content>.card-type-badge{margin-bottom:1rem}.greeting{font-size:1.15rem;font-weight:600;margin:0 0 1rem;background:linear-gradient(135deg,#fff 30%,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.user-question{font-size:.85rem;font-style:italic;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;padding:.6rem .8rem;margin-bottom:1rem}.question-label{display:block;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);font-style:normal;margin-bottom:.2rem}.forecast-date-badge{display:inline-block;font-size:.75rem;font-weight:500;color:var(--theme-weekly);background:#22c55e14;border-radius:6px;padding:.25rem .6rem;margin-bottom:1rem}.horoscope-text{margin:0 0 1rem}.tarot-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-bottom:1rem}.tarot-card-item{text-align:center;padding:.75rem .5rem;background:#d4af370f;border:1px solid rgba(212,175,55,.15);border-radius:8px;position:relative;overflow:hidden}.tarot-card-item:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid rgba(212,175,55,.06);border-radius:8px;pointer-events:none}.tarot-position{display:block;font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:.3rem}.tarot-name{display:block;font-size:.82rem;font-weight:700;color:var(--theme-tarot);line-height:1.3}.tarot-meaning{position:relative;margin:.55rem 0 0;color:var(--text-secondary);font-size:.74rem;line-height:1.45}.gif-container{text-align:center;margin:1rem 0}.accent-gif{max-width:200px;border-radius:16px;opacity:.85;box-shadow:0 4px 16px #0000004d}.affirmation{font-size:1rem;font-style:italic;font-weight:500;text-align:center;margin:1rem 0;padding:1rem;background:var(--bg-surface);border-radius:12px;border:1px solid var(--border-subtle);color:var(--accent);letter-spacing:.2px;line-height:1.5}.card-footer{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.lucky-numbers-row{display:flex;align-items:center;gap:.5rem;width:100%;margin-bottom:.4rem}.lucky-numbers-label{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-hint);flex-shrink:0}.lucky-numbers-badges{display:flex;gap:.3rem}.lucky-badge{display:flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.65rem;font-weight:700}.message-date{font-size:.65rem;color:var(--text-placeholder)}.share-btn{background:none;border:none;color:var(--text-muted);padding:.4rem;cursor:pointer;transition:color .15s;font-family:inherit;margin-left:auto;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.share-btn:hover{color:var(--text-primary)}.card-top-mood{position:relative;font-size:.6rem;font-weight:500;line-height:1;padding:.15rem .4rem;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);color:var(--text-primary);white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s;min-height:0}.card-top-mood:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:44px;transform:translate(-50%,-50%)}.card-top-mood:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.card-top-mood.active{color:var(--text-on-accent);background:var(--accent);border-color:var(--accent)}.mood-tooltip-desc{font-size:.75rem;color:var(--text-muted);line-height:1.5;margin:.4rem 0 0;font-style:italic}.mood-emoji-row{display:flex;gap:0;margin-bottom:.25rem}.mood-emoji-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex:1}.mood-emoji-icon{font-size:1rem}.mood-emoji-label{font-size:.5rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.ask-question-block{text-align:center;margin-bottom:1rem;padding:1rem;background:#14b8a60d;border:1px solid rgba(20,184,166,.12);border-radius:12px}.ask-label{display:block;font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:#14b8a680;margin-bottom:.4rem}.ask-question-text{font-size:1rem;font-weight:500;font-style:italic;color:var(--theme-ask);margin:0;line-height:1.5}.custom-request-label{font-size:.78rem;color:#f59e0bb3;margin-bottom:1rem;padding:.5rem .75rem;border-left:2px solid rgba(245,158,11,.3);line-height:1.4}.custom-request-tag{display:inline-block;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--theme-custom);background:#f59e0b1a;padding:.15rem .4rem;border-radius:4px;margin-right:.5rem}.premium-text{letter-spacing:.2px}.compat-pairing{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem;padding:1rem;background:#ec48990a;border:1px solid rgba(236,72,153,.1);border-radius:14px}.compat-sign{display:flex;flex-direction:column;align-items:center;gap:.2rem}.compat-emoji{font-size:2rem}.compat-name{font-size:.82rem;font-weight:600;color:var(--theme-compat)}.compat-heart{font-size:1.5rem;animation:pulse-heart 2s ease-in-out infinite}@keyframes pulse-heart{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.compat-element{font-size:.55rem;color:#ec489980;margin-top:.1rem}.compat-meter{display:flex;justify-content:center;gap:1.25rem;margin-bottom:1rem;padding:.6rem 0}.compat-meter-item{display:flex;flex-direction:column;align-items:center;gap:.2rem}.compat-meter-label{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#ec489980}.compat-meter-value{font-size:.8rem;font-weight:600;color:var(--theme-compat)}.peek-timeline{margin-bottom:1rem}.peek-days{display:flex;justify-content:space-between;align-items:center;gap:.25rem;margin-bottom:.6rem}.peek-dot{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex:1}.peek-dot-circle{width:10px;height:10px;border-radius:50%;border:2px solid rgba(34,197,94,.25);background:transparent;transition:all .2s}.peek-dot.past .peek-dot-circle{background:#22c55e66;border-color:#22c55e80}.peek-dot.active .peek-dot-circle{background:var(--theme-weekly);border-color:var(--theme-weekly);box-shadow:0 0 8px #22c55e80;width:12px;height:12px}.peek-dot-label{font-size:.5rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.peek-dot.active .peek-dot-label{color:var(--theme-weekly);font-weight:600}.peek-forecast-label{text-align:center;font-size:.75rem;font-weight:500;color:var(--theme-weekly);background:#22c55e0f;border-radius:6px;padding:.25rem .6rem;display:inline-block}.chart-sections{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.chart-section-item{padding:.85rem;background:#3b82f60a;border:1px solid rgba(59,130,246,.08);border-radius:12px}.chart-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.chart-section-emoji{font-size:1.4rem;flex-shrink:0;line-height:1}.chart-section-info{flex:1;display:flex;flex-direction:column}.chart-section-sign{font-size:.9rem;font-weight:700;color:var(--theme-chart);line-height:1.2}.chart-section-label{font-size:.5rem;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-hint)}.chart-section-element{font-size:.55rem;font-weight:500;padding:.15rem .4rem;border-radius:6px;background:#3b82f614;color:var(--theme-chart);align-self:center;flex-shrink:0}.chart-section-text{margin:0}.chart-rich{margin-bottom:1rem}.chart-intro{margin:0 0 1rem}.chart-rich .chart-accordion{border-color:#3b82f624;background:#3b82f609}.chart-rich .chart-accordion .accordion-title{color:var(--theme-chart);font-size:.78rem}.chart-rich .chart-accordion .accordion-summary{font-size:.62rem}.chart-rich .chart-accordion .accordion-chevron{color:var(--theme-chart)}.chart-group-title{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--theme-chart);margin:0 0 .5rem}.chart-section-disclosure,.chart-details{margin-bottom:.75rem;padding-top:.65rem;border-top:1px solid var(--border-subtle)}.chart-section-disclosure summary,.chart-details summary{color:var(--theme-chart);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;cursor:pointer}.chart-section-disclosure[open] summary,.chart-details[open] summary{margin-bottom:.6rem}.chart-theme-grid{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.chart-rich .badge-meta{align-items:flex-end;text-align:right}.chart-theme-grid .expandable-badge{width:100%;min-width:0;margin:0;padding:.55rem .7rem;border-radius:8px;box-sizing:border-box}.chart-rich .expandable-badge .badge-emoji{font-size:1rem}.chart-rich .expandable-badge .badge-title{font-size:.74rem}.chart-rich .expandable-badge .badge-subtitle{font-size:.48rem}.chart-rich .expandable-badge .badge-meta{font-size:.62rem}.chart-rich .expandable-badge .badge-expanded .reading-body-text{font-size:.9rem;line-height:1.65}.chart-details{margin-bottom:0}.chart-planets{margin-bottom:1rem}.chart-planet-grid{display:flex;flex-direction:column;align-items:stretch;gap:.4rem}.chart-planet-grid .expandable-badge{width:100%;margin:0}.chart-planet-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#3b82f60a;border-radius:8px}.chart-planet-name{font-size:.75rem;font-weight:600;color:var(--theme-chart);min-width:5rem}.chart-planet-sign{font-size:.75rem;color:var(--text-primary);flex:1}.chart-planet-degree{font-size:.6rem;color:var(--text-hint);margin-left:.25rem}.chart-planet-element{font-size:.5rem;font-weight:500;padding:.1rem .3rem;border-radius:4px;background:#3b82f614;color:var(--theme-chart);flex-shrink:0}.chart-planet-meanings{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.chart-meaning-chip{font-size:.55rem;color:var(--text-hint);padding:.15rem .4rem;border:1px solid var(--border-subtle);border-radius:6px;white-space:nowrap}.chart-balance{margin-bottom:.75rem}.chart-balance-row{display:flex;gap:.35rem}.chart-balance-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem .2rem;background:#3b82f60a;border-radius:8px;position:relative;overflow:hidden}.chart-balance-bar{position:absolute;bottom:0;left:0;right:0;height:var(--bar-pct, 0%);background:#3b82f614;transition:height .3s ease}.chart-balance-count{font-size:1rem;font-weight:700;color:var(--theme-chart);position:relative;z-index:1}.chart-balance-label{font-size:.5rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-hint);position:relative;z-index:1}.chart-aspects{margin-bottom:.5rem}.chart-aspect-item{padding:.5rem .6rem;background:#3b82f60a;border-radius:8px;margin-bottom:.25rem}.chart-aspect-header{display:flex;justify-content:space-between;align-items:center}.chart-aspect-planets{font-size:.75rem;font-weight:600;color:var(--theme-chart);text-transform:capitalize}.chart-aspect-orb{font-size:.6rem;color:var(--text-hint)}.chart-aspect-desc{font-size:.68rem;color:var(--text-muted);line-height:1.5;margin:.2rem 0 0;font-style:italic}.chart-empty{font-size:.75rem;color:var(--text-hint);font-style:italic;text-align:center;padding:.5rem 0;margin:0}.account-gear{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem;opacity:.6;transition:opacity .15s;width:44px;min-height:44px}.account-gear:hover,.account-gear:active{opacity:1}.ad-banner{max-width:480px;margin:1rem auto;text-align:center}.ad-placeholder{padding:2rem 1rem;background:var(--bg-surface);border:1px dashed var(--border-medium);border-radius:12px;margin-bottom:.5rem}.ad-label{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:1px;color:var(--text-muted);background:var(--bg-card-hover);padding:.15rem .5rem;border-radius:4px;margin-bottom:.5rem}.ad-text{display:block;font-size:.75rem;color:var(--text-muted)}.earn-star-btn{padding:.45rem 1rem;border:1px solid rgba(245,158,11,.2);border-radius:10px;background:var(--star-bg);color:var(--star-color);font-size:.8rem;cursor:pointer;transition:all .2s;font-family:inherit}.earn-star-btn:hover{background:#f59e0b26}.ad-error{display:block;margin-top:.5rem;color:var(--error);font-size:.75rem;line-height:1.4}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal-card{width:100%;max-width:360px;background:var(--bg-modal);border:1px solid var(--border-medium);border-radius:20px;padding:2rem 1.75rem;text-align:center;box-shadow:var(--shadow-modal);animation:modalPop .15s ease-out}.modal-icon{font-size:2.5rem;margin-bottom:.5rem}.modal-title{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0 0 .35rem}.modal-desc{font-size:.85rem;color:var(--text-muted);text-align:center;margin:0 0 1rem;line-height:1.5}.modal-cost-box{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:14px;padding:1rem;margin-bottom:1rem}.cost-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;font-size:.85rem;color:var(--text-muted)}.cost-value{font-weight:600;color:var(--star-color)}.cost-value.insufficient{color:var(--error-strong)}.cost-divider{height:1px;background:var(--border-subtle);margin:.4rem 0}.modal-extra{font-size:.82rem;color:var(--accent);background:#a855f714;border:1px solid rgba(168,85,247,.15);border-radius:10px;padding:.5rem .75rem;margin:0 0 .75rem;text-align:center}.modal-actions{display:flex;gap:.75rem}.modal-cancel{flex:1;padding:.7rem;border:1px solid var(--border-medium);border-radius:12px;background:transparent;color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:all .2s;font-family:inherit}.modal-cancel:hover{background:var(--bg-card-hover)}.modal-confirm{flex:1.5;padding:.7rem;border:none;border-radius:12px;background:var(--accent-gradient);color:var(--text-on-accent);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.modal-confirm:hover{transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-glow)}.modal-buy-stars{background:linear-gradient(135deg,#d97706,#f59e0b)}.modal-buy-stars:hover{box-shadow:0 4px 16px #f59e0b66}.modal-actions-stack{display:flex;flex-direction:column;gap:.5rem}.modal-watch-ad{width:100%;padding:.75rem;border:none;border-radius:12px;background:var(--accent-gradient);color:var(--text-on-accent);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:.5rem}.modal-watch-ad:hover{transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-glow)}.error-message{text-align:center;font-size:.82rem;line-height:1.4;padding:.6rem 1rem;border-radius:10px;margin-bottom:.75rem}.error-message.error{background:var(--error-bg);color:var(--error)}.error-message.success{background:var(--success-bg);color:var(--success)}.page-sticky-header{position:sticky;top:0;z-index:10;background:var(--bg-header);margin:0 -1.25rem;padding:.75rem 1.25rem .5rem;flex-shrink:0}.page-sticky-header .nav-back{display:inline-flex;align-items:center;font-size:.82rem;color:var(--accent);text-decoration:none;background:none;border:none;padding:.5rem .25rem;cursor:pointer;font-family:inherit;min-height:44px;margin-bottom:0}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.page-header-row:last-child{margin-bottom:0}.page-header-row .page-title{flex:1;min-width:0}.page-header-row .page-header-actions{flex:none}.generation-status{display:grid;place-items:center;width:100%;max-width:480px;min-height:18rem;margin:.5rem auto;padding:1.5rem;overflow:hidden;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-card-solid);transform-origin:top center;transition:opacity .35s ease,transform .6s cubic-bezier(.22,.8,.25,1),min-height .6s ease,padding .6s ease,margin .6s ease}.generation-status.is-finishing{min-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0;transform:scaleY(.08) translateY(-.5rem);pointer-events:none}.generation-status-label{margin-top:1.1rem;color:var(--text-primary);font-size:.86rem;font-weight:700;text-align:center}.generation-status-note{margin-top:.3rem;color:var(--text-muted);font-size:.68rem}.generation-tarot,.generation-crystal,.generation-horizon,.generation-pair,.generation-chart,.generation-stars{position:relative;width:11rem;height:8rem}.generation-tarot i{position:absolute;top:.6rem;left:4.35rem;width:2.4rem;height:4rem;border:1px solid var(--theme-tarot);border-radius:5px;background:var(--bg-modal);box-shadow:inset 0 0 0 3px var(--bg-modal),inset 0 0 0 4px #d4af3747;animation:generationShuffle 2.7s ease-in-out infinite;animation-delay:calc(var(--card) * -.11s)}.generation-crystal:before{content:"";position:absolute;top:.35rem;right:2.2rem;bottom:1rem;left:2.2rem;border:1px solid var(--accent-border);border-radius:50%;background:var(--bg-modal);box-shadow:inset 0 0 2.4rem var(--accent-soft),0 0 1.5rem var(--accent-glow);animation:generationBreathe 2.8s ease-in-out infinite}.generation-crystal i{position:absolute;left:4.2rem;bottom:.15rem;width:2.6rem;height:.65rem;border-radius:50%;background:var(--border-medium)}.generation-crystal span,.generation-stars span{position:absolute;inset:2.4rem 0 auto;color:var(--accent-text);font-size:1.7rem;text-align:center;animation:generationTurn 3.2s linear infinite}.generation-horizon{overflow:hidden;border:1px solid var(--border-subtle);border-radius:50% 50% 8px 8px;background:var(--bg-modal)}.generation-horizon:before,.generation-horizon:after{content:"";position:absolute;right:-1rem;bottom:1.4rem;left:-1rem;height:2.3rem;border-top:1px solid var(--theme-weekly);border-radius:50%;animation:generationHorizon 2.8s ease-in-out infinite}.generation-horizon:after{bottom:.5rem;opacity:.45;animation-delay:-.8s}.generation-horizon span{position:absolute;top:1.4rem;left:1.2rem;color:var(--theme-weekly);animation:generationDrift 2.8s ease-in-out infinite}.generation-pair i{position:absolute;top:1.2rem;width:4.2rem;height:4.2rem;border:1px solid var(--theme-compat);border-radius:50%;animation:generationPair 2.6s ease-in-out infinite}.generation-pair i:first-child{left:1rem}.generation-pair i:nth-child(2){right:1rem;animation-direction:reverse}.generation-pair span{position:absolute;inset:2.25rem 0 auto;color:var(--theme-compat);font-size:2rem;text-align:center;animation:generationBreathe 1.8s ease-in-out infinite}.generation-chart{animation:generationTurn 9s linear infinite}.generation-chart:before,.generation-chart:after{content:"";position:absolute;top:.8rem;right:2.3rem;bottom:.8rem;left:2.3rem;border:1px solid var(--theme-chart);border-radius:50%;opacity:.35}.generation-chart:after{top:1.8rem;right:3.3rem;bottom:1.8rem;left:3.3rem}.generation-chart i{position:absolute;width:.42rem;height:.42rem;border-radius:50%;background:var(--theme-chart);box-shadow:0 0 .7rem var(--theme-chart)}.generation-chart i:nth-child(1){top:.8rem;left:5.3rem}.generation-chart i:nth-child(2){top:2rem;right:2rem}.generation-chart i:nth-child(3){right:1.5rem;bottom:1.2rem}.generation-chart i:nth-child(4){bottom:.6rem;left:5.3rem}.generation-chart i:nth-child(5){bottom:1.2rem;left:1.5rem}.generation-chart i:nth-child(6){top:2rem;left:2rem}.generation-stars i{position:absolute;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent-text);animation:generationDrift 2.6s ease-in-out infinite}.generation-stars i:first-child{top:1rem;left:2rem}.generation-stars i:nth-child(2){top:2rem;right:1.5rem;animation-delay:-.8s}.generation-stars i:nth-child(3){bottom:1rem;left:3.5rem;animation-delay:-1.5s}@keyframes generationShuffle{0%,to{transform:translate(calc((var(--card) - 2) * .45rem)) rotate(calc((var(--card) - 2) * 3deg))}45%{transform:translate(calc((var(--card) - 2) * 1.55rem)) rotate(calc((var(--card) - 2) * 8deg))}70%{transform:translate(calc((var(--card) - 2) * -.45rem)) rotate(calc((var(--card) - 2) * -3deg))}}@keyframes generationBreathe{50%{transform:scale(1.07);opacity:.82}}@keyframes generationTurn{to{transform:rotate(360deg)}}@keyframes generationHorizon{50%{transform:translateY(-.45rem) scaleX(1.08)}}@keyframes generationDrift{50%{transform:translate(.4rem,-.55rem);opacity:.55}}@keyframes generationPair{50%{transform:translate(.7rem) scale(.94)}}@media(prefers-reduced-motion:reduce){.generation-status,.generation-status *{animation:none!important;transition:none!important}}.feed-page{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:600px;margin:0 auto;padding:0 1.25rem;overflow:hidden}.feed-scroll-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;padding:0 .3rem;margin:0;-webkit-overflow-scrolling:touch;padding-bottom:calc(5rem + env(safe-area-inset-bottom,0px))}.feed-scroll-inner{flex:1;padding-top:.5rem}.pull-indicator{display:flex;align-items:center;justify-content:center;overflow:hidden;transition:height .15s ease}.pull-spinner{font-size:1.2rem;color:var(--accent-soft);transition:all .2s}.pull-spinner.ready{color:var(--accent);transform:scale(1.2)}.feed-page .page-sticky-header{position:relative}.sign-info{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.4rem}.sign-badge{cursor:pointer;font-size:.78rem;font-weight:500;color:var(--accent);border:1px solid var(--accent-border);background:var(--accent-soft);border-radius:12px;padding:.15rem .5rem;transition:background .15s,border-color .15s}.sign-badge:hover{background:#a855f71a;border-color:#a855f74d}.sign-badge.active{background:#a855f726;border-color:#a855f759}.sign-tooltip-inline{padding:.6rem .75rem;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:10px;margin-top:.4rem;animation:tabFadeIn .15s ease-out}.sign-tooltip-icons{display:flex;gap:1rem;justify-content:center;margin-bottom:.5rem}.sign-tooltip-icon-item{display:flex;flex-direction:column;align-items:center;gap:.15rem}.sign-tooltip-emoji{font-size:1.2rem}.sign-tooltip-icon-label{font-size:.5rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.sign-tooltip-desc{font-size:.72rem;color:var(--text-secondary);line-height:1.5;margin:0 0 .4rem;padding-top:.4rem;border-top:1px solid var(--border-subtle)}.sign-tooltip-element{font-size:.65rem;color:var(--text-secondary);line-height:1.5;margin:0}.sign-tooltip-element strong{color:var(--accent)}.feed-tabs{display:flex;gap:0;margin-bottom:.4rem;background:var(--bg-surface);border-radius:12px;padding:3px;border:1px solid var(--border-subtle)}.tab{flex:1;padding:.55rem 0;border:none;border-radius:10px;background:transparent;color:var(--text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}.tab:hover{color:var(--text-primary)}.tab.active{background:#a855f726;color:var(--accent-text)}.tab-content{min-height:300px}.feed-loading{text-align:center;padding:3rem 0;color:var(--text-secondary);font-size:.95rem}.feed-error{text-align:center;padding:1.5rem;background:var(--error-bg);border-radius:14px;border:1px solid var(--error-border);margin:1rem 0}.feed-error p{color:var(--error);margin:0 0 .75rem;font-size:.85rem}.retry-btn{padding:.4rem 1.25rem;border:1px solid var(--border-medium);border-radius:10px;background:var(--bg-input);color:var(--text-primary);cursor:pointer;font-size:.8rem}.retry-btn:hover{background:var(--bg-input-focus)}.feed-footer{text-align:center;font-size:.78rem;color:var(--text-secondary);margin-top:1rem}.welcome-card{text-align:center;padding:2rem 1.5rem;margin:1.5rem auto;max-width:360px;background:var(--bg-surface);border:1px solid var(--accent-border);border-radius:20px}.welcome-icon{font-size:2.5rem;display:block;margin-bottom:.75rem}.welcome-title{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0 0 .4rem}.welcome-desc{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin:0 0 1.25rem}.welcome-btn{padding:.75rem 2rem;border:none;border-radius:14px;background:var(--accent-gradient);color:var(--text-on-accent);font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.welcome-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-glow)}.history-filters{display:flex;gap:.25rem;flex-wrap:wrap;padding:0 .3rem;margin:0}.filter-chip{padding:.3rem .6rem;min-height:44px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-surface);color:var(--text-secondary);font-size:.7rem;cursor:pointer;text-transform:capitalize;font-family:inherit;transition:background .15s,border-color .15s}.filter-chip:hover{border-color:var(--accent-border)}.filter-chip.active{background:#a855f71f;border-color:#a855f740;color:var(--accent-text)}.history-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem;padding:.75rem 0}.page-btn{padding:.4rem 1rem;border:1px solid var(--border-medium);border-radius:8px;background:var(--bg-input);color:var(--text-primary);cursor:pointer;font-size:.8rem;font-family:inherit}.page-btn:hover:not(:disabled){background:var(--bg-input-focus)}.page-btn:disabled{opacity:.25;cursor:not-allowed}.page-info{font-size:.78rem;color:var(--text-secondary)}.history-date-header{font-size:.72rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;padding:1rem 0 .35rem .25rem;border-top:1px solid var(--border-subtle);margin-top:.5rem}.history-date-header:first-child{border-top:none;margin-top:0}.reading-menu{max-width:480px;margin:.5rem auto}.menu-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin:0 0 .25rem}.menu-subtitle{font-size:.75rem;color:var(--text-muted);margin:0 0 1rem}.menu-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error);padding:.5rem .75rem;border-radius:8px;font-size:.8rem;margin-bottom:.75rem;text-align:center}.reading-input-panel{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:16px;padding:1.25rem;margin-bottom:1rem}.reading-input-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.input-hint{font-size:.78rem;color:var(--text-muted);margin:0 0 .75rem}.reading-text-input{width:100%;padding:.7rem 1rem;border:1px solid var(--border-medium);border-radius:12px;background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:.9rem;box-sizing:border-box}.reading-text-input:focus-visible{border-color:var(--accent)}.reading-text-input::placeholder{color:var(--text-placeholder)}.reading-textarea{width:100%;padding:.7rem 1rem;border:1px solid var(--border-medium);border-radius:12px;background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:80px;box-sizing:border-box}.reading-textarea:focus-visible{border-color:var(--accent)}.reading-textarea::placeholder{color:var(--text-placeholder)}.input-actions{display:flex;gap:.5rem;margin-top:.75rem}.input-cancel{flex:1;padding:.55rem;border:1px solid var(--border-medium);border-radius:10px;background:transparent;color:var(--text-muted);font-size:.82rem;cursor:pointer;font-family:inherit}.input-submit{flex:1;padding:.55rem;border:none;border-radius:10px;background:var(--accent-gradient);color:var(--text-on-accent);font-weight:600;font-size:.82rem;cursor:pointer;font-family:inherit}.input-submit:disabled{opacity:.4;cursor:not-allowed}.reading-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.reading-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.85rem;border:1px solid var(--border-medium);border-left:3px solid var(--reading-accent, var(--accent));border-radius:14px;background:var(--bg-input);cursor:pointer;transition:all .15s;text-align:left;font-family:inherit;color:var(--text-primary)}.reading-btn:hover:not(:disabled){border-color:#a855f740;background:#a855f714;transform:translateY(-1px)}.reading-btn:active:not(:disabled){transform:scale(.97);background:var(--accent-soft);border-color:#a855f759}.reading-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.reading-btn.exhausted{opacity:.5}.reading-btn.completed.exhausted{opacity:1}.reading-btn.completed>:not(.reading-view-chart){opacity:.5;filter:grayscale(.55)}.reading-btn.completed .reading-cost{color:var(--text-muted)}.reading-btn.completed:hover{transform:none;background:var(--bg-input);border-color:var(--border-medium)}.reading-view-chart{display:flex;align-items:center;justify-content:center;gap:.25rem;width:100%;margin-top:.45rem;padding:.45rem .5rem;border:1px solid rgba(59,130,246,.25);border-radius:8px;background:#3b82f614;color:var(--theme-chart);font:inherit;font-size:.7rem;font-weight:600;cursor:pointer}.reading-view-chart:hover{background:#3b82f624}.reading-icon-wrap{display:flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:10px;background:color-mix(in srgb,var(--reading-accent, var(--accent)) 12%,transparent);margin-bottom:.3rem}.reading-icon{font-size:1.1rem;line-height:1}.reading-label{font-size:.82rem;font-weight:500}.reading-desc{font-size:.78rem;color:var(--text-muted);line-height:1.4}.reading-bottom{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:.3rem}.reading-cost{font-size:.72rem;font-weight:600;color:var(--star-color)}.reading-status{font-size:.6rem;color:var(--text-muted);font-style:italic}.readings-subtitle-row{display:flex;padding:0}.readings-subtitle{font-size:.68rem;color:var(--text-hint);margin:0}.readings-subtitle:first-child{flex:3}.readings-subtitle:last-child{flex:1;text-align:left}.compact-badge-group{width:100%}.compact-badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.compact-badge-button{min-width:0;min-height:52px;padding:.4rem .55rem;display:flex;align-items:center;gap:.5rem;border:1px solid var(--accent-border);border-radius:12px;background:var(--accent-soft);color:var(--text-primary);text-align:left;cursor:pointer}.compact-badge-button:hover,.compact-badge-button.active{border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.compact-badge-icon{flex:0 0 auto;font-size:1.25rem;line-height:1}.compact-badge-copy{min-width:0;display:flex;flex-direction:column}.compact-badge-copy strong{overflow:hidden;color:var(--accent-text);font-size:.78rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.compact-badge-copy small{margin-top:.12rem;overflow:hidden;color:var(--text-hint);font-size:.5rem;font-weight:600;letter-spacing:.6px;line-height:1.2;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.compact-badge-detail{margin-top:.4rem;transform-origin:top center;animation:compactBadgeDetailIn .3s cubic-bezier(.2,.82,.25,1) both}.compact-badge-detail .expandable-badge{margin:0}@keyframes compactBadgeDetailIn{0%{opacity:0;transform:translateY(-.25rem) scaleY(.97)}to{opacity:1;transform:translateY(0) scaleY(1)}}@media(prefers-reduced-motion:reduce){.compact-badge-detail{animation:none}}.profile-container{width:100%;max-width:480px;margin:0;padding:0}.page-sticky-header .expandable-badge{margin-bottom:.4rem}.page-sticky-header .expandable-badge:last-child{margin-bottom:0}.profile-details-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0 .5rem}.detail-chip{display:flex;flex-direction:column;align-items:center;flex:1;min-width:70px;padding:.4rem .3rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;text-align:center}.detail-chip-label{font-size:.5rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-placeholder);margin-bottom:.1rem}.detail-chip-value{font-size:.75rem;font-weight:500;color:var(--accent-text)}.detail-chip-source{font-size:.45rem;color:var(--text-hint);margin-top:.1rem;font-style:italic}.edit-btn{width:100%;padding:.55rem;border:1px solid var(--border-medium);border-radius:10px;background:var(--bg-surface);color:var(--text-muted);font-size:.78rem;cursor:pointer;transition:all .2s;font-family:inherit}.edit-btn:hover{background:var(--bg-input);border-color:var(--accent);color:var(--accent-text)}.cancel-btn{width:100%;padding:.5rem;border:none;border-radius:10px;background:transparent;color:var(--text-hint);font-size:.78rem;cursor:pointer;margin-top:.5rem;font-family:inherit}.cancel-btn:hover{color:var(--text-secondary)}.profile-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error);padding:.6rem .8rem;border-radius:10px;font-size:.8rem;margin-top:.75rem}.profile-container h3{font-size:.95rem;font-weight:500;color:var(--text-secondary);margin:0 0 .75rem}.birth-chart-section{padding:.5rem 0;border-top:1px solid var(--border-subtle)}.chart-section-title{font-size:1rem!important;font-weight:600!important;color:var(--theme-chart)!important;margin-bottom:.6rem!important}.chart-loading{color:var(--text-hint);font-size:.8rem;text-align:center;padding:.75rem 0}.chart-unlock{text-align:center;padding:1rem;background:#3b82f60a;border:1px dashed rgba(59,130,246,.18);border-radius:14px}.chart-unlock-desc{font-size:.78rem;color:var(--text-muted);line-height:1.5;margin:0 0 .85rem}.chart-unlock-btn{padding:.6rem 1.25rem;border:none;border-radius:10px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:var(--text-on-accent);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.chart-unlock-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #3b82f666}.chart-unlock-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.chart-error{color:var(--error);font-size:.78rem;margin-bottom:.6rem}.password-input-wrap{position:relative;width:100%}.password-input-wrap input{width:100%;padding-right:3rem!important}.password-visibility{position:absolute;top:50%;right:.2rem;width:44px;min-height:44px;padding:0;display:grid;place-items:center;transform:translateY(-50%);border:0;background:transparent;color:var(--text-muted);cursor:pointer}.password-visibility:hover,.password-visibility:focus-visible{color:var(--text-primary)}.auth-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.25rem}.auth-form .wizard-button{padding-top:.75rem}.auth-container{width:100%;max-width:420px}.auth-header{text-align:center;margin-bottom:2rem}.app-logo{font-size:2.5rem;font-weight:700;margin:0;background:linear-gradient(135deg,#a855f7,#ec4899,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px}.app-tagline{font-size:.95rem;color:var(--text-muted);margin:.5rem 0 0}.auth-form{background:none;border:none;padding:0}.auth-form .wizard-content{min-height:min(var(--content-height, 34rem),calc(100dvh - 12rem));background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:20px;padding:2rem}.auth-form h2{font-size:1.3rem;font-weight:600;margin:0 0 1.5rem;color:var(--text-primary)}.auth-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error);padding:.75rem 1rem;border-radius:10px;font-size:.85rem;margin-bottom:1rem}.auth-form .field-group{margin-bottom:1.25rem}.auth-form .field-group label{display:block;font-size:.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:.4rem}.auth-form .field-group input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-medium);border-radius:12px;background:var(--bg-input);color:var(--text-primary);font-size:1rem;transition:border-color .2s;box-sizing:border-box}.auth-form .field-group input:focus-visible{border-color:var(--accent)}.auth-form .field-group input::placeholder{color:var(--text-placeholder)}.auth-form .submit-btn{width:100%;padding:.85rem;border:none;border-radius:14px;background:var(--accent-gradient);color:var(--text-on-accent);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.auth-form .submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-glow)}.auth-form .submit-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;font-size:.85rem;color:var(--text-secondary);margin:1.25rem 0 0}.auth-form .auth-switch a{color:var(--accent);text-decoration:none;font-weight:500}.auth-switch a:hover{text-decoration:underline}.social-sign-in{width:100%;padding:.75rem;border:1px solid var(--border-medium);border-radius:14px;background:var(--bg-input);color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.6rem;transition:all .2s;font-family:inherit;margin-bottom:.5rem}.social-sign-in:hover{background:var(--bg-input-focus);border-color:var(--text-placeholder)}.social-sign-in svg{flex-shrink:0}.google-sign-in{display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;margin-bottom:.5rem;overflow:visible}.google-sign-in>div{max-width:100%}.apple-sign-in{background:#fff;color:#000;border-color:#fff}.apple-sign-in:hover{background:#f0f0f0;border-color:#f0f0f0}.apple-sign-in svg path{fill:#000}.auth-divider{display:flex;align-items:center;margin:1rem 0;gap:.75rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-medium)}.auth-divider span{font-size:.75rem;color:var(--text-placeholder);text-transform:uppercase;letter-spacing:1px}.forgot-link{display:block;text-align:center;font-size:.82rem;color:var(--accent);font-weight:500;margin-top:.75rem;text-decoration:none}.forgot-link:hover{color:var(--accent)}.auth-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin:0 0 1.25rem}.auth-legal{text-align:center;font-size:.7rem;color:var(--text-muted);margin:.75rem 0 0}.auth-legal a{color:var(--text-secondary);text-decoration:underline}*,*:before,*:after{box-sizing:border-box}:root{color-scheme:dark light;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px);--bg-body: #0a0612;--bg-body-gradient: linear-gradient(160deg, #0a0612 0%, #110b20 30%, #0d0a1a 60%, #080510 100%);--bg-header: #0d0a1a;--bg-card: linear-gradient(135deg, rgba(20, 10, 40, .95), rgba(40, 15, 60, .95));--bg-card-solid: rgba(255, 255, 255, .02);--bg-card-hover: rgba(255, 255, 255, .05);--bg-surface: rgba(255, 255, 255, .03);--bg-input: rgba(255, 255, 255, .06);--bg-input-focus: rgba(255, 255, 255, .1);--bg-overlay: rgba(0, 0, 0, .6);--bg-modal: #1e1330;--bg-toast: #1e1330;--text-primary: #e8dff5;--text-secondary: rgba(255, 255, 255, .75);--text-muted: rgba(255, 255, 255, .6);--text-hint: rgba(255, 255, 255, .58);--text-placeholder: rgba(255, 255, 255, .55);--text-on-accent: white;--border-subtle: rgba(255, 255, 255, .06);--border-medium: rgba(255, 255, 255, .12);--accent: #a855f7;--accent-strong: #7c3aed;--accent-soft: rgba(168, 85, 247, .15);--accent-border: rgba(168, 85, 247, .2);--accent-gradient: linear-gradient(135deg, #6d28d9, #7c3aed);--accent-glow: rgba(124, 58, 237, .4);--accent-text: #d4b5ff;--theme-tarot: #d4af37;--theme-compat: #ec4899;--theme-ask: #14b8a6;--theme-chart: #3b82f6;--theme-weekly: #22c55e;--theme-custom: #f59e0b;--theme-guest: #fbbf24;--star-color: #f59e0b;--star-bg: rgba(245, 158, 11, .08);--star-border: rgba(245, 158, 11, .25);--error: #fca5a5;--error-bg: rgba(239, 68, 68, .12);--error-border: rgba(239, 68, 68, .25);--error-strong: #ef4444;--success: #86efac;--success-bg: rgba(34, 197, 94, .12);--success-border: rgba(34, 197, 94, .25);--danger-gradient: linear-gradient(135deg, #dc2626, #ef4444);--shadow-card: 0 4px 20px rgba(0, 0, 0, .3);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .5);--cosmic-1: rgba(120, 50, 220, .08);--cosmic-2: rgba(200, 80, 180, .05);--cosmic-3: rgba(80, 40, 160, .06)}html{font-size:16px;overscroll-behavior:none}body{margin:0;padding:0;padding-top:var(--sat);padding-bottom:var(--sab);padding-left:var(--sal);padding-right:var(--sar);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-body-gradient);background-attachment:fixed;color:var(--text-primary);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}button,[role=button],.tab-bar,nav{user-select:none;-webkit-user-select:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,var(--cosmic-1) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,var(--cosmic-2) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,var(--cosmic-3) 0%,transparent 55%);pointer-events:none;z-index:0}#root{position:relative;z-index:1}a{color:inherit;text-decoration:none}button{font-family:inherit}button,[role=button]{min-height:44px;transition:all .15s ease}a{transition:all .15s ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button:active:not(:disabled),.reading-btn:active,.chip:active,.vibe-btn:active,.filter-chip:active,.category-btn:active{transform:scale(.97);opacity:.85}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes modalPop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes expandIn{0%{opacity:0}to{opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.wizard-content{min-height:var(--content-height, 20rem)}.wizard-button{padding-top:1.25rem}.wizard-button .submit-btn{max-width:480px;margin:0 auto;display:block}.wizard-button .onboard-nav{max-width:480px;margin:0 auto}.content-button-gap{margin-top:1.5rem}.field-group{position:relative}.field-error{position:absolute;left:0;bottom:-.95rem;font-size:.75rem;line-height:1;color:var(--error);pointer-events:none}input,textarea,select{font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.submit-btn{width:100%;padding:.85rem;border:none;border-radius:14px;background:var(--accent-gradient);color:var(--text-on-accent);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;min-height:48px}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-glow)}.submit-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.secondary-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:40px;padding:.55rem .85rem;border:1px solid var(--accent-border);border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer;box-shadow:0 0 0 1px #ffffff08 inset}.secondary-action-btn:hover:not(:disabled),.secondary-action-btn:focus-visible{border-color:#a855f773;background:#a855f738;color:var(--text-primary)}.secondary-action-btn:disabled{opacity:.45;cursor:not-allowed}.secondary-action-icon{display:inline-flex;width:16px;height:16px;flex:0 0 16px}.secondary-action-icon svg{width:16px;height:16px}.app-page{max-width:600px;margin:0 auto;padding:0 1.25rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom,0px));min-height:100vh}.app-page.animated{animation:pageIn .2s ease-out}.page-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1.25rem .6rem;position:sticky;top:0;z-index:10;background:var(--bg-header);margin:0 -1.25rem}.page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.3px}.page-header-actions{display:flex;align-items:center;gap:.4rem}.page-header-stack{padding:.75rem 1.25rem .6rem;position:sticky;top:0;z-index:10;background:var(--bg-header);margin:0 -1.25rem}.nav-back{display:inline-flex;align-items:center;font-size:.82rem;color:var(--accent);text-decoration:none;background:none;border:none;padding:.5rem .25rem;cursor:pointer;font-family:inherit;min-height:44px;margin-bottom:0}.nav-back:hover{opacity:.8}.page-header-stack .page-title{margin:0}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:2px}.skip-link{position:fixed;top:-999px;left:1rem;padding:.75rem 1.25rem;background:var(--accent);color:var(--text-on-accent);border-radius:0 0 10px 10px;font-size:.85rem;font-weight:600;z-index:9999;text-decoration:none;opacity:0;pointer-events:none}.skip-link:focus-visible{top:0;opacity:1;pointer-events:auto}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(prefers-color-scheme:light){:root{color-scheme:light;--bg-body: #f2ecf9;--bg-body-gradient: #f2ecf9;--bg-header: #eae3f3;--bg-card: #faf8fd;--bg-card-solid: #f5f1fa;--bg-card-hover: #f0ecf6;--bg-surface: #eee8f5;--bg-input: #f5f1fa;--bg-input-focus: #f5f1fa;--bg-overlay: rgba(0, 0, 0, .35);--bg-modal: #f8f5fc;--bg-toast: #f8f5fc;--text-primary: #1c1028;--text-secondary: #433356;--text-muted: #6b5a80;--text-hint: #6b5a80;--text-placeholder: #6b5a80;--text-on-accent: white;--border-subtle: rgba(0, 0, 0, .1);--border-medium: rgba(0, 0, 0, .18);--accent: #6d28d9;--accent-strong: #5b21b6;--accent-soft: rgba(109, 40, 217, .1);--accent-border: rgba(109, 40, 217, .2);--accent-gradient: linear-gradient(135deg, #6d28d9, #7c3aed);--accent-glow: rgba(109, 40, 217, .3);--accent-text: #6d28d9;--theme-tarot: #92750a;--theme-compat: #be185d;--theme-ask: #0d7377;--theme-chart: #1d4ed8;--theme-weekly: #15803d;--theme-custom: #b45309;--theme-guest: #a16207;--star-color: #b45309;--star-bg: rgba(180, 83, 9, .06);--star-border: rgba(180, 83, 9, .2);--error: #b91c1c;--error-bg: rgba(185, 28, 28, .06);--error-border: rgba(185, 28, 28, .15);--error-strong: #dc2626;--success: #15803d;--success-bg: rgba(21, 128, 61, .06);--success-border: rgba(21, 128, 61, .15);--danger-gradient: linear-gradient(135deg, #dc2626, #ef4444);--shadow-card: 0 1px 4px rgba(0, 0, 0, .06);--shadow-modal: 0 16px 48px rgba(0, 0, 0, .12);--cosmic-1: rgba(109, 40, 217, .04);--cosmic-2: rgba(200, 80, 180, .03);--cosmic-3: rgba(80, 40, 160, .03)}.message-card{background:var(--bg-card);box-shadow:0 1px 3px #0000000a,0 0 0 1px var(--border-subtle);border-radius:20px}.message-card.theme-daily{background:linear-gradient(180deg,rgba(109,40,217,.06) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--accent)}.message-card.theme-tarot{background:linear-gradient(180deg,rgba(146,117,10,.07) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--theme-tarot)}.message-card.theme-compat{background:linear-gradient(180deg,rgba(190,24,93,.05) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--theme-compat)}.message-card.theme-ask{background:linear-gradient(180deg,rgba(13,115,119,.06) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--theme-ask)}.message-card.theme-chart{background:linear-gradient(180deg,rgba(29,78,216,.05) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--theme-chart)}.message-card.theme-weekly{background:linear-gradient(180deg,rgba(21,128,61,.05) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--theme-weekly)}.message-card.theme-custom{background:linear-gradient(180deg,rgba(180,83,9,.06) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--theme-custom)}.message-card.theme-guest{background:linear-gradient(180deg,rgba(161,98,7,.06) 0%,var(--bg-card) 40%);box-shadow:0 1px 3px #0000000a,inset 0 2px 0 var(--theme-guest)}.message-card-collapsed{background:var(--bg-card);box-shadow:0 1px 2px #00000008}.message-card-collapsed.theme-daily{border-left:3px solid var(--accent);background:#6d28d908}.message-card-collapsed.theme-tarot{border-left:3px solid var(--theme-tarot);background:#92750a0a}.message-card-collapsed.theme-compat{border-left:3px solid var(--theme-compat);background:#be185d08}.message-card-collapsed.theme-ask{border-left:3px solid var(--theme-ask);background:#0d73770a}.message-card-collapsed.theme-chart{border-left:3px solid var(--theme-chart);background:#1d4ed808}.message-card-collapsed.theme-weekly{border-left:3px solid var(--theme-weekly);background:#15803d08}.message-card-collapsed.theme-custom{border-left:3px solid var(--theme-custom);background:#b453090a}.message-card-collapsed.theme-guest{border-left:3px solid var(--theme-guest);background:#a162070a}.message-card .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--accent));-webkit-background-clip:text;background-clip:text}.message-card.theme-tarot .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--theme-tarot));-webkit-background-clip:text;background-clip:text}.message-card.theme-compat .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--theme-compat));-webkit-background-clip:text;background-clip:text}.message-card.theme-ask .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--theme-ask));-webkit-background-clip:text;background-clip:text}.message-card.theme-chart .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--theme-chart));-webkit-background-clip:text;background-clip:text}.message-card.theme-weekly .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--theme-weekly));-webkit-background-clip:text;background-clip:text}.message-card.theme-custom .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--theme-custom));-webkit-background-clip:text;background-clip:text}.message-card.theme-guest .greeting{background:linear-gradient(135deg,var(--text-primary) 30%,var(--theme-guest));-webkit-background-clip:text;background-clip:text}.message-card.theme-daily .greeting{text-shadow:none}.card-bg-overlay{background:linear-gradient(180deg,#fff6,#ffffffd9 60%,#fffffffa)}.tab-bar{background:#eae3f3f7;border-top:1px solid var(--border-subtle)}.apple-sign-in{background:#000;color:#fff;border-color:#000}.apple-sign-in:hover{background:#222;border-color:#222}.apple-sign-in svg path{fill:#fff}}
