:root{--bg: var(--tg-theme-bg-color, #17151f);--bg2: #201c2e;--text: var(--tg-theme-text-color, #f3eefb);--hint: var(--tg-theme-hint-color, #a99fc4);--accent: #b98cff;--accent2: #7b5cff;--gold: #e9c46a;--card-edge: #3a3350;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 50% -10%,#2a2340 0%,transparent 60%),var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}.bg-layer{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.stars{position:absolute;inset:-50%;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff 50%,transparent),radial-gradient(1.5px 1.5px at 70% 60%,#fff 50%,transparent),radial-gradient(1px 1px at 40% 80%,#e9c46a 50%,transparent),radial-gradient(1px 1px at 85% 20%,#fff 50%,transparent),radial-gradient(1.5px 1.5px at 55% 15%,#b98cff 50%,transparent),radial-gradient(1px 1px at 10% 70%,#fff 50%,transparent),radial-gradient(1px 1px at 90% 85%,#fff 50%,transparent),radial-gradient(1.5px 1.5px at 33% 45%,#fff 50%,transparent);background-size:320px 320px;opacity:.5;animation:drift 90s linear infinite}.stars2{background-size:200px 200px;opacity:.3;animation-duration:140s;animation-direction:reverse}@keyframes drift{0%{transform:translate(0)}to{transform:translate(-160px,-160px)}}.nebula{position:absolute;inset:0;background:radial-gradient(600px 400px at 25% 20%,rgba(123,92,255,.18),transparent 70%),radial-gradient(500px 500px at 80% 75%,rgba(55,177,132,.12),transparent 70%);animation:breathe 12s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.7}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.stars,.stars2,.nebula,.orb{animation:none}}#app{max-width:520px;margin:0 auto;padding:20px 18px 40px}.screen{display:flex;flex-direction:column;align-items:center;gap:16px}.home{padding-top:24px}.orb{font-size:72px;filter:drop-shadow(0 0 24px rgba(185,140,255,.55));animation:float 4s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}h1{margin:4px 0 0;font-size:30px;font-weight:800;letter-spacing:.5px;background:linear-gradient(120deg,var(--accent),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}h2{margin:6px 0 2px;font-size:22px;font-weight:700}.subtitle{margin:0;color:var(--hint);font-size:15px;text-align:center}.subtitle.small{font-size:13px}.note{color:var(--gold);font-size:14px;text-align:center}.menu{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:18px}.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px 18px;border:1px solid var(--card-edge);border-radius:16px;background:var(--bg2);color:var(--text);font-size:16px;font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .2s ease,filter .2s ease}.btn:active{transform:scale(.97)}.btn.primary{border:none;background:linear-gradient(120deg,var(--accent2),var(--accent));box-shadow:0 8px 24px #7b5cff66}.btn.share{background:linear-gradient(120deg,#2a6f5a,#37b184);border:none;color:#fff}.btn-emoji{font-size:18px}.actions{display:flex;gap:10px;width:100%;margin-top:8px}.actions .btn{flex:1}.link-back{align-self:flex-start;background:none;border:none;color:var(--hint);font-size:15px;cursor:pointer;padding:4px 0}.card-row{display:flex;gap:10px;justify-content:center;width:100%}.card-slot{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}.card-label{font-size:13px;color:var(--hint);font-weight:600}.card{width:130px;max-width:100%;aspect-ratio:2 / 3;perspective:900px;cursor:pointer}.card-row .card{width:100%}.card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.card.flipped .card-inner{transform:rotateY(180deg)}.card-back,.card-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--card-edge)}.card-back{background:repeating-linear-gradient(45deg,#2b2444 0 8px,#322a4e 8px 16px);color:var(--gold);font-size:30px;box-shadow:inset 0 0 30px #0006}.card-back span{filter:drop-shadow(0 0 8px rgba(233,196,106,.7))}.card-face{transform:rotateY(180deg);background:linear-gradient(160deg,#241f38,#191527);gap:8px;padding:10px;text-align:center;box-shadow:inset 0 0 30px #7b5cff26}.card.flipped .card-face{animation:reveal-glow .9s ease-out}@keyframes reveal-glow{0%{box-shadow:inset 0 0 30px #7b5cff26,0 0 #b98cff00}40%{box-shadow:inset 0 0 40px #b98cff80,0 0 40px #b98cffb3}to{box-shadow:inset 0 0 30px #7b5cff26,0 0 14px #b98cff40}}.card.reversed .card-symbol{transform:rotate(180deg)}.card-symbol{font-size:40px}.card-name{font-size:15px;font-weight:700}.card-orient{font-size:11px;color:var(--hint)}.card-meaning{max-width:320px;text-align:center;font-size:14px;line-height:1.45;color:var(--text);opacity:0;max-height:0;overflow:hidden;transition:opacity .4s ease,max-height .4s ease}.card-meaning.show{opacity:1;max-height:200px}.card-row .card-meaning{font-size:12px}.streak{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;margin:2px 0 4px;border-radius:999px;background:#e9c46a1f;border:1px solid rgba(233,196,106,.35);font-size:15px;font-weight:700;color:var(--gold)}.streak-flame{font-size:17px;animation:flicker 2.5s ease-in-out infinite}@keyframes flicker{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.streak-num{font-size:17px}.streak-word{color:var(--hint);font-weight:600;font-size:13px}.streak-empty{color:var(--hint);background:#a99fc41a;border-color:#a99fc440;font-weight:600;font-size:13px}.reveal-slot{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;min-height:240px;justify-content:center}.shuffle-stage{display:flex;flex-direction:column;align-items:center;gap:18px;transition:opacity .25s ease}.shuffle-stage.done{opacity:0}.shuffle-label{color:var(--hint);font-size:14px;letter-spacing:.3px}.shuffle-deck{position:relative;width:96px;height:144px}.shuffle-card{position:absolute;inset:0;border-radius:12px;border:1px solid var(--card-edge);background:repeating-linear-gradient(45deg,#2b2444 0 8px,#322a4e 8px 16px);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:22px;box-shadow:0 6px 16px #0006;transform-origin:bottom center}.shuffle-deck.go .shuffle-card{animation:riffle 1.3s cubic-bezier(.35,.1,.25,1) forwards;animation-delay:calc(var(--i) * .06s)}@keyframes riffle{0%{transform:translate(0) rotate(0)}30%{transform:translate(calc((var(--i) - var(--n)/2) * 16px)) translateY(-8px) rotate(calc((var(--i) - var(--n)/2) * 8deg))}60%{transform:translate(calc((var(--i) - var(--n)/2) * -10px)) rotate(calc((var(--i) - var(--n)/2) * -5deg))}to{transform:translate(0) rotate(0)}}@media(prefers-reduced-motion:reduce){.shuffle-deck.go .shuffle-card{animation-duration:.01s}.card.flipped .card-face{animation:none}}
