.k3d-room{position:relative;min-height:calc(100dvh - 4rem);background:radial-gradient(120% 90% at 50% -10%,#3d3428 0,#241f17 45%,#14100b 100%);color:#f3ead8;overflow:hidden}.k3d-room:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(45% 30% at 50% 12%,rgba(255,196,110,.14),transparent 70%),radial-gradient(80% 50% at 50% 110%,rgba(0,0,0,.55),transparent 60%)}.k3d-vignette{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:0;transition:opacity .35s ease}.k3d-vignette.red{opacity:1;background:radial-gradient(75% 75% at 50% 50%,transparent 55%,rgba(190,30,30,.45) 100%);animation:k3d-vignette-pulse 1.1s ease-in-out infinite}.k3d-vignette.green{opacity:1;background:radial-gradient(75% 75% at 50% 50%,transparent 55%,rgba(40,180,90,.4) 100%)}@keyframes k3d-vignette-pulse{0%,to{opacity:.85}50%{opacity:.45}}.k3d-scene{perspective:1500px;perspective-origin:50% 26%;display:flex;justify-content:center}.k3d-stage{position:relative;width:min(94vw,620px);aspect-ratio:10/11;transform-style:preserve-3d;transform:rotateX(calc(38deg + var(--tilt-x, 0deg))) rotate(var(--tilt-z,0deg));transition:transform .25s ease-out;container-type:inline-size;border-radius:10px;background:repeating-linear-gradient(90deg,rgba(0,0,0,.055) 0 2px,transparent 2px 7px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 14px),linear-gradient(180deg,#8a9a5b,#75884b 55%,#64763f);box-shadow:0 60px 90px -20px rgba(0,0,0,.75),inset 0 0 90px rgba(0,0,0,.28)}.k3d-stage:after,.k3d-stage:before{content:"";position:absolute;left:0;right:0;height:3.2%;background:repeating-linear-gradient(90deg,rgba(212,175,55,.5) 0 12px,transparent 12px 24px),linear-gradient(180deg,#2c3150,#1c2038);pointer-events:none}.k3d-stage:before{top:0;border-radius:10px 10px 0 0}.k3d-stage:after{bottom:0;border-radius:0 0 10px 10px}.k3d-centerline{left:4%;right:4%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,244,214,.35),transparent)}.k3d-centerline,.k3d-tatami-banner{position:absolute;top:50%;pointer-events:none}.k3d-tatami-banner{left:50%;transform:translate(-50%,-50%) translateZ(2px);font-family:var(--font-serif,serif);font-weight:700;font-size:5.4cqw;letter-spacing:.2em;white-space:nowrap;color:rgba(255,250,235,.95);text-shadow:0 2px 10px rgba(0,0,0,.6);animation:k3d-banner-in .5s cubic-bezier(.2,1.4,.4,1) backwards;z-index:5}@keyframes k3d-banner-in{0%{opacity:0;transform:translate(-50%,-50%) translateZ(60px) scale(1.6)}to{opacity:1;transform:translate(-50%,-50%) translateZ(2px) scale(1)}}.k3d-slot{position:absolute;width:15.2cqw;aspect-ratio:7/10;transform-style:preserve-3d;transform:translate(-50%,-50%) rotate(var(--rz,0deg));left:var(--x);top:var(--y);transition:left .9s cubic-bezier(.3,.9,.3,1) var(--fly-delay,0s),top .9s cubic-bezier(.3,.9,.3,1) var(--fly-delay,0s),transform .9s cubic-bezier(.3,.9,.3,1) var(--fly-delay,0s),opacity .7s ease var(--fly-delay,0s);z-index:2}.k3d-slot.taken{z-index:8}.k3d-slot.discarded{opacity:.28}.k3d-card{position:absolute;inset:0;transform-style:preserve-3d;transform:translateZ(0);transition:transform .22s ease;cursor:pointer;-webkit-tap-highlight-color:transparent}.k3d-card:disabled{cursor:default}.k3d-card.pickable:focus-visible,.k3d-card.pickable:hover{transform:translateZ(16px) rotateX(-7deg);outline:none}.k3d-card.pickable:active{transform:translateZ(2px);transition-duration:.06s}.k3d-card .k3d-card-shadow{position:absolute;inset:4% 2%;transform:translateZ(-1px);background:rgba(0,0,0,.4);filter:blur(4px);border-radius:8%;transition:transform .22s ease,filter .22s ease,opacity .22s ease}.k3d-card.pickable:hover .k3d-card-shadow{transform:translateZ(-16px) scale(1.12);filter:blur(9px);opacity:.55}.k3d-card-face{transform:translateZ(2.4px);overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(140% 120% at 20% 0,rgba(255,255,255,.55),transparent 45%),repeating-linear-gradient(83deg,rgba(160,130,80,.05) 0 3px,transparent 3px 6px),linear-gradient(160deg,#f7eed4,#efe2be 60%,#e5d3a6);box-shadow:inset 0 0 0 1px rgba(120,90,40,.35),inset 0 0 12px rgba(140,100,40,.18);backface-visibility:hidden}.k3d-card-edge,.k3d-card-face{position:absolute;inset:0;border-radius:7%}.k3d-card-edge{background:linear-gradient(180deg,#cbb684,#a8905c);transform:translateZ(.4px);box-shadow:0 1.5px 0 rgba(90,65,25,.8)}.k3d-fuda-text{writing-mode:vertical-rl;text-orientation:upright;font-family:var(--font-serif,serif);font-weight:600;color:#2b2016;font-size:2.35cqw;line-height:1.55;letter-spacing:.06em;display:flex;gap:.15em;height:88%;pointer-events:none;user-select:none}.k3d-fuda-text .phrase-2{padding-top:22%}.k3d-slot.taken .k3d-card-face{filter:saturate(.85) brightness(.92)}.k3d-card.correct .k3d-card-face{animation:k3d-correct-glow 1.2s ease-in-out}@keyframes k3d-correct-glow{0%{box-shadow:inset 0 0 0 1px rgba(120,90,40,.35),0 0 0 rgba(255,200,60,0)}35%{box-shadow:inset 0 0 0 2px rgba(255,200,60,.95),0 0 34px 8px rgba(255,200,60,.85)}to{box-shadow:inset 0 0 0 1px rgba(120,90,40,.35),0 0 0 rgba(255,200,60,0)}}.k3d-card.wrong{animation:k3d-shake .5s ease-in-out}.k3d-card.wrong .k3d-card-face{box-shadow:inset 0 0 0 2px rgba(220,50,50,.9),0 0 22px 4px rgba(220,50,50,.55)}@keyframes k3d-shake{0%,to{transform:translateZ(3px) rotate(0deg)}20%{transform:translateZ(3px) rotate(-4deg)}40%{transform:translateZ(3px) rotate(4deg)}60%{transform:translateZ(3px) rotate(-3deg)}80%{transform:translateZ(3px) rotate(2deg)}}.k3d-card.hinted .k3d-card-face{animation:k3d-hint-shimmer 1.4s ease-in-out infinite}@keyframes k3d-hint-shimmer{0%,to{box-shadow:inset 0 0 0 1px rgba(120,90,40,.35),0 0 6px 1px rgba(255,215,80,.25)}50%{box-shadow:inset 0 0 0 2px rgba(255,215,80,.9),0 0 24px 6px rgba(255,215,80,.7)}}.k3d-slot.dimmed{opacity:.42}.k3d-card.scatter{animation:k3d-scatter .7s cubic-bezier(.2,.8,.3,1) .5s}@keyframes k3d-scatter{0%{transform:translateZ(0)}30%{transform:translateZ(22px) translateX(calc(var(--scatter-dx, 0) * 1px)) translateY(calc(var(--scatter-dy, 0) * 1px)) rotate(calc(var(--scatter-rot, 0) * 1deg))}to{transform:translateZ(0) translateX(calc(var(--scatter-dx, 0) * .55px)) translateY(calc(var(--scatter-dy, 0) * .55px)) rotate(calc(var(--scatter-rot, 0) * .55deg))}}.k3d-card.flying{animation:k3d-fly .95s cubic-bezier(.3,.7,.3,1) .55s backwards}@keyframes k3d-fly{0%{transform:translateZ(0)}45%{transform:translateZ(140px) rotateX(-14deg)}to{transform:translateZ(2px)}}.k3d-stage.dealing .k3d-card{animation:k3d-deal .55s cubic-bezier(.25,.9,.35,1) backwards;animation-delay:calc(var(--deal-i, 0) * 55ms + .15s)}@keyframes k3d-deal{0%{transform:translate3d(0,-60px,320px) rotate(160deg);opacity:0}to{transform:translateZ(0) rotate(0deg);opacity:1}}.k3d-burst{position:absolute;left:50%;top:50%;width:0;height:0;transform:translateZ(24px);pointer-events:none;z-index:9}.k3d-burst i{position:absolute;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff6d8,#f5c542 60%,#b8860b);animation:k3d-spark .9s cubic-bezier(.15,.8,.4,1) .55s forwards;opacity:0}@keyframes k3d-spark{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(calc(var(--sx) * 1px),calc(var(--sy) * 1px)) scale(.2)}}.k3d-pile-chip{position:absolute;transform:translate(-50%,-50%) translateZ(6px);background:rgba(20,16,10,.72);border:1px solid rgba(212,175,55,.5);color:#f7eccb;border-radius:999px;padding:.15em .7em;font-size:2.6cqw;font-weight:700;white-space:nowrap;pointer-events:none;z-index:10}.k3d-stamp{position:fixed;left:50%;top:42%;z-index:70;transform:translate(-50%,-50%) rotate(-12deg);font-family:var(--font-serif,serif);font-size:clamp(2.6rem,8vw,5rem);font-weight:900;color:#d43333;border:6px solid #d43333;border-radius:14px;padding:.1em .4em;letter-spacing:.15em;background:rgba(255,245,240,.08);text-shadow:0 0 18px rgba(212,51,51,.5);box-shadow:0 0 30px rgba(212,51,51,.35),inset 0 0 24px rgba(212,51,51,.2);pointer-events:none;animation:k3d-stamp-in .4s cubic-bezier(.2,1.6,.35,1) backwards}@keyframes k3d-stamp-in{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(3)}to{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}}.k3d-yomifuda{position:relative;width:clamp(150px,21vw,200px);aspect-ratio:7/10;border-radius:10px;overflow:hidden;background:radial-gradient(140% 120% at 15% 0,rgba(255,255,255,.5),transparent 45%),linear-gradient(165deg,#f9f0d8,#eeddb4 70%,#e2cf9f);box-shadow:0 18px 40px -10px rgba(0,0,0,.7),inset 0 0 0 1px rgba(120,90,40,.4),inset 0 0 18px rgba(140,100,40,.2);color:#2b2016;animation:k3d-float 4.5s ease-in-out infinite;display:flex;flex-direction:row-reverse;justify-content:center;gap:.4rem;padding:8% 6%}@keyframes k3d-float{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(.5deg)}}.k3d-yomifuda .kami{font-weight:700;font-size:clamp(.85rem,1.6vw,1.05rem);line-height:1.7;letter-spacing:.08em}.k3d-yomifuda .kami,.k3d-yomifuda .poet{writing-mode:vertical-rl;text-orientation:upright;font-family:var(--font-serif,serif)}.k3d-yomifuda .poet{align-self:flex-end;font-size:clamp(.6rem,1.1vw,.75rem);color:#6b5636;padding-bottom:6%}.k3d-yomifuda .portrait{position:absolute;left:6%;top:6%;width:34%;aspect-ratio:3/4;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.3);opacity:.92}.k3d-yomifuda.entering{animation:k3d-yomifuda-in .7s cubic-bezier(.2,1.2,.35,1) backwards,k3d-float 4.5s ease-in-out .7s infinite}@keyframes k3d-yomifuda-in{0%{opacity:0;transform:translateY(-36px) rotateY(90deg)}to{opacity:1;transform:translateY(0) rotateY(0deg)}}.k3d-yomifuda-deck{position:absolute;inset:0;border-radius:10px;background:linear-gradient(150deg,#2c3150,#171a2e);box-shadow:0 2px 0 #101223,0 4px 0 #0c0e1c,0 6px 0 #090a15;transform:translate(7px,9px) rotate(2.5deg);z-index:-1}.k3d-yomifuda-deck:after{content:"";position:absolute;inset:8%;border-radius:8px;border:1px solid rgba(212,175,55,.35);background:radial-gradient(circle at 50% 50%,rgba(212,175,55,.18) 0 18%,transparent 19%),repeating-conic-gradient(from 0deg,rgba(212,175,55,.1) 0deg 15deg,transparent 15deg 30deg)}.k3d-hud-panel{background:rgba(22,18,12,.66);border:1px solid rgba(212,175,55,.25);backdrop-filter:blur(6px);border-radius:14px}.k3d-timerbar{height:6px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}.k3d-timerbar>div{height:100%;border-radius:999px;background:linear-gradient(90deg,#f5c542,#e88f2a);transition:width .9s linear}.k3d-timerbar.danger>div{background:linear-gradient(90deg,#e85c4a,#c0271d)}.k3d-player-chip{display:flex;align-items:center;gap:.55rem;padding:.4rem .8rem;border-radius:999px;background:rgba(22,18,12,.66);border:1px solid rgba(212,175,55,.25);transition:box-shadow .3s ease,border-color .3s ease}.k3d-player-chip.active{border-color:rgba(245,197,66,.9);box-shadow:0 0 18px rgba(245,197,66,.35)}.k3d-player-chip.offline{opacity:.55;filter:grayscale(.6)}.k3d-score-bump{animation:k3d-score-bump .6s cubic-bezier(.2,1.6,.4,1);display:inline-block}@keyframes k3d-score-bump{0%{transform:scale(1)}40%{transform:scale(1.7);color:#f5c542}to{transform:scale(1)}}.k3d-hero-card-spin{width:120px;aspect-ratio:7/10;margin:0 auto;transform-style:preserve-3d;animation:k3d-hero-spin 7s linear infinite;position:relative}@keyframes k3d-hero-spin{0%{transform:rotateX(12deg) rotateY(0deg)}to{transform:rotateX(12deg) rotateY(1turn)}}.k3d-hero-card-spin .face{position:absolute;inset:0;border-radius:9px;backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.k3d-hero-card-spin .front{background:linear-gradient(160deg,#f7eed4,#e5d3a6);box-shadow:inset 0 0 0 1px rgba(120,90,40,.4);color:#2b2016;font-family:var(--font-serif,serif);writing-mode:vertical-rl;text-orientation:upright;font-weight:700;font-size:.8rem;line-height:1.6}.k3d-hero-card-spin .back{background:linear-gradient(150deg,#2c3150,#171a2e);transform:rotateY(180deg);box-shadow:inset 0 0 0 1px rgba(212,175,55,.4)}.k3d-hero-card-spin .back:after{content:"百";color:rgba(212,175,55,.85);font-family:var(--font-serif,serif);font-size:2rem;display:grid;place-items:center;position:absolute;inset:0}.k3d-confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:55}.k3d-confetti i{position:absolute;top:-4vh;width:10px;height:16px;opacity:.9;animation:k3d-confetti-fall linear infinite}@keyframes k3d-confetti-fall{0%{transform:translateY(-6vh) rotate(0deg) rotateY(0deg)}to{transform:translateY(110vh) rotate(540deg) rotateY(2turn)}}@media (prefers-reduced-motion:reduce){.k3d-confetti i,.k3d-hero-card-spin,.k3d-yomifuda{animation:none}.k3d-slot{transition-duration:.2s}}