:root{--bg: #0F0A1A;--violet: #B14EFF;--turquoise: #3DFDFF;--text: #EAE6F5;--card-bg: #17102b;--font-heading: "Space Grotesk", sans-serif;--font-body: "Inter", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-heading);margin:0 0 8px}.app-shell{position:relative;min-height:100vh;padding:20px 16px 40px;display:flex;flex-direction:column;gap:20px}.mystic-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.stardust-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(1px 1px at 10% 20%,rgba(234,230,245,.8),transparent),radial-gradient(1.5px 1.5px at 80% 10%,rgba(61,253,255,.7),transparent),radial-gradient(1px 1px at 60% 70%,rgba(177,78,255,.7),transparent),radial-gradient(1.5px 1.5px at 30% 85%,rgba(234,230,245,.6),transparent),radial-gradient(1px 1px at 90% 60%,rgba(61,253,255,.5),transparent),linear-gradient(160deg,#0f0a1a,#180f2e,#0f0a1a);background-size:200% 200%;animation:drift 40s ease-in-out infinite alternate}@keyframes drift{0%{background-position:0% 0%}to{background-position:100% 100%}}.nebula{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform,opacity}.nebula-1{top:-10vh;left:-20vw;width:90vw;height:70vh;background:radial-gradient(ellipse at center,rgba(177,78,255,.16),transparent 65%);animation:nebula-morph 46s ease-in-out infinite alternate}.nebula-2{top:30vh;right:-25vw;width:85vw;height:65vh;background:radial-gradient(ellipse at center,rgba(61,253,255,.09),transparent 65%);animation:nebula-morph 58s ease-in-out -20s infinite alternate-reverse}@keyframes nebula-morph{0%{transform:translate(0) scale(1);opacity:.7}50%{transform:translate(12vw,8vh) scale(1.25);opacity:1}to{transform:translate(-6vw,-5vh) scale(.9);opacity:.6}}.aurora{position:absolute;top:-12vh;left:-10vw;right:-10vw;height:42vh;filter:blur(28px);transform-origin:top center;opacity:0;will-change:transform,opacity}.aurora-1{background:linear-gradient(100deg,transparent 15%,rgba(61,253,255,.16) 35%,rgba(177,78,255,.2) 55%,rgba(61,253,255,.12) 72%,transparent 88%);animation:aurora-visit 47s ease-in-out infinite}.aurora-2{height:34vh;background:linear-gradient(80deg,transparent 20%,rgba(177,78,255,.14) 45%,rgba(61,253,255,.18) 65%,transparent 85%);animation:aurora-visit 63s ease-in-out -23s infinite}@keyframes aurora-visit{0%,55%{opacity:0;transform:skewY(-3deg) translate(-6vw)}62%{opacity:1}70%{opacity:.75;transform:skewY(2deg) translate(4vw)}78%{opacity:1;transform:skewY(-2deg) translate(-2vw)}88%,to{opacity:0;transform:skewY(-3deg) translate(6vw)}}.star-layer{position:absolute;left:0;right:0;top:0;height:200%;background-repeat:repeat;will-change:transform}.star-layer-far{background-image:radial-gradient(1px 1px at 15% 15%,rgba(234,230,245,.5),transparent),radial-gradient(1px 1px at 45% 40%,rgba(177,78,255,.4),transparent),radial-gradient(1px 1px at 75% 25%,rgba(234,230,245,.4),transparent),radial-gradient(1px 1px at 90% 45%,rgba(61,253,255,.35),transparent);background-size:100vw 50vh;animation:star-scroll 120s linear infinite}.star-layer-near{background-image:radial-gradient(1.6px 1.6px at 25% 30%,rgba(234,230,245,.85),transparent),radial-gradient(1.4px 1.4px at 65% 10%,rgba(61,253,255,.7),transparent),radial-gradient(1.8px 1.8px at 85% 40%,rgba(177,78,255,.7),transparent);background-size:100vw 50vh;animation:star-scroll 55s linear infinite}@keyframes star-scroll{0%{transform:translateY(-50%)}to{transform:translateY(0)}}.meteor{position:absolute;top:-4vh;width:2px;height:90px;border-radius:2px;background:linear-gradient(to bottom,transparent,rgba(234,230,245,.9),rgba(61,253,255,.6));transform:rotate(35deg);opacity:0;will-change:transform,opacity}.meteor-1{left:20vw;animation:meteor-fall 11s ease-in 4s infinite}.meteor-2{left:70vw;height:70px;animation:meteor-fall 17s ease-in 9.5s infinite}@keyframes meteor-fall{0%{transform:translate(0) rotate(35deg);opacity:0}2%{opacity:.9}8%{transform:translate(-38vw,55vh) rotate(35deg);opacity:0}to{transform:translate(-38vw,55vh) rotate(35deg);opacity:0}}.float-symbol{position:absolute;bottom:-8vh;font-size:22px;opacity:0;animation-name:symbol-rise;animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform,opacity}.float-symbol.violet{color:#b14effcc;text-shadow:0 0 10px rgba(177,78,255,.6)}.float-symbol.turquoise{color:#3dfdffb3;text-shadow:0 0 10px rgba(61,253,255,.5)}@keyframes symbol-rise{0%{transform:translate(0) rotate(-6deg);opacity:0}12%{opacity:.16}55%{opacity:.12}to{transform:translate(var(--sway),-115vh) rotate(6deg);opacity:0}}.smoke{position:absolute;bottom:-30vh;width:70vw;height:60vh;border-radius:50%;filter:blur(50px);opacity:0;will-change:transform,opacity;animation:smoke-rise 16s ease-in-out infinite}.smoke-1{left:-15vw;background:radial-gradient(ellipse at center,rgba(177,78,255,.14),transparent 70%);animation-delay:0s}.smoke-2{left:40vw;background:radial-gradient(ellipse at center,rgba(61,253,255,.08),transparent 70%);animation-delay:-6s;animation-duration:20s}.smoke-3{left:10vw;background:radial-gradient(ellipse at center,rgba(177,78,255,.1),transparent 70%);animation-delay:-12s;animation-duration:24s}@keyframes smoke-rise{0%{transform:translateY(0) scale(1);opacity:0}25%{opacity:1}60%{opacity:.6}to{transform:translateY(-55vh) scale(1.5);opacity:0}}.content-layer{position:relative;z-index:1}.neon-btn{font-family:var(--font-heading);font-weight:600;font-size:15px;color:#0f0a1a;background:linear-gradient(90deg,var(--violet),var(--turquoise));border:none;border-radius:999px;padding:14px 24px;cursor:pointer;box-shadow:0 0 12px #b14eff99,0 0 24px #3dfdff40;animation:pulse-glow 2.4s ease-in-out infinite;transition:transform .15s ease}.neon-btn:active{transform:scale(.97)}.neon-btn:disabled{opacity:.5;cursor:default;animation:none}@keyframes pulse-glow{0%,to{box-shadow:0 0 10px #b14eff80,0 0 20px #3dfdff33}50%{box-shadow:0 0 18px #b14effd9,0 0 34px #3dfdff73}}.ghost-btn{background:transparent;border:1px solid rgba(177,78,255,.5);color:var(--text);border-radius:999px;padding:10px 18px;font-family:var(--font-body);cursor:pointer}.picker-grid{display:grid;gap:10px}.picker-option{background:var(--card-bg);border:1px solid rgba(177,78,255,.25);border-radius:14px;padding:14px 16px;color:var(--text);text-align:left;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.picker-option:hover,.picker-option.selected{border-color:var(--turquoise);box-shadow:0 0 14px #3dfdff4d}.deck-stage{position:relative;height:220px;display:flex;align-items:center;justify-content:center}.deck-card-back{position:absolute;width:90px;height:140px;border-radius:10px;background:linear-gradient(160deg,#241542,#120a22);border:1px solid rgba(177,78,255,.5);box-shadow:0 0 16px #b14eff73}.deck-shuffling .deck-card-back{animation:fan-shuffle 1.1s ease-in-out infinite}.deck-card-back:nth-child(1){animation-delay:0s}.deck-card-back:nth-child(2){animation-delay:.05s}.deck-card-back:nth-child(3){animation-delay:.1s}.deck-card-back:nth-child(4){animation-delay:.15s}.deck-card-back:nth-child(5){animation-delay:.2s}@keyframes fan-shuffle{0%{transform:translate(0) rotate(0);filter:brightness(1)}30%{transform:translate(-26px) rotate(-14deg);filter:brightness(1.3)}60%{transform:translate(26px) rotate(14deg);filter:brightness(1.3)}to{transform:translate(0) rotate(0);filter:brightness(1)}}.spread-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;perspective:1200px}.tarot-card{position:relative;width:118px;height:188px;cursor:pointer}.tarot-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.tarot-card.flying .tarot-card-inner{animation:fly-to-position .5s ease-out}@keyframes fly-to-position{0%{transform:translateY(60px) scale(.7) rotate(6deg);opacity:0}to{transform:translateY(0) scale(1) rotate(0);opacity:1}}.tarot-card.revealed .tarot-card-inner{transform:rotateY(180deg)}.tarot-card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:10px;display:flex;align-items:center;justify-content:center;text-align:center;padding:6px;font-size:11px;font-family:var(--font-heading)}.tarot-card-back{background:linear-gradient(160deg,#241542,#120a22);border:1px solid rgba(177,78,255,.6);box-shadow:0 0 14px #b14eff66}.tarot-card-front{transform:rotateY(180deg);background:var(--card-bg);flex-direction:column;gap:4px}.tarot-card-front.major{border:1px solid var(--violet);box-shadow:0 0 18px #b14eff8c}.tarot-card-front.minor{border:1px solid var(--turquoise);box-shadow:0 0 18px #3dfdff80}.tarot-card-front.reversed{transform:rotateY(180deg) rotate(180deg);transition:transform .9s cubic-bezier(.3,.7,.2,1)}.tarot-card-front.reversed.righted{transform:rotateY(180deg) rotate(0)}.tarot-card-front.has-image{padding:0;overflow:hidden}.tarot-card-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;user-select:none;-webkit-user-select:none}.tarot-card-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 4px 5px;font-size:9px;letter-spacing:.04em;text-align:center;color:var(--text);background:linear-gradient(to top,rgba(15,10,26,.85),transparent);pointer-events:none}.tarot-card-front.reversed .tarot-card-caption{transform:rotate(180deg);top:0;bottom:auto}.tarot-card-front.reversed.righted .tarot-card-caption{transform:none;top:auto;bottom:0}.card-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0f0a1ae0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:zoom-fade-in .25s ease-out;cursor:zoom-out}@keyframes zoom-fade-in{0%{opacity:0}to{opacity:1}}.card-zoom-art{max-width:82vw;max-height:74vh;border-radius:16px;border:1px solid rgba(177,78,255,.6);box-shadow:0 0 40px #b14eff73;animation:zoom-pop .3s cubic-bezier(.2,.9,.3,1.2)}@keyframes zoom-pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.card-zoom-name{font-family:var(--font-heading);font-size:16px;color:var(--text);text-shadow:0 0 12px rgba(177,78,255,.8)}.dust-particle{position:absolute;left:50%;top:50%;border-radius:50%;pointer-events:none;opacity:0;animation:dust-converge .9s ease-in forwards;z-index:2}@keyframes dust-converge{0%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1);opacity:0}35%{opacity:1}to{transform:translate(-50%,-50%) scale(.15);opacity:0}}.tarot-card.revealed .tarot-card-front{animation:card-condense .8s ease-out .25s backwards}@keyframes card-condense{0%{filter:blur(10px) saturate(1.6);opacity:.25}to{filter:blur(0) saturate(1);opacity:1}}.position-label{margin-top:6px;font-size:11px;text-align:center;color:#eae6f5b3}.particle{position:absolute;width:4px;height:4px;border-radius:50%;pointer-events:none;animation:particle-burst .7s ease-out forwards}@keyframes particle-burst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}.reading-block{background:var(--card-bg);border-radius:14px;padding:16px 18px;border:1px solid rgba(177,78,255,.25);opacity:0;transform:translateY(16px);animation:fade-slide-up .5s ease-out forwards;white-space:pre-wrap;line-height:1.5}@keyframes fade-slide-up{to{opacity:1;transform:translateY(0)}}.advice-line{color:var(--turquoise);font-weight:600}@media (prefers-reduced-motion: reduce){.stardust-bg{animation:none}.star-layer,.meteor,.float-symbol,.smoke,.nebula,.aurora{animation:none;display:none}.deck-shuffling .deck-card-back{animation:none}.tarot-card-inner{transition:transform .25s linear}.tarot-card.flying .tarot-card-inner{animation:none}.dust-particle{animation:none;display:none}.tarot-card.revealed .tarot-card-front{animation:none}.tarot-card-front.reversed{transition:none}.card-zoom-overlay,.card-zoom-art,.neon-btn{animation:none}.reading-block{animation:none;opacity:1;transform:none}}.low-power .stardust-bg,.low-power .deck-shuffling .deck-card-back,.low-power .tarot-card.flying .tarot-card-inner{animation:none}.low-power .dust-particle{display:none}.low-power .tarot-card.revealed .tarot-card-front,.low-power .neon-btn{animation:none}.footer-note{text-align:center;font-size:12px;color:#eae6f580;margin-top:auto}
