/* 拾己 · 塔罗三张牌阵（夜空星语令牌） */
.tarot-stage{position:relative;min-height:calc(100vh - 60px);overflow:hidden;margin:-18px -16px -40px;padding:18px 16px 40px}
.t-intro{display:grid;place-items:center;text-align:center;min-height:70vh;align-content:center;gap:14px}
.t-intro .t-deck-mini{position:relative;width:190px;height:180px;margin-bottom:8px}
.t-intro .t-deck-mini i{position:absolute;left:52px;top:8px;width:86px;height:150px;border-radius:10px;background:url(../assets/tarot/back.jpg) center/cover;box-shadow:0 6px 24px rgba(0,0,0,.5);transform-origin:50% 130%;animation:miniFan 3.6s ease-in-out calc(var(--i)*.12s) infinite}
@keyframes miniFan{0%,100%{transform:rotate(calc((var(--i) - 2)*4deg)) translateY(0)}50%{transform:rotate(calc((var(--i) - 2)*15deg)) translateY(calc(var(--i)*-4px - 2px))}}
.t-kicker{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--seal)}
.t-title{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--ink);margin:0}
.t-sub{color:var(--sub);font-size:13px;line-height:1.7;max-width:300px;margin:0}
.t-primary{padding:14px 34px;border-radius:999px;background:var(--seal);color:#1F1607;font-weight:700;font-size:15px;box-shadow:0 4px 20px rgba(247,182,77,.35)}
.t-ghost{background:none;color:var(--faint);font-size:12px;padding:10px}
/* 洗牌 */
.t-shuffle{position:relative;height:78vh;display:grid;place-items:center}
.t-stack{position:relative;width:74px;height:130px}
.t-stack .tcard{position:absolute;left:0;top:0}
.t-shuffle-text{position:absolute;bottom:12vh;left:0;right:0;text-align:center;color:var(--sub);font-size:13px;letter-spacing:.1em}
/* 牌卡通用 */
.tcard{width:74px;height:130px;border-radius:9px;background:url(../assets/tarot/back.jpg) center/cover;border:1px solid rgba(247,182,77,.25);box-shadow:0 4px 14px rgba(0,0,0,.45);cursor:pointer;will-change:transform;transition:box-shadow .2s}
.tcard.lit{box-shadow:0 0 0 2px var(--seal),0 8px 26px rgba(247,182,77,.45)}
.tcard.taken{opacity:.18;pointer-events:none}
/* 抽牌扇形 · 3 排 */
.t-draw{position:relative;height:calc(100vh - 60px)}
.t-slots{position:absolute;top:8px;left:0;right:0;display:flex;justify-content:center;gap:18px;z-index:5}
.t-slot{display:flex;flex-direction:column;align-items:center;text-align:center}
.t-slot .ph{position:relative;width:74px;height:130px;border-radius:9px;border:1.5px dashed var(--line);display:grid;place-items:center;color:var(--faint);font-size:12px;background:rgba(28,35,51,.5);overflow:hidden}
.t-slot .ph .mini-back{position:absolute;inset:0;background:url(../assets/tarot/back.jpg) center/cover;border-radius:8px;animation:miniIn .35s ease both}
@keyframes miniIn{from{transform:scale(1.25);opacity:.4}to{transform:scale(1);opacity:1}}
.t-slot.filled .ph{border:1.5px solid var(--seal);box-shadow:0 0 16px rgba(247,182,77,.35);background:none}
.t-slot.next .ph{border-color:var(--seal);border-style:solid;animation:slotPulse 1.6s ease-in-out infinite}
.t-slot .lb{margin-top:6px;font-size:11px;color:var(--sub);font-family:var(--mono);white-space:nowrap;line-height:1.3;min-height:15px}
@keyframes slotPulse{0%,100%{box-shadow:0 0 0 0 rgba(247,182,77,.35)}50%{box-shadow:0 0 18px 2px rgba(247,182,77,.5)}}
.t-fan3{position:absolute;left:0;right:0;top:186px;bottom:0}
.t-fan-row{position:relative;height:33.334%}
.t-fan-row .tcard{position:absolute;width:50px;height:88px;border-radius:6px;transform:translate(var(--x,0px),var(--y,0px)) rotate(var(--r,0deg));transition:transform .18s ease}
@media (hover:hover){
  .t-fan-row .tcard:not(.taken):hover{transform:translate(var(--x,0px),calc(var(--y,0px) - 22px)) rotate(var(--r,0deg)) scale(1.15);z-index:50}
}
.t-draw-hint{position:absolute;top:158px;left:0;right:0;text-align:center;color:var(--sub);font-size:12px;z-index:4}
.t-slots{flex-wrap:wrap;gap:8px;padding:0 10px}
.t-auto{position:absolute;top:186px;left:50%;transform:translateX(-50%);z-index:6;padding:7px 18px;border-radius:999px;border:1px solid rgba(247,182,77,.5);background:rgba(28,35,51,.85);color:var(--seal);font-size:12px;font-weight:700}
.t-week-label{display:inline-block;padding:4px 14px;border-radius:999px;border:1px solid rgba(247,182,77,.4);color:var(--seal);font-size:12px;font-family:var(--mono)}
/* 牌阵图（翻牌阶段） */
.t-spread{position:relative;width:100%;margin-top:10px}
.t-spot{position:absolute;transform:translate(-50%,-50%)}
.t-spot-lb{position:absolute;transform:translateX(-50%);white-space:normal;max-width:104px;text-align:center;line-height:1.35;font-size:10px;color:var(--sub);font-family:var(--mono);background:rgba(12,15,22,.9);padding:2px 8px;border-radius:10px;border:1px solid var(--line);z-index:30;pointer-events:none}
.t-spot-labels{position:absolute;inset:0;z-index:30;pointer-events:none}
.tflip2{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.7,.3,1.2);cursor:pointer;will-change:transform}
.tflip2.on{transform:rotateY(180deg)}
.tflip2 .face{position:absolute;inset:0;border-radius:7px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid rgba(247,182,77,.3);overflow:hidden;background:#1C2333}
.tflip2 .f-back{background:url(../assets/tarot/back.jpg) center/cover}
.tflip2 .f-front{transform:rotateY(180deg);display:grid;place-items:center}
.tflip2 .f-front i{position:absolute;inset:0;background:center/cover}
.tflip2 .f-front i.rev{transform:rotate(180deg)}
.tflip2 .ori{position:absolute;left:50%;bottom:3px;transform:translateX(-50%);padding:1px 6px;border-radius:999px;background:rgba(12,15,22,.82);color:var(--seal);font-size:9px;font-style:normal;white-space:nowrap;border:1px solid rgba(247,182,77,.4)}
.tflip2 .nm{position:absolute;left:2px;right:2px;top:3px;text-align:center;color:#F3ECE3;font-size:10px;font-weight:700;text-shadow:0 1px 6px #000;background:rgba(12,15,22,.45);border-radius:4px;padding:1px 2px}
.tflip2.hint .f-back{animation:slotPulse 1.8s ease-in-out infinite}
.t-sum-row{flex-wrap:wrap}
.t-sum-row.many .t-sum-card{width:58px}
.t-sum-row.many .t-sum-card .im{width:58px;height:100px}
.t-sum-row.many .t-sum-card .nm{font-size:10px}
/* 翻牌 */
.t-reveal{min-height:78vh;display:grid;align-content:center;justify-items:center;gap:26px;padding-top:16px}
.t-flip-row{display:flex;gap:16px;justify-content:center}
.tflip{position:relative;width:96px;height:168px;transform-style:preserve-3d;cursor:pointer;will-change:transform}
.tflip .face{position:absolute;inset:0;border-radius:10px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid rgba(247,182,77,.3);overflow:hidden;background:#1C2333}
.tflip .f-back{background:url(../assets/tarot/back.jpg) center/cover}
.tflip .f-front{transform:rotateY(180deg);display:grid;place-items:center}
.tflip .f-front i{position:absolute;inset:0;background:center/cover}
.tflip .f-front i.rev{transform:rotate(180deg)}
.tflip .ori{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);padding:2px 8px;border-radius:999px;background:rgba(12,15,22,.82);color:var(--seal);font-size:10px;font-style:normal;white-space:nowrap;border:1px solid rgba(247,182,77,.4)}
.tflip .nm{position:absolute;left:4px;right:4px;top:6px;text-align:center;color:#F3ECE3;font-size:12px;font-weight:700;text-shadow:0 1px 6px #000;background:rgba(12,15,22,.45);border-radius:6px;padding:1px 2px}
.tflip.hint .f-back{animation:slotPulse 1.8s ease-in-out infinite}
.t-flip-lb{position:absolute;top:-22px;left:0;right:0;text-align:center;font-size:12px;color:var(--sub);font-family:var(--mono)}
.t-flip-wrap{position:relative}
.t-burst{position:absolute;left:50%;top:50%;width:180px;height:180px;transform:translate(-50%,-50%);pointer-events:none;z-index:6}
/* 解读 */
.t-reading{padding-bottom:30px}
.t-sum-row{display:flex;gap:12px;justify-content:center;margin:8px 0 18px}
.t-sum-card{width:88px;text-align:center}
.t-sum-card .im{position:relative;width:88px;height:154px;border-radius:9px;background:#1C2333;border:1px solid var(--line);overflow:hidden}
.t-sum-card .im i{position:absolute;inset:0;background:center/cover}
.t-sum-card .im i.rev{transform:rotate(180deg)}
.t-sum-card .lb{margin-top:6px;font-size:11px;color:var(--sub);font-family:var(--mono)}
.t-sum-card .nm{font-size:12px;color:var(--ink);font-weight:700;margin-top:2px}
.t-card-block{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-top:12px}
.t-card-block h3{margin:0 0 4px;font-family:var(--serif);font-size:19px;color:var(--ink)}
.t-card-block .pos{font-family:var(--mono);font-size:11px;color:var(--seal);letter-spacing:.06em;font-weight:700}
.t-card-block .kw{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.t-card-block .kw b{padding:4px 9px;border-radius:999px;border:1px solid var(--line);color:var(--seal);font-size:11px;font-weight:500}
.t-card-block p{color:var(--sub);font-size:13px;line-height:1.75;margin:8px 0 0}
.t-ori-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;margin-left:8px;vertical-align:2px;border:1px solid var(--seal);color:var(--seal)}
.t-ori-badge.rev{border-color:var(--faint);color:var(--faint)}
.t-desc{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:12px;color:var(--faint)}
.t-desc em{display:block;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--seal);margin-bottom:4px}
.t-actions{display:grid;gap:10px;margin-top:16px}
@media (min-width:600px){.t-flip-row{gap:22px}.tflip{width:110px;height:192px}}
