:root{--bg: #0f0c15;--bg2: #17121e;--panel: rgba(233, 224, 200, .04);--ink: #ece0c8;--ink-dim: #a99a7c;--gold: #c9a227;--gold-bright: #e9c46a;--gold-line: rgba(201, 162, 39, .55);--edge: rgba(201, 162, 39, .28);--display: "Cinzel", "Times New Roman", serif;--body: "Cormorant Garamond", Georgia, "Times New Roman", serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:var(--body);font-size:18px;background:var(--bg);color:var(--ink);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%,#f6ecd0 50%,transparent),radial-gradient(1.5px 1.5px at 70% 60%,#e9c46a 50%,transparent),radial-gradient(1px 1px at 40% 80%,#c9a227 50%,transparent),radial-gradient(1px 1px at 85% 20%,#f6ecd0 50%,transparent),radial-gradient(1.5px 1.5px at 55% 15%,#e9c46a 50%,transparent),radial-gradient(1px 1px at 10% 70%,#f6ecd0 50%,transparent),radial-gradient(1px 1px at 90% 85%,#e9c46a 50%,transparent),radial-gradient(1.5px 1.5px at 33% 45%,#f6ecd0 50%,transparent);background-size:340px 340px;opacity:.35;animation:drift 120s linear infinite}.stars2{background-size:220px 220px;opacity:.2;animation-duration:180s;animation-direction:reverse}@keyframes drift{0%{transform:translate(0)}to{transform:translate(-170px,-170px)}}.nebula{position:absolute;inset:0;background:radial-gradient(760px 460px at 50% -8%,rgba(201,162,39,.16),transparent 70%),radial-gradient(600px 600px at 80% 110%,rgba(201,162,39,.08),transparent 70%);animation:breathe 13s ease-in-out infinite}.bg-layer:after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(0,0,0,.55) 100%)}@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:22px 18px 44px}.screen{display:flex;flex-direction:column;align-items:center;gap:16px}.home{padding-top:18px}.orb{width:96px;height:96px;animation:float 5s ease-in-out infinite}.orb svg{width:100%;height:100%;filter:drop-shadow(0 0 16px rgba(201,162,39,.5))}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}h1{margin:10px 0 0;font-family:var(--display);font-weight:600;font-size:30px;letter-spacing:3px;text-transform:uppercase;color:var(--gold-bright);text-shadow:0 0 20px rgba(201,162,39,.35)}h2{margin:4px 0 0;font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-bright)}.subtitle{margin:0;color:var(--ink-dim);font-size:17px;text-align:center;font-style:italic;letter-spacing:.3px}.subtitle.small{font-size:15px}.note{color:var(--gold-bright);font-size:15px;text-align:center;font-style:italic}.rule{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:320px;color:var(--gold);margin:2px 0}.rule:before,.rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold-line))}.rule:after{background:linear-gradient(90deg,var(--gold-line),transparent)}.rule span{font-size:12px;opacity:.9}.menu{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:16px}.btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:15px 18px;border:1px solid var(--edge);border-radius:6px;background:linear-gradient(180deg,#e9e0c80d,#00000026);color:var(--ink);font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:transform .12s ease,box-shadow .25s ease,border-color .25s ease}.btn:active{transform:scale(.98)}.btn.primary{border-color:var(--gold-line);background:linear-gradient(180deg,#c9a22738,#c9a2270f);color:var(--gold-bright);box-shadow:0 0 22px #c9a2272e,inset 0 0 18px #c9a22714}.btn.primary:active{box-shadow:0 0 28px #c9a22752,inset 0 0 22px #c9a2272e}.btn.share{border-color:#78b49666;color:#bfe6d2;background:linear-gradient(180deg,#3c8c6e33,#3c8c6e0d)}.btn.ghost{border:none;background:none;color:var(--ink-dim);font-size:13px;letter-spacing:1.5px;padding:8px}.btn-emoji{font-size:16px;color:var(--gold)}.btn.primary .btn-emoji{color:var(--gold-bright)}.actions{display:flex;gap:10px;width:100%;margin-top:6px}.actions .btn{flex:1}.link-back{align-self:flex-start;background:none;border:none;color:var(--ink-dim);font-family:var(--display);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;padding:4px 0}.streak{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;margin:4px 0;border-radius:999px;border:1px solid var(--edge);background:#c9a22714;font-family:var(--display);font-size:14px;font-weight:500;color:var(--gold-bright);letter-spacing:1px}.streak-flame{font-size:15px;animation:flicker 2.6s ease-in-out infinite}@keyframes flicker{0%,to{transform:scale(1)}50%{transform:scale(1.16)}}.streak-word{color:var(--ink-dim);font-size:12px;letter-spacing:.5px}.streak-empty{color:var(--ink-dim);background:#e9e0c80d;font-size:12px}.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-family:var(--display);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold)}.card{width:150px;max-width:100%;aspect-ratio:2 / 3;perspective:1000px;cursor:pointer}.card.hero{width:216px}.card-row .card{width:100%}.card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s 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:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--gold-line);box-shadow:inset 0 0 0 3px #00000080,inset 0 0 0 4px #c9a22740}.card-back{background:radial-gradient(circle at 50% 40%,#241d2e,#120e18);color:var(--gold);font-size:30px}.card-back span{filter:drop-shadow(0 0 8px rgba(201,162,39,.7))}.card-back.has-back-img{background-size:cover;background-position:center}.card-face{transform:rotateY(180deg);background:radial-gradient(circle at 50% 30%,#221b2c,#14101c);gap:8px;padding:12px 10px;text-align:center}.card-art{display:flex;align-items:center;justify-content:center;width:100%;flex:1 1 auto;min-height:0;overflow:hidden}.card-img{display:none;width:100%;height:100%;object-fit:cover;border-radius:4px}.card.has-img .card-symbol{display:none}.card.has-img .card-img{display:block}.card.has-img.reversed .card-img{transform:rotate(180deg)}.card.has-img .card-face{padding:5px;gap:4px}.card.flipped .card-face{animation:reveal-glow 1s ease-out}@keyframes reveal-glow{0%{box-shadow:inset 0 0 0 3px #00000080,0 0 #c9a22700}45%{box-shadow:inset 0 0 0 3px #00000080,0 0 44px #e9c46ab3}to{box-shadow:inset 0 0 0 3px #00000080,inset 0 0 0 4px #c9a22740,0 0 16px #c9a22740}}.card.reversed .card-symbol{transform:rotate(180deg)}.card-symbol{font-size:44px}.card-name{font-family:var(--display);font-size:14px;font-weight:500;letter-spacing:1px;color:var(--gold-bright)}.card-orient{font-size:13px;color:var(--ink-dim);font-style:italic}.card-meaning{max-width:340px;text-align:center;font-size:17px;line-height:1.5;color:var(--ink);opacity:0;max-height:0;overflow:hidden;transition:opacity .5s ease,max-height .5s ease}.card-meaning.show{opacity:1;max-height:220px}.card-row .card-meaning{font-size:14px}.zoom-overlay{position:fixed;inset:0;z-index:50;background:#08060ce6;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .25s ease}.zoom-overlay.show{opacity:1}.zoom-card{max-width:78vw;max-height:82vh;width:auto;border-radius:10px;border:1px solid var(--gold-line);box-shadow:0 0 60px #c9a22766,inset 0 0 0 4px #00000080;transform:scale(.9);transition:transform .3s cubic-bezier(.2,.9,.2,1)}.zoom-overlay.show .zoom-card{transform:scale(1)}.zoom-card.reversed{transform:scale(.9) rotate(180deg)}.zoom-overlay.show .zoom-card.reversed{transform:scale(1) rotate(180deg)}.zoom-hint{position:absolute;bottom:26px;color:var(--ink-dim);font-family:var(--display);font-size:11px;letter-spacing:2px;text-transform:uppercase}.reveal-slot{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;min-height:260px;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(--ink-dim);font-style:italic;font-size:16px}.shuffle-deck{position:relative;width:100px;height:150px}.shuffle-card{position:absolute;inset:0;border-radius:8px;border:1px solid var(--gold-line);background:radial-gradient(circle at 50% 40%,#241d2e,#120e18);box-shadow:inset 0 0 0 3px #00000080,0 6px 16px #00000080;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:22px;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}}.gate{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;text-align:center;margin-top:8px}.gate-orb{font-size:46px;color:var(--gold);filter:drop-shadow(0 0 14px rgba(201,162,39,.5))}.gate-title{font-family:var(--display);font-size:16px;letter-spacing:1px;text-transform:uppercase;color:var(--gold-bright);margin:0}.gate-timer{margin:0;font-size:17px}.gate-label{color:var(--ink-dim);font-style:italic}.gate-count{font-family:var(--display);font-variant-numeric:tabular-nums;font-weight:600;color:var(--gold-bright);font-size:22px;margin-left:8px}.gate-or{margin:6px 0 2px;max-width:320px}.deck-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;margin-top:8px}.deck-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px;border-radius:8px;background:var(--panel);border:1px solid var(--edge);cursor:pointer;transition:transform .12s ease,border-color .2s ease,box-shadow .2s ease}.deck-item:active{transform:scale(.96)}.deck-item.active{border-color:var(--gold-line);box-shadow:0 0 0 1px var(--gold-line),0 6px 18px #c9a22747}.deck-thumb{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:5px;background:#14121c;box-shadow:inset 0 0 0 1px #c9a2274d}.deck-name{font-family:var(--display);font-size:12px;font-weight:500;letter-spacing:1px;color:var(--gold-bright);text-align:center}.magic-input{width:100%;max-width:360px;padding:13px 16px;border-radius:6px;border:1px solid var(--edge);background:var(--bg2);color:var(--ink);font-family:var(--body);font-size:18px;text-align:center;outline:none;font-style:italic}.magic-input:focus{border-color:var(--gold-line)}.magic-input::placeholder{color:var(--ink-dim)}.ball{position:relative;width:170px;height:170px;margin:6px 0;display:flex;align-items:center;justify-content:center}.ball-glow{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 40%,rgba(233,196,106,.5),rgba(201,162,39,.14) 60%,transparent 72%);animation:breathe 5s ease-in-out infinite}.ball-core{position:relative;width:118px;height:118px;filter:drop-shadow(0 0 20px rgba(201,162,39,.55))}.ball-core svg{width:100%;height:100%}.ball.shaking .ball-core{animation:shake .5s ease-in-out infinite}.ball.shaking .ball-glow{animation:pulse .5s ease-in-out infinite}@keyframes shake{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-7px,3px) rotate(-6deg)}75%{transform:translate(7px,-3px) rotate(6deg)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.magic-result{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease}.magic-result.show{opacity:1;transform:translateY(0)}.verdict{font-family:var(--display);font-size:42px;font-weight:700;letter-spacing:4px}.verdict-yes{color:#7fd9a6;text-shadow:0 0 24px rgba(127,217,166,.5)}.verdict-no{color:#e77a86;text-shadow:0 0 24px rgba(231,122,134,.5)}.verdict-maybe{color:var(--gold-bright);text-shadow:0 0 24px rgba(233,196,106,.5)}.verdict-phrase{margin:0;font-size:19px;text-align:center;max-width:330px;line-height:1.4;font-style:italic}.verdict-card{font-family:var(--display);font-size:13px;letter-spacing:1px;color:var(--gold);text-transform:uppercase}.verdict-orient{color:var(--ink-dim);font-style:italic;text-transform:none;letter-spacing:0}.verdict-meaning{margin-top:2px;max-width:340px;text-align:center;padding:14px 18px;border-radius:8px;background:#c9a22712;border:1px solid var(--edge)}.verdict-meaning-label{display:block;font-family:var(--display);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:6px}.verdict-meaning p{margin:0;font-size:17px;line-height:1.5;color:var(--ink)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%) translateY(20px);background:#1c1626;color:var(--ink);border:1px solid var(--gold-line);border-radius:8px;padding:12px 18px;font-size:16px;max-width:88%;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;z-index:60}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}
