/* ── 텔레파시 카드: 보랏빛 정적 ── */
.telepathy-screen{--ga-accent:#c9a8ff;--ga-accent-ink:#1c0b3a;--ga-glass:rgb(20 10 44 / .66);--ga-line:#ffffff1f;--ga-text:#f5efff;--ga-muted:#e4d8ffc4;--ga-paper:#fbf8ff;--tp-deep:#0b0620;--tp-violet:#8c6bff;--tp-magenta:#e070ff;--tp-gold:#ffd98a;--tp-danger:#ff4d6d;--tp-heat:0;flex-direction:column;align-items:center;color:var(--ga-text)}
.telepathy-screen [hidden]{display:none!important}
.telepathy-screen>.play-heading{margin-bottom:14px}
.telepathy-screen .play-return{background:#ffffff14;border-color:#ffffff2e;color:#f1e8ff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.telepathy-screen .play-return:hover{color:#fff;border-color:var(--ga-accent)}
.telepathy-root{width:100%;max-width:980px;margin:0 auto}

.tp-cosmos{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(120% 80% at 50% 0%,#2a1060 0%,#150a36 42%,var(--tp-deep) 100%)}
.tp-cosmos-art{position:absolute;inset:-3%;width:106%;height:106%;max-width:none;object-fit:cover;opacity:0;transition:opacity 1.2s ease;filter:saturate(1.1)}
.tp-cosmos-art.is-loaded{opacity:.34}
.tp-nebula{position:absolute;inset:-20%;background:radial-gradient(40% 30% at 22% 30%,#9b4dff55,transparent 70%),radial-gradient(36% 28% at 80% 62%,#ff5fd244,transparent 70%),radial-gradient(50% 40% at 50% 100%,#3d2bff40,transparent 70%);filter:blur(8px);animation:tp-nebula 38s ease-in-out infinite alternate}
@keyframes tp-nebula{to{transform:rotate(8deg) scale(1.08)}}
.tp-stars{position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff,transparent),radial-gradient(1px 1px at 32% 72%,#fff,transparent),radial-gradient(1.2px 1.2px at 58% 28%,#fff,transparent),radial-gradient(1px 1px at 76% 84%,#fff,transparent),radial-gradient(1.6px 1.6px at 88% 12%,#fff,transparent),radial-gradient(1px 1px at 44% 48%,#fff,transparent),radial-gradient(1.3px 1.3px at 6% 64%,#fff,transparent),radial-gradient(1px 1px at 66% 58%,#fff,transparent);background-size:340px 340px;opacity:.7;animation:tp-twinkle 6s ease-in-out infinite alternate}
.tp-stars-2{background-size:520px 520px;background-position:120px 80px;opacity:.45;animation-duration:9s;animation-delay:-3s}
@keyframes tp-twinkle{to{opacity:.2;transform:translateY(-12px)}}
.tp-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 45%,#05020fcc 100%);transition:opacity .3s}

.tp-arena{display:flex;flex-direction:column;gap:12px;min-width:0;width:100%}
.tp-status{padding:12px 16px 14px;gap:8px}
.tp-steps li{font-size:11.5px}
.tp-mc .ga-mc-face{border-color:var(--ga-accent);background:#2a1650}
.tp-mc .ga-mc-bubble strong{color:#7b3fe4}

.tp-table{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:14px 12px 14px;border-radius:28px;background:linear-gradient(180deg,#1d0f45cc,#0f0828e6);border:1px solid #b99cff33;box-shadow:0 30px 80px #05021299,inset 0 1px 0 #ffffff1c,inset 0 0 120px #6a3cff22;overflow:hidden}
.tp-table:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 45% at 50% 42%,rgb(160 110 255 / calc(.16 + var(--tp-heat) * .22)),transparent 72%);transition:background .6s}
.tp-table.is-beat:before{animation:tp-thump .42s ease-out}
@keyframes tp-thump{0%{opacity:1}12%{opacity:1;transform:scale(1.03)}100%{opacity:.85;transform:none}}
.tp-table.is-shake{animation:tp-shake .5s cubic-bezier(.36,.07,.19,.97)}
@keyframes tp-shake{10%,90%{transform:translate(-2px,1px)}20%,80%{transform:translate(5px,-2px)}30%,50%,70%{transform:translate(-9px,3px)}40%,60%{transform:translate(9px,-3px)}}

.tp-hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.tp-lives,.tp-stars-hud{display:flex;gap:5px;align-items:center;min-height:28px}
.tp-stars-hud{justify-content:flex-end}
.tp-heart{position:relative;width:22px;height:20px;display:block;opacity:.22;filter:grayscale(1);transition:opacity .3s,filter .3s}
.tp-heart:before{content:'';position:absolute;inset:0;background:linear-gradient(160deg,#ff9bb4,var(--tp-danger));clip-path:path('M11 19 C4 13 0 10 0 5.5 C0 2.4 2.4 0 5.4 0 C7.6 0 9.6 1.3 11 3.2 C12.4 1.3 14.4 0 16.6 0 C19.6 0 22 2.4 22 5.5 C22 10 18 13 11 19 Z')}
.tp-heart.is-on{opacity:1;filter:none;animation:tp-heart-glow 2.4s ease-in-out infinite}
@keyframes tp-heart-glow{50%{filter:drop-shadow(0 0 6px #ff4d6daa)}}
.tp-heart.is-breaking{animation:tp-heart-break .9s ease-in both}
@keyframes tp-heart-break{0%{transform:scale(1.4);opacity:1;filter:drop-shadow(0 0 12px #ff4d6d)}40%{transform:scale(1.2) rotate(-12deg)}100%{transform:translateY(18px) rotate(24deg) scale(.6);opacity:0}}
.tp-star{font-style:normal;font-size:20px;line-height:1;color:#ffffff33;transition:color .3s,text-shadow .3s}
.tp-star.is-on{color:var(--tp-gold);text-shadow:0 0 10px #ffd98acc,0 0 22px #ffb84d66;animation:tp-star-spin 6s linear infinite}
@keyframes tp-star-spin{50%{transform:rotate(18deg) scale(1.12)}}
.tp-level{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.tp-level small{font-size:10.5px;font-weight:900;letter-spacing:3px;color:var(--ga-accent)}
.tp-level strong{font-size:15px;font-weight:900;color:#fff;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw;text-shadow:0 0 18px #b48cff88}

.tp-seats{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 6px}
.tp-seat{position:relative;width:74px;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;transition:opacity .3s,transform .3s}
.tp-seat-face{position:relative;width:54px;height:54px;border-radius:50%;padding:3px;background:linear-gradient(145deg,#ffffff4d,#ffffff12);box-shadow:0 8px 20px #0007;transition:box-shadow .3s,background .3s}
.tp-seat-face img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;background:#2c1a52;transition:transform .25s}
.tp-seat.is-me .tp-seat-face{background:linear-gradient(145deg,#ffb4e6,#9b5cff)}
.tp-seat-focus{position:absolute;right:-6px;bottom:-4px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;background:#6c47ff;border:2px solid #fff;opacity:0;transform:scale(.4);transition:opacity .25s,transform .35s cubic-bezier(.3,1.6,.5,1)}
.tp-seat.is-focused .tp-seat-focus{opacity:1;transform:none}
.tp-seat.is-focused .tp-seat-face{background:linear-gradient(145deg,#e9dcff,#8c6bff);box-shadow:0 0 0 3px #b99cff55,0 0 26px #a57dff}
.tp-seat.mood-thinking .tp-seat-face{box-shadow:0 0 0 2px #ffcf6b88,0 0 18px #ffcf6b66}
.tp-seat.mood-thinking .tp-seat-face img{animation:tp-tense 1.1s ease-in-out infinite}
@keyframes tp-tense{50%{transform:scale(.95)}}
.tp-seat.mood-surprised .tp-seat-face img{animation:tp-jolt .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes tp-jolt{30%{transform:translateY(-6px) scale(1.08)}}
.tp-seat.is-away,.tp-seat.is-gone{opacity:.42}
.tp-seat.is-gone .tp-seat-face img{filter:grayscale(1)}
.tp-seat.is-empty .tp-seat-face{opacity:.7}
.tp-seat-backs{position:relative;display:block;height:16px;width:56px;margin-top:2px}
.tp-seat-backs i{position:absolute;left:50%;bottom:0;width:11px;height:16px;border-radius:3px;background:linear-gradient(145deg,#8c6bff,#3b1f8f);border:1px solid #d9c9ff88;box-shadow:0 2px 4px #0006;transform:translateX(calc((var(--i) - (var(--n) - 1) / 2) * 5px - 50%)) rotate(calc((var(--i) - (var(--n) - 1) / 2) * 7deg));transform-origin:50% 120%}
.tp-seat-name{max-width:100%;font-size:12px;font-weight:800;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 6px #000a}
.tp-seat-name em{font-style:normal;margin-left:3px;font-size:9.5px;padding:0 5px;border-radius:999px;background:#9b5cff;color:#fff}
.tp-seat-tag{font-size:10.5px;font-weight:800;color:#efe6ff;background:#ffffff14;border:1px solid #ffffff1a;border-radius:999px;padding:1px 7px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-seat.is-focused .tp-seat-tag{background:#6c47ff;border-color:transparent}
.tp-emote-layer{position:absolute;inset:0;z-index:9;pointer-events:none}
.tp-emote-pop{position:absolute;font-size:34px;line-height:1;transform:translate(-50%,0);filter:drop-shadow(0 4px 10px #000a);animation:tp-emote 2.2s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes tp-emote{0%{opacity:0;transform:translate(-50%,20px) scale(.3)}14%{opacity:1;transform:translate(calc(-50% + var(--x)),-6px) scale(1.25)}24%{transform:translate(calc(-50% + var(--x)),-10px) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),-56px) scale(.9)}}
.tp-seats.is-many .tp-seat{width:62px}
.tp-seats.is-many .tp-seat-face{width:44px;height:44px}

.tp-center{position:relative;display:flex;align-items:center;justify-content:center;min-height:250px}
.tp-aura{position:absolute;left:50%;top:50%;width:250px;height:250px;margin:-125px 0 0 -125px;border-radius:50%;background:radial-gradient(circle,#b48cff44 0%,#7d4dff22 40%,transparent 70%);pointer-events:none;animation:tp-aura 5s ease-in-out infinite}
@keyframes tp-aura{50%{transform:scale(1.12);opacity:.7}}
.tp-table.is-beat .tp-aura{animation:tp-aura 5s ease-in-out infinite,tp-aura-beat .45s ease-out}
@keyframes tp-aura-beat{15%{filter:brightness(1.6)}}
.tp-center.is-land .tp-aura{animation:tp-aura-land .6s ease-out}
@keyframes tp-aura-land{0%{transform:scale(.7);filter:brightness(2.4)}100%{transform:scale(1)}}
.tp-center.is-land .tp-pile-slot.is-top{animation:tp-land .45s cubic-bezier(.2,1.6,.4,1)}
@keyframes tp-land{0%{transform:translate(var(--dx),0) rotate(var(--r)) scale(1.18)}100%{transform:translate(var(--dx),0) rotate(var(--r)) scale(1)}}
.tp-center.is-land:after{content:'';position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;border:3px solid #e2d2ff;pointer-events:none;animation:tp-ring .7s ease-out forwards}
@keyframes tp-ring{from{transform:scale(.6);opacity:.9}to{transform:scale(2.3);opacity:0}}

.tp-card{--tp-hue:270;position:relative;display:flex;align-items:center;justify-content:center;width:84px;height:118px;border-radius:14px;background:radial-gradient(120% 90% at 30% 10%,hsl(var(--tp-hue) 90% 86%) 0%,hsl(var(--tp-hue) 72% 64%) 38%,hsl(calc(var(--tp-hue) + 12) 70% 34%) 100%);border:2px solid #ffffffcc;box-shadow:0 14px 30px #0009,inset 0 0 0 4px #ffffff22,inset 0 2px 0 #fff9;color:#fff;font-family:var(--font);overflow:hidden}
.tp-card:before{content:'';position:absolute;inset:7px;border-radius:9px;border:1px dashed #ffffff66}
.tp-card:after{content:'';position:absolute;inset:-40% -60%;background:linear-gradient(115deg,transparent 40%,#ffffff55 50%,transparent 60%);transform:translateX(-60%);animation:tp-sheen 4.5s ease-in-out infinite}
@keyframes tp-sheen{0%,60%{transform:translateX(-60%)}100%{transform:translateX(60%)}}
.tp-card-num{position:relative;z-index:1;font-size:40px;font-weight:900;letter-spacing:-2px;font-variant-numeric:tabular-nums;text-shadow:0 2px 0 #3b1a7a,0 0 18px #ffffffaa}
.tp-card-corner{position:absolute;left:8px;top:6px;z-index:1;font-style:normal;font-size:11px;font-weight:900;opacity:.9}
.tp-card-corner.is-bottom{left:auto;top:auto;right:8px;bottom:6px;transform:rotate(180deg)}
.tp-card.is-big{width:132px;height:184px;border-radius:20px}
.tp-card.is-big .tp-card-num{font-size:78px;letter-spacing:-4px}
.tp-card.is-big .tp-card-corner{font-size:15px;left:12px;top:9px}
.tp-card.is-big .tp-card-corner.is-bottom{left:auto;top:auto;right:12px;bottom:9px}
.tp-card.is-small{width:52px;height:74px;border-radius:10px}
.tp-card.is-small .tp-card-num{font-size:24px;letter-spacing:-1px}
.tp-card.is-small .tp-card-corner,.tp-card.is-small:before{display:none}
.tp-card.is-ghost{width:132px;height:184px;border-radius:20px;background:#ffffff08;border:2px dashed #ffffff40;box-shadow:inset 0 0 40px #8c6bff22}
.tp-card.is-ghost:before,.tp-card.is-ghost:after{display:none}
.tp-card.is-ghost .tp-card-num{font-size:60px;color:#ffffff38;text-shadow:none;animation:tp-ghost 3s ease-in-out infinite}
@keyframes tp-ghost{50%{opacity:.4}}

.tp-pile{position:relative;width:170px;height:224px;display:flex;align-items:center;justify-content:center}
.tp-pile-slot{position:absolute;left:50%;top:calc(50% - 10px);margin:-92px 0 0 -66px;transform:translate(var(--dx),0) rotate(var(--r));filter:brightness(calc(1 - var(--d) * .12));transition:filter .3s}
.tp-pile-slot:not(.is-top) .tp-card:after{display:none}
.tp-pile-slot.is-top .tp-card{box-shadow:0 18px 44px #000a,0 0 50px #b48cff88,inset 0 0 0 4px #ffffff22,inset 0 2px 0 #fff9}
.tp-pile>.tp-card.is-ghost{position:relative;margin-bottom:20px}
.tp-pile-by,.tp-pile-empty{position:absolute;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap;font-size:11.5px;font-weight:800;color:#e4d8ffcc;text-shadow:0 1px 6px #000}
.tp-pile-empty:empty{display:none}

.tp-palm{position:relative;z-index:2;width:196px;height:196px;border-radius:50%;border:2px solid #d9c9ff88;background:radial-gradient(circle at 50% 38%,#6f4bdc 0%,#3a1d8f 60%,#1f0f55 100%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:0 0 0 10px #8c6bff1f,0 0 60px #8c6bff88,inset 0 2px 0 #ffffff55;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:transform .2s,box-shadow .3s;animation:tp-palm-call 2.2s ease-in-out infinite}
@keyframes tp-palm-call{50%{box-shadow:0 0 0 22px #8c6bff0a,0 0 90px #a57dffaa,inset 0 2px 0 #ffffff55}}
.tp-palm:hover:not(:disabled){transform:scale(1.03)}
.tp-palm:active:not(:disabled),.tp-palm.is-pressing{transform:scale(.96)}
.tp-palm-hand{font-size:58px;line-height:1;filter:drop-shadow(0 6px 14px #000a);transition:transform .3s}
.tp-palm strong{font-size:16px;font-weight:900}
.tp-palm small{font-size:11.5px;font-weight:700;color:#e4d8ffcc;max-width:150px;line-height:1.35}
.tp-palm-ring{position:absolute;inset:-10px;border-radius:50%;border:3px solid transparent;border-top-color:#fff;opacity:0}
.tp-palm.is-pressing .tp-palm-ring{opacity:1;animation:tp-spin .7s linear}
@keyframes tp-spin{to{transform:rotate(360deg)}}
.tp-palm.is-on{background:radial-gradient(circle at 50% 38%,#f1e7ff 0%,#a47dff 55%,#5a31d6 100%);color:#2a0f6b;animation:tp-palm-on 1.6s ease-in-out infinite;cursor:default}
.tp-palm.is-on small{color:#3a1d8f}
.tp-palm.is-on .tp-palm-hand{transform:scale(1.12) rotate(-8deg)}
@keyframes tp-palm-on{50%{box-shadow:0 0 0 16px #d9c9ff33,0 0 110px #e0d0ff}}

.tp-breath{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center}
.tp-breath i{position:absolute;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,#f2eaff 0%,#b48cff66 45%,transparent 70%);animation:tp-breathe 1.8s ease-in-out both}
@keyframes tp-breathe{0%{transform:scale(.4);opacity:0}45%{transform:scale(1.35);opacity:1}100%{transform:scale(.9);opacity:.5}}
.tp-breath strong{position:relative;font-size:22px;font-weight:900;letter-spacing:2px;color:#fff;text-shadow:0 0 20px #b48cff,0 2px 8px #000}
.tp-shh{position:absolute;right:6px;top:4px;z-index:3;display:flex;align-items:center;gap:6px;padding:6px 12px 6px 8px;border-radius:999px;background:#ffffff12;border:1px solid #ffffff22;animation:tp-shh 3s ease-in-out infinite}
.tp-shh span{font-size:20px}
.tp-shh strong{font-size:13px;font-weight:900;letter-spacing:4px;color:#f1e8ff}
@keyframes tp-shh{50%{opacity:.55}}

.tp-burn{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:14px;background:#ff4d6d12;border:1px solid #ff4d6d33;overflow-x:auto;scrollbar-width:none}
.tp-burn::-webkit-scrollbar{display:none}
.tp-burn-title{flex:none;font-size:10.5px;font-weight:900;letter-spacing:1px;color:#ffb3c1}
.tp-burn-list{display:flex;gap:6px}
.tp-burned{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:38px;height:48px;border-radius:8px;background:linear-gradient(160deg,#5a1d3a,#2a0d1e);border:1px solid #ff8fa399;position:relative;animation:tp-burn-in .45s cubic-bezier(.3,1.6,.5,1) both}
.tp-burned b{font-size:16px;font-weight:900;color:#ffd1da;text-decoration:line-through;text-decoration-color:#ff4d6d;text-decoration-thickness:2px}
.tp-burned small{font-size:8.5px;font-weight:800;color:#ffb3c1cc;max-width:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-burned.is-star{background:linear-gradient(160deg,#5a4613,#2a200a);border-color:#ffd98a99}
.tp-burned.is-star b{color:#ffe9b8;text-decoration:none}
.tp-burned.is-star small{color:#ffe0a3cc}
.tp-burned.is-left,.tp-burned.is-away{background:#ffffff10;border-color:#ffffff33}
.tp-burned.is-left b,.tp-burned.is-away b{color:#ffffffaa;text-decoration-color:#ffffff66}
@keyframes tp-burn-in{from{transform:scale(.4);opacity:0}}

.tp-vote{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;background:linear-gradient(135deg,#4a3410f2,#2a1850f2);border:1px solid #ffd98a88;box-shadow:0 0 40px #ffd98a44;animation:tp-vote-in .4s cubic-bezier(.2,.8,.2,1)}
@keyframes tp-vote-in{from{transform:translateY(12px);opacity:0}}
.tp-vote-star{flex:none;font-size:32px;color:var(--tp-gold);text-shadow:0 0 16px #ffd98a;animation:tp-star-spin 2s linear infinite}
.tp-vote-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tp-vote-copy strong{font-size:15px;font-weight:900;color:#fff;word-break:keep-all}
.tp-vote-copy small{font-size:12px;font-weight:700;color:#ffe9c2;line-height:1.45;word-break:keep-all}
.tp-vote-actions{flex:none;display:flex;gap:6px}
.tp-vote-actions .arcade-button{min-height:44px;padding:0 16px;font-size:14px}
.tp-ghost{min-height:44px;padding:0 14px;border-radius:12px;border:1px solid #ffffff4d;background:#ffffff14;color:#fff;font-weight:800;font-size:14px;cursor:pointer}
.tp-vote-done{font-size:12px;font-weight:800;color:#ffe9c2}

.tp-hand-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:146px;justify-content:flex-end}
.tp-hand{display:flex;align-items:flex-end;justify-content:center;gap:6px;min-height:128px;width:100%;padding-bottom:10px}
.tp-hand:empty{min-height:0}
.tp-hand-card{position:relative;display:flex;flex:none;flex-direction:column;align-items:center;padding:0;border:0;background:none;color:inherit;font:inherit}
.tp-hand-card .tp-card.is-small{opacity:.62;filter:saturate(.7)}
.tp-hand.is-many .tp-hand-card:not(.is-lowest){margin-left:-20px}
.tp-hand.is-many .tp-hand-card:nth-child(2){margin-left:0}
.tp-hand-card.is-lowest{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;margin-right:6px}
.tp-hand-card.is-lowest .tp-card{width:92px;height:128px;border-radius:16px;transition:transform .2s cubic-bezier(.3,1.5,.5,1),box-shadow .2s}
.tp-hand-card.is-lowest .tp-card-num{font-size:48px}
.tp-hand.is-live .tp-hand-card.is-lowest .tp-card{box-shadow:0 0 0 3px #fff,0 0 calc(24px + var(--tp-heat) * 40px) rgb(200 160 255 / calc(.6 + var(--tp-heat) * .4)),0 16px 30px #000a}
.tp-table.is-beat .tp-hand.is-live .tp-hand-card.is-lowest .tp-card{animation:tp-card-beat .4s ease-out}
@keyframes tp-card-beat{18%{transform:scale(calc(1.02 + var(--tp-heat) * .06))}}
.tp-hand.is-live .tp-hand-card.is-lowest:hover .tp-card{transform:translateY(-8px)}
.tp-hand.is-live .tp-hand-card.is-lowest:active .tp-card{transform:translateY(-2px) scale(.96)}
.tp-hand-card.is-lowest:disabled{cursor:default}
.tp-hand-card.is-lowest:disabled .tp-card{filter:saturate(.8) brightness(.85)}
.tp-hand-card.is-sending .tp-card{transform:translateY(-30px) scale(.9);opacity:.3;transition:transform .25s,opacity .25s}
.tp-hand-card:focus-visible{outline:none}
.tp-hand-card:focus-visible .tp-card{outline:3px solid #fff;outline-offset:3px}
.tp-hand-cta{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);padding:2px 12px;border-radius:999px;background:#fff;color:#3a1d8f;font-size:12px;font-weight:900;letter-spacing:1px;box-shadow:0 4px 12px #0007;white-space:nowrap}
.tp-hand:not(.is-live) .tp-hand-cta{opacity:0}
.tp-hand-card.is-dealt{animation:tp-deal .5s cubic-bezier(.2,1.2,.4,1) both}
@keyframes tp-deal{from{transform:translateY(-140px) scale(.4) rotate(-20deg);opacity:0}}
.tp-hand-note{margin:0;min-height:1.4em;font-size:12.5px;font-weight:700;color:#e4d8ffb8;text-align:center;word-break:keep-all}
.tp-hand-note:empty{min-height:0}

.tp-controls{display:flex;align-items:center;gap:8px;padding-top:2px}
.tp-star-btn{flex:none;display:flex;align-items:center;gap:6px;min-height:48px;padding:0 14px;border-radius:14px;border:1px solid #ffd98a88;background:linear-gradient(160deg,#5b4214,#2c1d52);color:#fff;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 0 18px #ffd98a33;transition:transform .15s,opacity .2s}
.tp-star-btn span{font-size:20px;color:var(--tp-gold);text-shadow:0 0 10px #ffd98a}
.tp-star-btn em{font-style:normal;font-size:12px;color:#ffe9c2}
.tp-star-btn:active:not(:disabled){transform:scale(.96)}
.tp-star-btn:disabled{opacity:.4;cursor:default;box-shadow:none}
.tp-emotes{flex:1;display:flex;justify-content:flex-end;gap:4px;min-width:0}
.tp-emote-btn{width:46px;height:48px;flex:0 1 46px;min-width:44px;border-radius:14px;border:1px solid #ffffff26;background:#ffffff12;font-size:22px;line-height:1;cursor:pointer;transition:transform .15s,background .15s;touch-action:manipulation}
.tp-emote-btn:hover:not(:disabled){background:#ffffff24}
.tp-emote-btn:active:not(:disabled){transform:scale(.9)}
.tp-emote-btn:disabled{opacity:.35;cursor:default}

.tp-crack{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:visible}
.tp-crack path{fill:none;stroke:#fff;stroke-width:2.2;stroke-linejoin:bevel;stroke-dasharray:var(--l);stroke-dashoffset:var(--l);filter:drop-shadow(0 0 3px #ff4d6d) drop-shadow(0 0 1px #000);animation:tp-crack-draw .32s cubic-bezier(.2,.8,.2,1) forwards,tp-crack-fade 2.3s ease-in forwards}
.tp-crack path.tp-crack-branch{stroke-width:1.3;animation-delay:.12s,0s}
@keyframes tp-crack-draw{to{stroke-dashoffset:0}}
@keyframes tp-crack-fade{0%,65%{opacity:1}100%{opacity:0}}
.tp-flash{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0}
.tp-flash.is-red.is-on{background:radial-gradient(circle at 50% 45%,#ff4d6d88,#ff4d6d22 60%,transparent);animation:tp-flash .9s ease-out}
@keyframes tp-flash{0%{opacity:1}100%{opacity:0}}
.tp-table.is-cracked{border-color:#ff4d6d88;box-shadow:0 0 60px #ff4d6d55,inset 0 0 90px #ff4d6d33}

.tp-burst{position:absolute;left:50%;top:44%;width:0;height:0;z-index:7;pointer-events:none}
.tp-rays{position:absolute;left:-420px;top:-420px;width:840px;height:840px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#fff5 0deg 6deg,transparent 6deg 20deg);-webkit-mask:radial-gradient(circle,#000 0%,transparent 62%);mask:radial-gradient(circle,#000 0%,transparent 62%);opacity:0}
.tp-core{position:absolute;left:-160px;top:-160px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,#fff 0%,#f0e4ff 20%,#b48cffaa 45%,transparent 70%);opacity:0}
.tp-burst.is-on .tp-rays{animation:tp-rays 2.4s ease-out forwards}
.tp-burst.is-on .tp-core{animation:tp-core 1.6s ease-out forwards}
.tp-burst.is-star .tp-core{background:radial-gradient(circle,#fff 0%,#fff1c9 22%,#ffd98aaa 45%,transparent 70%)}
.tp-burst.is-star .tp-rays{background:repeating-conic-gradient(from 0deg,#ffe9b866 0deg 5deg,transparent 5deg 24deg)}
@keyframes tp-rays{0%{opacity:0;transform:scale(.2) rotate(0)}15%{opacity:1}100%{opacity:0;transform:scale(1.3) rotate(40deg)}}
@keyframes tp-core{0%{opacity:0;transform:scale(.1)}12%{opacity:1;transform:scale(1.2)}100%{opacity:0;transform:scale(2.6)}}
.tp-sparks i{position:absolute;left:0;top:0;width:var(--sz);height:var(--sz);border-radius:50%;background:#fff;box-shadow:0 0 10px #d9c2ff,0 0 20px #b48cff;opacity:0}
.tp-burst.is-star .tp-sparks i{box-shadow:0 0 10px #ffe9b8,0 0 20px #ffd98a}
.tp-burst.is-on .tp-sparks i{animation:tp-spark 1.5s var(--dl) cubic-bezier(.1,.8,.3,1) forwards}
@keyframes tp-spark{0%{opacity:1;transform:rotate(var(--a)) translateX(0) scale(1)}100%{opacity:0;transform:rotate(var(--a)) translateX(var(--dist)) scale(.3)}}

.tp-banner{position:absolute;left:12px;right:12px;top:38%;z-index:8;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;pointer-events:none}
.tp-banner:before{content:'';position:absolute;left:50%;top:50%;z-index:-1;width:min(460px,120%);height:170%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,#0b0620e6 0%,#0b0620b3 55%,transparent 100%)}
.tp-banner small{font-size:12px;font-weight:900;letter-spacing:5px;color:var(--ga-accent);text-shadow:0 1px 8px #000}
.tp-banner strong{font-size:34px;font-weight:900;letter-spacing:-1px;line-height:1.15;color:#fff;text-shadow:0 0 26px #b48cff,0 3px 12px #000;word-break:keep-all}
.tp-banner em{font-style:normal;font-size:13.5px;font-weight:800;color:#f1e8ff;text-shadow:0 1px 8px #000;word-break:keep-all}
.tp-banner.is-in{animation:tp-banner 1.9s cubic-bezier(.2,.8,.2,1) both}
.tp-banner.is-clear.is-in{animation-duration:3.2s}
@keyframes tp-banner{0%{opacity:0;transform:scale(.7)}12%{opacity:1;transform:scale(1.06)}20%{transform:scale(1)}82%{opacity:1}100%{opacity:0;transform:translateY(-14px)}}
.tp-banner.is-mistake strong{color:#ffd1da;text-shadow:0 0 26px #ff4d6d,0 3px 12px #000;font-size:42px}
.tp-banner.is-clear strong{font-size:40px;color:#fff;text-shadow:0 0 22px #e0ccff,0 0 48px #9b5cff,0 3px 10px #000}
.tp-banner.is-star strong{color:#fff1c9;text-shadow:0 0 26px #ffd98a,0 3px 12px #000}
.tp-banner.is-level{top:30%}
.tp-banner.is-level strong{font-size:30px}
.tp-rewards{display:flex;gap:6px;margin-top:6px}
.tp-reward{padding:5px 12px;border-radius:999px;font-size:13px;font-weight:900;background:#ffffffe6;color:#3a1d8f;box-shadow:0 6px 18px #0008;animation:tp-reward .5s .5s cubic-bezier(.3,1.6,.5,1) both}
.tp-reward.is-star{background:linear-gradient(135deg,#fff1c9,#ffd98a);color:#5a3b00}
.tp-reward.is-life{background:linear-gradient(135deg,#ffd1da,#ff8fa3);color:#6b0f22}
@keyframes tp-reward{from{transform:scale(0)}}

.tp-fly{position:fixed;left:0;top:0;z-index:10030;pointer-events:none;will-change:transform}
.tp-fly .tp-card{box-shadow:0 20px 40px #000b,0 0 40px #b48cffaa}
.tp-fly.is-burn .tp-card{--tp-hue:345!important;filter:saturate(1.2);box-shadow:0 0 30px #ff4d6d}
.tp-fly.is-gold .tp-card{--tp-hue:42!important;box-shadow:0 0 30px #ffd98a}

.tp-final{display:flex;flex-direction:column;gap:12px}
.tp-final-card{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:10px;padding:34px 18px 22px;border-radius:28px;text-align:center;background:linear-gradient(180deg,#0b062066 0%,#0b0620e6 70%),var(--tp-final-art,none) center 30%/cover,linear-gradient(180deg,#3a1d8f,#140a36);border:1px solid #b99cff44;box-shadow:0 30px 80px #0009}
.tp-final-card.is-lose{border-color:#ff8fa344}
.tp-final-glow{position:absolute;left:50%;top:-120px;width:420px;height:320px;margin-left:-210px;z-index:-1;border-radius:50%;background:radial-gradient(circle,#b48cff88,transparent 70%);animation:tp-aura 5s ease-in-out infinite}
.tp-final-card.is-lose .tp-final-glow{background:radial-gradient(circle,#ff4d6d55,transparent 70%)}
.tp-final-kicker{font-size:12px;font-weight:900;letter-spacing:4px;color:var(--ga-accent)}
.tp-final-card h2{margin:0;font-size:32px;font-weight:900;letter-spacing:-1px;color:#fff;text-shadow:0 0 30px #b48cff,0 3px 10px #000;word-break:keep-all}
.tp-final-card p{margin:0;max-width:520px;font-size:14.5px;line-height:1.6;font-weight:700;color:#efe6ffd9;word-break:keep-all}
.tp-final-track{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.tp-final-track i{width:32px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:15px;font-weight:900;color:#ffffff66;background:#ffffff0f;border:1px dashed #ffffff33}
.tp-final-track i.is-done{color:#fff;background:linear-gradient(160deg,#a47dff,#5a31d6);border:1px solid #e2d2ff;box-shadow:0 0 14px #a47dff88}
.tp-final-track i.is-fail{color:#ffd1da;background:#5a1d3a;border:1px solid #ff8fa3;box-shadow:0 0 14px #ff4d6d88}
.tp-final-reached{font-size:17px;font-weight:900;color:#fff}
.tp-final-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:min(520px,100%);margin:4px 0 0}
.tp-final-stats div{padding:8px 4px;border-radius:14px;background:#ffffff10;border:1px solid #ffffff1c}
.tp-final-stats dt{font-size:11px;font-weight:800;color:#e4d8ffb8}
.tp-final-stats dd{margin:2px 0 0;font-size:22px;font-weight:900;color:#fff;font-variant-numeric:tabular-nums}
.tp-final-cast{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;list-style:none;margin:6px 0 0;padding:0}
.tp-final-cast li{display:flex;flex-direction:column;align-items:center;gap:4px;width:66px}
.tp-final-cast span{width:54px;height:54px;border-radius:50%;padding:3px;background:linear-gradient(145deg,#e9dcff,#8c6bff)}
.tp-final-cast .is-me span{background:linear-gradient(145deg,#ffb4e6,#9b5cff)}
.tp-final-cast img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.tp-final-cast b{font-size:12px;font-weight:800;color:#fff;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#tp-final-actions .ga-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
#tp-final-actions .ga-ghost{min-height:48px;padding:0 18px;border-radius:14px;border:1px solid #ffffff40;background:#ffffff14;color:#fff;font-weight:800}
#tp-final-actions .ga-note{text-align:center;color:#e4d8ffb8;font-size:13px}

body:has(#telepathy-screen.active) .stage-say{background:#1d0f45f2;color:#f5efff;border-color:#b99cff44}
body:has(#telepathy-screen.active) .stage-say p{color:#f5efff}
body:has(#telepathy-screen.active) .stage-say strong{color:#d9c2ff}

@media(min-width:1024px){
.telepathy-root{max-width:1180px}
.tp-arena{display:grid;grid-template-columns:330px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:18px;row-gap:12px;align-items:start}
.tp-status{grid-column:1;grid-row:1}
.tp-mc{grid-column:1;grid-row:2;align-items:flex-start}
.tp-mc .ga-mc-face{width:56px;height:56px}
.tp-table,.tp-final{grid-column:2;grid-row:1/span 2}
.tp-steps li{font-size:11px;padding:4px 1px}
}
@media(min-width:900px){
.tp-table{padding:20px 22px}
.tp-center{min-height:252px}
.tp-seat{width:86px}
.tp-seat-face{width:64px;height:64px}
.tp-card.is-big{width:150px;height:210px}
.tp-card.is-big .tp-card-num{font-size:92px}
.tp-pile{width:190px;height:250px}
.tp-pile-slot{margin:-105px 0 0 -75px}
.tp-hand-card.is-lowest .tp-card{width:104px;height:146px}
.tp-hand-card.is-lowest .tp-card-num{font-size:56px}
.tp-card.is-small{width:62px;height:88px}
.tp-hand.is-many .tp-hand-card:not(.is-lowest){margin-left:-8px}
.tp-banner strong{font-size:48px}
}
@media(max-width:700px){
.telepathy-screen>.play-heading{margin-bottom:10px}
.tp-status{padding:10px 12px 12px;gap:6px}
.tp-status .ga-status-title{font-size:17px}
.tp-status .ga-status-desc{font-size:13px;line-height:1.5}
.tp-mc{gap:10px}
.tp-mc .ga-mc-face{width:48px;height:48px}
.tp-mc .ga-mc-bubble{padding:8px 12px}
.tp-mc .ga-mc-bubble p{font-size:13.5px;line-height:1.45}
.tp-table{padding:10px 10px 12px;gap:8px;border-radius:24px}
.tp-center{min-height:200px}
.tp-aura{width:210px;height:210px;margin:-105px 0 0 -105px}
.tp-palm{width:158px;height:158px}
.tp-palm-hand{font-size:48px}
.tp-card.is-big,.tp-card.is-ghost{width:112px;height:156px;border-radius:17px}
.tp-card.is-big .tp-card-num{font-size:64px}
.tp-card.is-ghost .tp-card-num{font-size:50px}
.tp-pile{width:150px;height:190px}
.tp-pile-slot{margin:-78px 0 0 -56px}
.tp-seats{gap:6px 4px}
.tp-seat-face{width:48px;height:48px}
.tp-seat-backs{height:13px}
.tp-seat-backs i{width:9px;height:13px}
.tp-hand-wrap{min-height:0;gap:4px}
.tp-hand{min-height:118px}
.tp-hand-card.is-lowest .tp-card{width:84px;height:118px}
.tp-hand-card.is-lowest .tp-card-num{font-size:44px}
.tp-card.is-small{width:46px;height:66px}
.tp-card.is-small .tp-card-num{font-size:21px}
.tp-hand-note{font-size:11.5px}
.tp-status .ga-steps li{padding:3px 1px;font-size:11px}
.tp-banner strong{font-size:28px}
.tp-banner.is-mistake strong,.tp-banner.is-clear strong{font-size:32px}
.tp-emotes{gap:3px}
.tp-emote-btn{width:44px;flex-basis:44px;font-size:20px}
.tp-star-btn{padding:0 10px;gap:4px}
.tp-star-btn b{font-size:13px}
.tp-final-card h2{font-size:26px}
.tp-final-stats dd{font-size:19px}
}
@media(max-width:380px){
.tp-star-btn b{display:none}
.tp-seat{width:64px}
}
@media(prefers-reduced-motion:reduce){
.tp-nebula,.tp-stars,.tp-card:after,.tp-aura,.tp-palm,.tp-palm.is-on,.tp-heart.is-on,.tp-star.is-on,.tp-shh{animation:none!important}
.tp-table.is-shake{animation:none}
}
