.cardfx-scene{position:relative;display:grid;place-items:center}.cardfx-wrap{position:relative;transform-style:preserve-3d}.cardfx-card{position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateZ(var(--lift, 0px));will-change:transform;isolation:isolate;border-radius:var(--cardfx-radius, 12px)}.cardfx-foil{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;overflow:hidden;z-index:4}.cardfx-foil .layer-irid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--irid-grad);background-size:var(--irid-scale, 200%) var(--irid-scale, 200%);background-position:var(--irid-x, 50%) var(--irid-y, 50%);filter:saturate(var(--irid-sat, 1.2)) brightness(var(--irid-bright, 1));opacity:var(--irid-op, .55);mix-blend-mode:var(--irid-blend, color-dodge)}.cardfx-foil .layer-sheen{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 34%,rgba(255,255,255,var(--sheen-int, .32)) 50%,transparent 66%);background-size:250% 250%;background-position:var(--sheen-pos, 50% 50%);mix-blend-mode:screen}.cardfx-foil .layer-spec{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle var(--spec-size, 240px) at var(--mx, 50%) var(--my, 50%),rgba(var(--spec-col, 255, 255, 255),calc(var(--spec-int, .4) * .9)) 0%,rgba(var(--spec-col, 255, 255, 255),0) 68%);mix-blend-mode:screen}.cardfx-glow{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;border-radius:calc(var(--cardfx-radius, 12px) * 1.6);background:var(--irid-grad);background-size:180% 180%;background-position:var(--irid-x, 50%) var(--irid-y, 50%);filter:blur(var(--glow-blur, 60px)) saturate(calc(var(--irid-sat, 1.2) * 1.2));opacity:calc(var(--glow-int, .5) * (.14 + var(--hover, 0) * .86));transform:translateZ(-60px) scale(.92);transition:opacity .25s ease;pointer-events:none;z-index:0}.fx-canvas{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;width:180%;height:180%;pointer-events:none;z-index:6;opacity:0;transition:opacity .2s ease}.fx-canvas.live{opacity:1}.cardfx-card.no-shadow{box-shadow:none!important}.cardfx-card.no-shadow .cardfx-foil,.cardfx-wrap.destructing .cardfx-glow{opacity:0}.cardfx-card.punched{animation:cardfx-punch var(--crush-dur, 1.1s) cubic-bezier(.25,.8,.3,1) forwards;transform-origin:50% 47%}@keyframes cardfx-punch{0%{transform:rotateX(var(--prx, 0deg)) rotateY(var(--pry, 0deg))}9%{transform:translateZ(16px)}14%{transform:translateZ(calc(-64px * var(--cv, 1))) rotateX(calc(7deg * var(--cv, 1))) scale(.982)}30%{transform:translateZ(calc(-30px * var(--cv, 1))) rotateX(calc(-4deg * var(--cv, 1))) rotateY(calc(3deg * var(--cv, 1)))}48%{transform:translateZ(calc(-40px * var(--cv, 1))) rotateX(calc(2.4deg * var(--cv, 1))) rotateY(calc(-2deg * var(--cv, 1)))}70%{transform:translateZ(calc(-34px * var(--cv, 1))) rotateX(calc(-1.2deg * var(--cv, 1))) rotateY(calc(1deg * var(--cv, 1)))}to{transform:translateZ(calc(-36px * var(--cv, 1))) rotateX(calc(1deg * var(--cv, 1))) rotateY(calc(-.8deg * var(--cv, 1))) scale(.988)}}.cardfx-wrap.shake{animation:cardfx-shake .5s ease-out}@keyframes cardfx-shake{0%,to{transform:translate(0)}10%{transform:translate(calc(-9px * var(--cv, 1)),calc(5px * var(--cv, 1)))}24%{transform:translate(calc(8px * var(--cv, 1)),calc(-5px * var(--cv, 1)))}38%{transform:translate(calc(-5px * var(--cv, 1)),calc(3px * var(--cv, 1)))}54%{transform:translate(calc(3px * var(--cv, 1)),calc(-2px * var(--cv, 1)))}72%{transform:translate(calc(-1px * var(--cv, 1)),calc(1px * var(--cv, 1)))}}.cardfx-dent{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;transform:translateZ(28px);opacity:0;transition:opacity .16s ease;z-index:7;background:radial-gradient(40% 32% at 50% 47%,rgba(0,0,0,.6),rgba(0,0,0,.24) 55%,transparent 78%),radial-gradient(58% 50% at 50% 47%,transparent 50%,rgba(255,255,255,.12) 60%,transparent 72%),repeating-conic-gradient(from 12deg at 50% 47%,rgba(255,255,255,.06) 0deg 4deg,transparent 4deg 12deg,rgba(0,0,0,.2) 12deg 17deg,transparent 17deg 27deg);-webkit-mask:radial-gradient(closest-side at 50% 47%,#000 0%,#000 52%,transparent 80%);mask:radial-gradient(closest-side at 50% 47%,#000 0%,#000 52%,transparent 80%)}.cardfx-dent.on{opacity:1}.cardfx-flash{position:absolute;left:50%;top:47%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,255,255,.25) 40%,transparent 70%);transform:scale(.25);opacity:.95;transition:transform .38s cubic-bezier(.1,.8,.2,1),opacity .42s ease-out;pointer-events:none;z-index:8;mix-blend-mode:screen}.cardfx-shock{position:absolute;left:50%;top:47%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:2px solid rgba(255,255,255,.55);transform:scale(.2);opacity:.9;transition:transform .55s cubic-bezier(.1,.7,.2,1),opacity .55s ease-out;pointer-events:none;z-index:7}.cardfx-dust{position:absolute;left:50%;top:47%;width:70%;height:55%;transform:translate(-50%,-50%) scale(.3);transform-origin:center;background:radial-gradient(closest-side,rgba(170,170,180,.4),transparent 70%);opacity:0;transition:transform .7s ease-out,opacity .7s ease-out;pointer-events:none;z-index:5}.cardfx-shard{position:absolute;left:50%;top:47%;width:14px;height:18px;background:linear-gradient(150deg,#4a4b52,#17181c);box-shadow:inset 0 1px 1px #ffffff2e;border-radius:2px;will-change:transform,opacity;transition:transform .85s cubic-bezier(.15,.6,.25,1),opacity .85s ease-out;pointer-events:none;z-index:7}.turn-timer{margin:0;padding:8px 16px;max-width:240px;border-radius:999px;background:#0f172a99;border:1px solid rgba(148,163,184,.45);color:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.95rem}.turn-timer.critical{border-color:#f87171d9;background:#b91c1c59;color:#fee2e2}.turn-timer .label{letter-spacing:.02em;text-transform:uppercase;font-size:.75rem;color:#e2e8f0d9}.turn-timer.critical .label{color:#fee2e2e6}.turn-timer .time{font-variant-numeric:tabular-nums;font-weight:600}.attribute-option.attribute-highlight{background:#10b98138;border-color:#10b9818c;color:#f0fdf4;box-shadow:0 0 #10b98159;transition:background .14s ease,box-shadow .14s ease,transform .14s ease}.attribute-option.attribute-highlight:hover:not(:disabled){background:#05966952;box-shadow:0 0 18px #10b98166;transform:translateY(-1px)}.attribute-option.attribute-highlight:active:not(:disabled){transform:translateY(0)}.slot-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.slot-placeholder.bot-card-back img{width:100%;height:100%;object-fit:contain;filter:brightness(.85)}.surrender-row{margin:0;max-width:320px;display:flex;align-items:center;justify-content:center;gap:12px}.surrender-button{padding:8px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#dc4c6440;color:#ffe2e8;cursor:pointer}.surrender-button:disabled{opacity:.6;cursor:not-allowed}.surrender-hint{font-size:.85rem;color:#ffedf0bf}.duel-stage-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(1100px 560px at 50% -8%,rgba(70,104,184,.32),transparent 62%),radial-gradient(900px 520px at 50% 112%,rgba(150,70,36,.22),transparent 60%),radial-gradient(760px 760px at 50% 46%,rgba(40,60,110,.16),transparent 70%),linear-gradient(180deg,#0a0e1a,#0b1020 42%,#070a12)}.battlefield{display:grid;position:relative}.battlefield:before{content:"";position:absolute;top:-10%;right:-6%;bottom:-10%;left:-6%;border-radius:28px;background:radial-gradient(ellipse at center,rgba(110,150,255,.16),transparent 66%);pointer-events:none;z-index:0}.battlefield>*{position:relative;z-index:1}.battle-divider{display:flex;align-items:center;justify-content:center;align-self:center}.battle-divider-orb{font-weight:900;letter-spacing:.03em;font-size:clamp(12px,1.7vw,17px);color:#fff;width:clamp(32px,4.4vw,50px);height:clamp(32px,4.4vw,50px);display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe7a6,#d99b2e 58%,#8a5a12);box-shadow:0 0 0 2px #ffdc8c80,0 0 18px #ffbe5a8c,0 6px 14px #00000073;text-shadow:0 1px 2px rgba(0,0,0,.5)}.duel-hint{margin-top:12px;text-align:center;color:#d6e2f8d1;font-size:.92rem;font-weight:600}.round-banner{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%);z-index:1500;pointer-events:none;display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-weight:800;font-size:clamp(.8rem,1.4vw,1rem);white-space:nowrap;border:1px solid transparent;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:bannerFloat .32s cubic-bezier(.18,.89,.32,1.28) both}.round-banner-icon{font-size:1.25em}.round-banner.win{color:#d7ffe4;background:linear-gradient(180deg,#22c55eeb,#106e38eb);border-color:#78f0aab3;box-shadow:0 0 22px #22c55e73,0 10px 24px #00000080}.round-banner.lose{color:#ffe2e2;background:linear-gradient(180deg,#e44656eb,#961c28eb);border-color:#ff96a0b3;box-shadow:0 0 22px #ef444466,0 10px 24px #00000080}.round-banner.draw{color:#eef2fb;background:linear-gradient(180deg,#5a667ceb,#363e50eb);border-color:#b4bed299;box-shadow:0 10px 24px #00000080}@keyframes bannerFloat{0%{opacity:0;transform:translate(-50%,calc(-50% + 10px)) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes bannerPop{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.pill.score{color:#ffe6a8}.pill.deck{color:#cfe0ff}.you-tag{font-size:.62em;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#7fe3ff;background:#4ad0ff24;border:1px solid rgba(74,208,255,.4);border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:middle}.endscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;padding:20px;background:#04070eb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:endFadeIn .24s ease both}.endscreen-card{width:min(440px,92vw);text-align:center;border-radius:22px;padding:30px 26px 26px;background:linear-gradient(180deg,#141c2ef5,#0a0e18fa);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 80px #0009;animation:endPop .38s cubic-bezier(.18,.89,.32,1.28) both}.endscreen-card.win{box-shadow:0 0 0 1px #ffd67880,0 30px 90px #0009,0 0 60px #ffbe5a40}.endscreen-card.lose{box-shadow:0 0 0 1px #ef444466,0 30px 90px #0009}.endscreen-emblem{font-size:64px;line-height:1;filter:drop-shadow(0 6px 14px rgba(0,0,0,.5))}.endscreen-card.win .endscreen-emblem{animation:trophyBounce 1.4s ease-in-out infinite}.endscreen-title{margin:10px 0 2px;font-size:clamp(1.8rem,6vw,2.4rem);font-weight:900;letter-spacing:.02em}.endscreen-card.win .endscreen-title{color:#ffe39a;text-shadow:0 0 24px rgba(255,200,90,.5)}.endscreen-card.lose .endscreen-title{color:#ff9a9a}.endscreen-card.draw .endscreen-title{color:#dbe6ff}.endscreen-sub{margin:0 0 18px;color:#e2eafad1;font-size:.98rem}.endscreen-scoreline{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:22px}.score-side{display:flex;flex-direction:column;gap:2px;min-width:84px}.score-num{font-size:2.2rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}.score-side.you .score-num{color:#7fe3ff}.score-side.opp .score-num{color:#ff9a9a}.score-lbl{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#d6e2f8b3}.score-dash{font-size:1.6rem;opacity:.5}.endscreen-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.endscreen-btn{display:inline-flex;align-items:center;gap:6px;padding:11px 20px;border-radius:12px;font-weight:800;font-size:.95rem;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:transform .12s ease,box-shadow .2s ease,background .2s ease}.endscreen-btn.primary{color:#1d1402;background:linear-gradient(180deg,#ffe08a,#f2b53d);box-shadow:0 8px 20px #f2b53d59}.endscreen-btn.primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px #f2b53d73}.endscreen-btn.ghost{color:#e7eefc;background:#ffffff0f;border-color:#fff3}.endscreen-btn.ghost:hover{background:#ffffff1f;transform:translateY(-2px)}@keyframes endFadeIn{0%{opacity:0}to{opacity:1}}@keyframes endPop{0%{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes trophyBounce{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}@media(max-width:880px){.zone.center .center-content{grid-template-columns:1fr}.zone.center .center-right{height:auto;min-height:300px}}
