:root{--p5-accent:#e8001c;--p5-accent-hover:#ff1a35;--p5-accent-glow:#e8001c66;--p5-bg-deep:#0a0a0a;--p5-bg:#1a1a1a;--p5-bg-elevated:#2a2a2a;--p5-text:#f5f5f0;--p5-text-muted:#888;--p5-text-dim:#555;--p5-highlight:gold;--p5-skew:-2deg;--p5-font:"Segoe UI", "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;--rb-ink:#0c0a08;--rb-ink-2:#1a1612;--rb-ink-3:#2a221c;--rb-paper:#f5efe2;--rb-red:#e8281c;--rb-red-hot:#ff4a3a;--rb-yellow:#f3c41a;--rb-font-display:var(--p5-font);--rb-font-mono:var(--p5-font);--rb-font-zh:var(--p5-font)}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background:var(--p5-bg-deep);min-height:100vh;color:var(--p5-text);font-family:var(--p5-font);line-height:1.5}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--p5-bg)}::-webkit-scrollbar-thumb{background:var(--p5-accent)}::-webkit-scrollbar-thumb:hover{background:var(--p5-accent-hover)}::selection{background:var(--p5-accent-glow);color:#fff}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);animation-fill-mode:both}.animate__animated.animate__infinite{animation-iteration-count:infinite}.animate__animated.animate__repeat-1{animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat) * 2);animation-iteration-count:calc(var(--animate-repeat) * 2)}.animate__animated.animate__repeat-3{animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat) * 3);animation-iteration-count:calc(var(--animate-repeat) * 3)}.animate__animated.animate__delay-1s{animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay) * 2);animation-delay:calc(var(--animate-delay) * 2)}.animate__animated.animate__delay-3s{animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay) * 3);animation-delay:calc(var(--animate-delay) * 3)}.animate__animated.animate__delay-4s{animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay) * 4);animation-delay:calc(var(--animate-delay) * 4)}.animate__animated.animate__delay-5s{animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay) * 5);animation-delay:calc(var(--animate-delay) * 5)}.animate__animated.animate__faster{animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration) / 2);animation-duration:calc(var(--animate-duration) / 2)}.animate__animated.animate__fast{animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration) * .8);animation-duration:calc(var(--animate-duration) * .8)}.animate__animated.animate__slow{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration) * 2);animation-duration:calc(var(--animate-duration) * 2)}.animate__animated.animate__slower{animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration) * 3);animation-duration:calc(var(--animate-duration) * 3)}@media print,(prefers-reduced-motion:reduce){.animate__animated{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@keyframes bounce{0%,20%,53%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translate(0,0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-30px)scaleY(1.1)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translateY(-15px)scaleY(1.05)}80%{transition-timing-function:cubic-bezier(.215,.61,.355,1);transform:translate(0,0)scaleY(.95)}90%{transform:translateY(-4px)scaleY(1.02)}}.animate__bounce{transform-origin:bottom;animation-name:bounce}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{animation-name:flash}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scale(1)}}.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}@keyframes rubberBand{0%{transform:scale(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scale(1)}}.animate__rubberBand{animation-name:rubberBand}@keyframes shakeX{0%,to{transform:translate(0,0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate__shakeX{animation-name:shakeX}@keyframes shakeY{0%,to{transform:translate(0,0)}10%,30%,50%,70%,90%{transform:translateY(-10px)}20%,40%,60%,80%{transform:translateY(10px)}}.animate__shakeY{animation-name:shakeY}@keyframes headShake{0%{transform:translate(0)}6.5%{transform:translate(-6px)rotateY(-9deg)}18.5%{transform:translate(5px)rotateY(7deg)}31.5%{transform:translate(-3px)rotateY(-5deg)}43.5%{transform:translate(2px)rotateY(3deg)}50%{transform:translate(0)}}.animate__headShake{animation-name:headShake;animation-timing-function:ease-in-out}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate__swing{transform-origin:top;animation-name:swing}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale3d(.9,.9,.9)rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1)rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1)rotate(-3deg)}to{transform:scale(1)}}.animate__tada{animation-name:tada}@keyframes wobble{0%{transform:translate(0,0)}15%{transform:translate(-25%)rotate(-5deg)}30%{transform:translate(20%)rotate(3deg)}45%{transform:translate(-15%)rotate(-3deg)}60%{transform:translate(10%)rotate(2deg)}75%{transform:translate(-5%)rotate(-1deg)}to{transform:translate(0,0)}}.animate__wobble{animation-name:wobble}@keyframes jello{0%,11.1%,to{transform:translate(0,0)}22.2%{transform:skew(-12.5deg)skewY(-12.5deg)}33.3%{transform:skew(6.25deg)skewY(6.25deg)}44.4%{transform:skew(-3.125deg)skewY(-3.125deg)}55.5%{transform:skew(1.5625deg)skewY(1.5625deg)}66.6%{transform:skew(-.78125deg)skewY(-.78125deg)}77.7%{transform:skew(.390625deg)skewY(.390625deg)}88.8%{transform:skew(-.195313deg)skewY(-.195313deg)}}.animate__jello{transform-origin:50%;animation-name:jello}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate__heartBeat{animation-name:heartBeat;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration) * 1.3);animation-duration:calc(var(--animate-duration) * 1.3);animation-timing-function:ease-in-out}@keyframes backInDown{0%{opacity:.7;transform:translateY(-1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInDown{animation-name:backInDown}@keyframes backInLeft{0%{opacity:.7;transform:translate(-2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInLeft{animation-name:backInLeft}@keyframes backInRight{0%{opacity:.7;transform:translate(2000px)scale(.7)}80%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInRight{animation-name:backInRight}@keyframes backInUp{0%{opacity:.7;transform:translateY(1200px)scale(.7)}80%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:1;transform:scale(1)}}.animate__backInUp{animation-name:backInUp}@keyframes backOutDown{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(700px)scale(.7)}}.animate__backOutDown{animation-name:backOutDown}@keyframes backOutLeft{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(-2000px)scale(.7)}}.animate__backOutLeft{animation-name:backOutLeft}@keyframes backOutRight{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translate(0)scale(.7)}to{opacity:.7;transform:translate(2000px)scale(.7)}}.animate__backOutRight{animation-name:backOutRight}@keyframes backOutUp{0%{opacity:1;transform:scale(1)}20%{opacity:.7;transform:translateY(0)scale(.7)}to{opacity:.7;transform:translateY(-700px)scale(.7)}}.animate__backOutUp{animation-name:backOutUp}@keyframes bounceIn{0%,20%,40%,60%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scale(1)}}.animate__bounceIn{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:bounceIn}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)scaleY(3)}60%{opacity:1;transform:translateY(25px)scaleY(.9)}75%{transform:translateY(-10px)scaleY(.95)}90%{transform:translateY(5px)scaleY(.985)}to{transform:translate(0,0)}}.animate__bounceInDown{animation-name:bounceInDown}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)scaleX(3)}60%{opacity:1;transform:translate(25px)scaleX(1)}75%{transform:translate(-10px)scaleX(.98)}90%{transform:translate(5px)scaleX(.995)}to{transform:translate(0,0)}}.animate__bounceInLeft{animation-name:bounceInLeft}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)scaleX(3)}60%{opacity:1;transform:translate(-25px)scaleX(1)}75%{transform:translate(10px)scaleX(.98)}90%{transform:translate(-5px)scaleX(.995)}to{transform:translate(0,0)}}.animate__bounceInRight{animation-name:bounceInRight}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)scaleY(5)}60%{opacity:1;transform:translateY(-20px)scaleY(.9)}75%{transform:translateY(10px)scaleY(.95)}90%{transform:translateY(-5px)scaleY(.985)}to{transform:translate(0,0)}}.animate__bounceInUp{animation-name:bounceInUp}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}.animate__bounceOut{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:bounceOut}@keyframes bounceOutDown{20%{transform:translateY(10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(-20px)scaleY(.9)}to{opacity:0;transform:translateY(2000px)scaleY(3)}}.animate__bounceOutDown{animation-name:bounceOutDown}@keyframes bounceOutLeft{20%{opacity:1;transform:translate(20px)scaleX(.9)}to{opacity:0;transform:translate(-2000px)scaleX(2)}}.animate__bounceOutLeft{animation-name:bounceOutLeft}@keyframes bounceOutRight{20%{opacity:1;transform:translate(-20px)scaleX(.9)}to{opacity:0;transform:translate(2000px)scaleX(2)}}.animate__bounceOutRight{animation-name:bounceOutRight}@keyframes bounceOutUp{20%{transform:translateY(-10px)scaleY(.985)}40%,45%{opacity:1;transform:translateY(20px)scaleY(.9)}to{opacity:0;transform:translateY(-2000px)scaleY(3)}}.animate__bounceOutUp{animation-name:bounceOutUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{animation-name:fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInDown{animation-name:fadeInDown}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInDownBig{animation-name:fadeInDownBig}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInLeft{animation-name:fadeInLeft}@keyframes fadeInLeftBig{0%{opacity:0;transform:translate(-2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInLeftBig{animation-name:fadeInLeftBig}@keyframes fadeInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInRight{animation-name:fadeInRight}@keyframes fadeInRightBig{0%{opacity:0;transform:translate(2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInRightBig{animation-name:fadeInRightBig}@keyframes fadeInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInUp{animation-name:fadeInUp}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInUpBig{animation-name:fadeInUpBig}@keyframes fadeInTopLeft{0%{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInTopLeft{animation-name:fadeInTopLeft}@keyframes fadeInTopRight{0%{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInTopRight{animation-name:fadeInTopRight}@keyframes fadeInBottomLeft{0%{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInBottomLeft{animation-name:fadeInBottomLeft}@keyframes fadeInBottomRight{0%{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translate(0,0)}}.animate__fadeInBottomRight{animation-name:fadeInBottomRight}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{animation-name:fadeOut}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;transform:translateY(100%)}}.animate__fadeOutDown{animation-name:fadeOutDown}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;transform:translateY(2000px)}}.animate__fadeOutDownBig{animation-name:fadeOutDownBig}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)}}.animate__fadeOutLeft{animation-name:fadeOutLeft}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;transform:translate(-2000px)}}.animate__fadeOutLeftBig{animation-name:fadeOutLeftBig}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)}}.animate__fadeOutRight{animation-name:fadeOutRight}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;transform:translate(2000px)}}.animate__fadeOutRightBig{animation-name:fadeOutRightBig}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-100%)}}.animate__fadeOutUp{animation-name:fadeOutUp}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;transform:translateY(-2000px)}}.animate__fadeOutUpBig{animation-name:fadeOutUpBig}@keyframes fadeOutTopLeft{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(-100%,-100%)}}.animate__fadeOutTopLeft{animation-name:fadeOutTopLeft}@keyframes fadeOutTopRight{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(100%,-100%)}}.animate__fadeOutTopRight{animation-name:fadeOutTopRight}@keyframes fadeOutBottomRight{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(100%,100%)}}.animate__fadeOutBottomRight{animation-name:fadeOutBottomRight}@keyframes fadeOutBottomLeft{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(-100%,100%)}}.animate__fadeOutBottomLeft{animation-name:fadeOutBottomLeft}@keyframes flip{0%{animation-timing-function:ease-out;transform:perspective(400px)scale(1)translate(0,0)rotateY(-360deg)}40%{animation-timing-function:ease-out;transform:perspective(400px)scale(1)translateZ(150px)rotateY(-190deg)}50%{animation-timing-function:ease-in;transform:perspective(400px)scale(1)translateZ(150px)rotateY(-170deg)}80%{animation-timing-function:ease-in;transform:perspective(400px)scale3d(.95,.95,.95)translate(0,0)rotateY(0)}to{animation-timing-function:ease-in;transform:perspective(400px)scale(1)translate(0,0)rotateY(0)}}.animate__animated.animate__flip{backface-visibility:visible;animation-name:flip}@keyframes flipInX{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}.animate__flipInX{animation-name:flipInX;backface-visibility:visible!important}@keyframes flipInY{0%{opacity:0;animation-timing-function:ease-in;transform:perspective(400px)rotateY(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateY(-20deg)}60%{opacity:1;transform:perspective(400px)rotateY(10deg)}80%{transform:perspective(400px)rotateY(-5deg)}to{transform:perspective(400px)}}.animate__flipInY{animation-name:flipInY;backface-visibility:visible!important}@keyframes flipOutX{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateX(-20deg)}to{opacity:0;transform:perspective(400px)rotateX(90deg)}}.animate__flipOutX{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:flipOutX;backface-visibility:visible!important}@keyframes flipOutY{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px)rotateY(-15deg)}to{opacity:0;transform:perspective(400px)rotateY(90deg)}}.animate__flipOutY{animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration) * .75);animation-duration:calc(var(--animate-duration) * .75);animation-name:flipOutY;backface-visibility:visible!important}@keyframes lightSpeedInRight{0%{opacity:0;transform:translate(100%)skew(-30deg)}60%{opacity:1;transform:skew(20deg)}80%{transform:skew(-5deg)}to{transform:translate(0,0)}}.animate__lightSpeedInRight{animation-name:lightSpeedInRight;animation-timing-function:ease-out}@keyframes lightSpeedInLeft{0%{opacity:0;transform:translate(-100%)skew(30deg)}60%{opacity:1;transform:skew(-20deg)}80%{transform:skew(5deg)}to{transform:translate(0,0)}}.animate__lightSpeedInLeft{animation-name:lightSpeedInLeft;animation-timing-function:ease-out}@keyframes lightSpeedOutRight{0%{opacity:1}to{opacity:0;transform:translate(100%)skew(30deg)}}.animate__lightSpeedOutRight{animation-name:lightSpeedOutRight;animation-timing-function:ease-in}@keyframes lightSpeedOutLeft{0%{opacity:1}to{opacity:0;transform:translate(-100%)skew(-30deg)}}.animate__lightSpeedOutLeft{animation-name:lightSpeedOutLeft;animation-timing-function:ease-in}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateIn{transform-origin:50%;animation-name:rotateIn}@keyframes rotateInDownLeft{0%{opacity:0;transform:rotate(-45deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInDownLeft{transform-origin:0 100%;animation-name:rotateInDownLeft}@keyframes rotateInDownRight{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInDownRight{transform-origin:100% 100%;animation-name:rotateInDownRight}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInUpLeft{transform-origin:0 100%;animation-name:rotateInUpLeft}@keyframes rotateInUpRight{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:translate(0,0)}}.animate__rotateInUpRight{transform-origin:100% 100%;animation-name:rotateInUpRight}@keyframes rotateOut{0%{opacity:1}to{opacity:0;transform:rotate(200deg)}}.animate__rotateOut{transform-origin:50%;animation-name:rotateOut}@keyframes rotateOutDownLeft{0%{opacity:1}to{opacity:0;transform:rotate(45deg)}}.animate__rotateOutDownLeft{transform-origin:0 100%;animation-name:rotateOutDownLeft}@keyframes rotateOutDownRight{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutDownRight{transform-origin:100% 100%;animation-name:rotateOutDownRight}@keyframes rotateOutUpLeft{0%{opacity:1}to{opacity:0;transform:rotate(-45deg)}}.animate__rotateOutUpLeft{transform-origin:0 100%;animation-name:rotateOutUpLeft}@keyframes rotateOutUpRight{0%{opacity:1}to{opacity:0;transform:rotate(90deg)}}.animate__rotateOutUpRight{transform-origin:100% 100%;animation-name:rotateOutUpRight}@keyframes hinge{0%{animation-timing-function:ease-in-out}20%,60%{animation-timing-function:ease-in-out;transform:rotate(80deg)}40%,80%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(60deg)}to{opacity:0;transform:translateY(700px)}}.animate__hinge{animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration) * 2);animation-duration:calc(var(--animate-duration) * 2);transform-origin:0 0;animation-name:hinge}@keyframes jackInTheBox{0%{opacity:0;transform-origin:bottom;transform:scale(.1)rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{opacity:1;transform:scale(1)}}.animate__jackInTheBox{animation-name:jackInTheBox}@keyframes rollIn{0%{opacity:0;transform:translate(-100%)rotate(-120deg)}to{opacity:1;transform:translate(0,0)}}.animate__rollIn{animation-name:rollIn}@keyframes rollOut{0%{opacity:1}to{opacity:0;transform:translate(100%)rotate(120deg)}}.animate__rollOut{animation-name:rollOut}@keyframes zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{animation-name:zoomIn}@keyframes zoomInDown{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(60px)}}.animate__zoomInDown{animation-name:zoomInDown}@keyframes zoomInLeft{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(-1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(10px)}}.animate__zoomInLeft{animation-name:zoomInLeft}@keyframes zoomInRight{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translate(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translate(-10px)}}.animate__zoomInRight{animation-name:zoomInRight}@keyframes zoomInUp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.1,.1,.1)translateY(1000px)}60%{opacity:1;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.475,.475,.475)translateY(-60px)}}.animate__zoomInUp{animation-name:zoomInUp}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{animation-name:zoomOut}@keyframes zoomOutDown{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(-60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(2000px)}}.animate__zoomOutDown{transform-origin:bottom;animation-name:zoomOutDown}@keyframes zoomOutLeft{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(42px)}to{opacity:0;transform:scale(.1)translate(-2000px)}}.animate__zoomOutLeft{transform-origin:0;animation-name:zoomOutLeft}@keyframes zoomOutRight{40%{opacity:1;transform:scale3d(.475,.475,.475)translate(-42px)}to{opacity:0;transform:scale(.1)translate(2000px)}}.animate__zoomOutRight{transform-origin:100%;animation-name:zoomOutRight}@keyframes zoomOutUp{40%{opacity:1;animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:scale3d(.475,.475,.475)translateY(60px)}to{opacity:0;animation-timing-function:cubic-bezier(.175,.885,.32,1);transform:scale3d(.1,.1,.1)translateY(-2000px)}}.animate__zoomOutUp{transform-origin:bottom;animation-name:zoomOutUp}@keyframes slideInDown{0%{visibility:visible;transform:translateY(-100%)}to{transform:translate(0,0)}}.animate__slideInDown{animation-name:slideInDown}@keyframes slideInLeft{0%{visibility:visible;transform:translate(-100%)}to{transform:translate(0,0)}}.animate__slideInLeft{animation-name:slideInLeft}@keyframes slideInRight{0%{visibility:visible;transform:translate(100%)}to{transform:translate(0,0)}}.animate__slideInRight{animation-name:slideInRight}@keyframes slideInUp{0%{visibility:visible;transform:translateY(100%)}to{transform:translate(0,0)}}.animate__slideInUp{animation-name:slideInUp}@keyframes slideOutDown{0%{transform:translate(0,0)}to{visibility:hidden;transform:translateY(100%)}}.animate__slideOutDown{animation-name:slideOutDown}@keyframes slideOutLeft{0%{transform:translate(0,0)}to{visibility:hidden;transform:translate(-100%)}}.animate__slideOutLeft{animation-name:slideOutLeft}@keyframes slideOutRight{0%{transform:translate(0,0)}to{visibility:hidden;transform:translate(100%)}}.animate__slideOutRight{animation-name:slideOutRight}@keyframes slideOutUp{0%{transform:translate(0,0)}to{visibility:hidden;transform:translateY(-100%)}}.animate__slideOutUp{animation-name:slideOutUp}html[data-device-mode=mobile] .game-container{height:100svh}html[data-device-mode=mobile] .game-sidebar{gap:6px;width:clamp(76px,11vw,108px);padding:6px}html[data-device-mode=mobile] .game-info{gap:4px}html[data-device-mode=mobile] .game-board__battlefield{padding:4px 8px}html[data-device-mode=mobile] .game-board__battlefield-divider{margin:0 6px}html[data-device-mode=mobile] .player-area--opponent{flex-shrink:0}html[data-device-mode=mobile] .game-board__battlefield{flex:auto;min-height:0}html[data-device-mode=mobile] .player-area--self{flex-shrink:0;min-height:0}html[data-device-mode=mobile] .player-area--self .base-zone__area{min-height:0;max-height:22svh}html[data-device-mode=mobile] .player-area--opponent .base-zone__area{min-height:0;max-height:16svh}html[data-device-mode=mobile] .battlefield-zone{min-height:0}html[data-device-mode=mobile] .battlefield-zone__units{min-height:clamp(48px,13svh,84px)}html[data-device-mode=mobile] .player-area--opponent .hand-zone{min-height:0;padding:2px 8px}html[data-device-mode=mobile] .player-area--opponent .rune-zone__active{min-height:0}html[data-device-mode=mobile] .player-area__hand-row{flex-shrink:0;padding-right:clamp(48px,8vw,80px)}html[data-device-mode=mobile] .hand-zone{min-height:clamp(64px,18svh,100px);padding:4px 8px}html[data-device-mode=mobile] .player-area__graveyard{min-width:clamp(48px,7vw,72px);padding:4px}html[data-device-mode=mobile] .base-zone{gap:6px;padding:6px 8px}html[data-device-mode=mobile] .rune-zone{gap:6px;padding:4px 8px}html[data-device-mode=mobile] .rb-panel{width:min(760px,94vw)}html[data-device-mode=mobile] .rb-lobby__choices{gap:clamp(12px,3vw,32px);padding:clamp(12px,4vw,48px) clamp(12px,5vw,80px)}html[data-device-mode=mobile] .deck-list{width:clamp(160px,26vw,270px)}html[data-device-mode=mobile] .deck-builder-body{padding:clamp(10px,2vw,28px) clamp(12px,2.5vw,32px) 12px}html[data-device-mode=mobile] .step-with-sidebar{gap:clamp(10px,2vw,20px)}html[data-device-mode=mobile] .card-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}html[data-device-mode=mobile] .card-grid--rotated{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}html[data-device-mode=mobile] .mulligan-panel{width:min(720px,94vw);min-width:0;max-height:90svh;overflow-y:auto}html[data-device-mode=mobile] .settings-modal,html[data-device-mode=mobile] .game-prompt-modal,html[data-device-mode=mobile] .trigger-ordering-modal{max-height:90svh;overflow-y:auto}html[data-device-mode=mobile] .trigger-ordering-modal{min-width:min(360px,92vw);max-width:min(480px,94vw)}html[data-device-mode=mobile] .card--medium{--card-width:clamp(52px, 13svh, 80px);--card-height:calc(var(--card-width) * 1.4)}html[data-device-mode=mobile] .card--small{--card-width:clamp(40px, 10svh, 64px);--card-height:calc(var(--card-width) * 1.4)}html[data-device-mode=mobile] .card--large{--card-width:clamp(64px, 16svh, 100px);--card-height:calc(var(--card-width) * 1.4)}html[data-device-mode=mobile] .card--tiny{--card-width:clamp(44px, 11svh, 60px);--card-height:calc(var(--card-width) * .6)}html[data-device-mode=mobile] .card:hover{transform:none!important}html[data-device-mode=mobile] [draggable=true]{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.pointer-drag-ghost{pointer-events:none}.card-preview-overlay{z-index:99999;background:#000000b8;justify-content:center;align-items:center;animation:.12s ease-out card-preview-fade;display:flex;position:fixed;inset:0}.card-preview-overlay__card.card{cursor:pointer;font-size:20px;box-shadow:0 12px 48px #000000b3;width:44.268svh!important;height:62svh!important;transform:none!important}@keyframes card-preview-fade{0%{opacity:0}to{opacity:1}}.card{--card-width:80px;--card-height:112px;--card-radius:4px;width:var(--card-width);height:var(--card-height);border-radius:var(--card-radius);cursor:pointer;flex-shrink:0;transition:transform .15s,box-shadow .15s}.card:not(.card-back):hover{box-shadow:0 6px 16px #00000080, 0 0 8px var(--p5-accent-glow)}.card:not(.card--battlefield):not(.card-back):hover{z-index:500;position:relative}body:not(.is-dragging) .card--small:not(.card--compact):not(.card--rune):not(.card--tapped):not(.card--unit-tapped):not(.card--flipped):not(.card-back):not(.card--battlefield):hover,body:not(.is-dragging) .card--medium:not(.card--compact):not(.card--rune):not(.card--tapped):not(.card--unit-tapped):not(.card--flipped):not(.card-back):not(.card--battlefield):hover{z-index:100;position:relative;transform:scale(2.2)}body:not(.is-dragging) .card--small.card--unit-tapped:hover,body:not(.is-dragging) .card--medium.card--unit-tapped:hover{z-index:100;opacity:.85;position:relative;transform:rotate(90deg)scale(2.2)}.card__inner{border-radius:var(--card-radius);box-sizing:border-box;border:none;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:8px;display:flex;position:relative}.card--tiny{--card-width:60px;--card-height:36px;font-size:8px}.player-area--opponent .card--tiny:not(.card--tapped):not(.card--unit-tapped):not(.card--flipped){transform-style:preserve-3d;position:relative;transform:perspective(320px)rotateY(-18deg)rotateX(6deg)translateZ(0);box-shadow:0 6px 12px #00000080}.player-area--opponent .card--tiny:not(.card--tapped):not(.card--unit-tapped):not(.card--flipped):after{content:"";border-radius:calc(var(--card-radius) - 2px);pointer-events:none;background:linear-gradient(140deg,#fff3,#0000 45%,#0003 85%);position:absolute;inset:2px}.player-area--opponent .card--tiny:not(.card--tapped):not(.card--unit-tapped):not(.card--flipped):hover{transform:perspective(320px)rotateY(-16deg)rotateX(6deg)translateY(-2px);box-shadow:0 8px 16px #0009}.card--small{--card-width:60px;--card-height:84px;font-size:10px}.card--medium{--card-width:80px;--card-height:112px;font-size:12px}.card--large{--card-width:100px;--card-height:140px;font-size:14px}@media (height<=820px){.card{--card-width:70px;--card-height:98px}.card--small{--card-width:52px;--card-height:73px}.card--medium{--card-width:70px;--card-height:98px}.card--large{--card-width:88px;--card-height:123px}}@media (height<=700px){.card{--card-width:60px;--card-height:84px}.card--small{--card-width:46px;--card-height:64px}.card--medium{--card-width:60px;--card-height:84px}.card--large{--card-width:76px;--card-height:106px}}.card--compact{--card-height:24px;--card-radius:2px}.card--compact .card__inner{padding:0}.card--compact:hover{box-shadow:none;transform:none}body:not(.is-dragging) .card--battlefield:hover{z-index:100;position:relative;transform:rotate(-90deg)scale(2.2)}.card--battlefield .card__inner{background:#ffffff94}.card--rune .card__inner{background:linear-gradient(135deg, #2a2a2a 0%, var(--p5-bg-deep) 100%)}.card--main .card__inner{background:linear-gradient(135deg, var(--p5-bg-elevated) 0%, var(--p5-bg) 100%)}.card--unit .card__inner{background:linear-gradient(135deg,#1a5a30 0%,#0a2a15 100%)}.card--spell .card__inner{background:linear-gradient(135deg,#4a2a8a 0%,#2a1a4a 100%)}.card--equipment .card__inner{background:linear-gradient(135deg,#8a4a10 0%,#4a2a08 100%)}.card--legend .card__inner{background:linear-gradient(135deg,#8a6a10 0%,#4a3a08 100%)}.card--red .card__inner{background:linear-gradient(135deg,#8a1a1a 0%,#4a0a0a 100%)}.card--blue .card__inner{background:linear-gradient(135deg,#1a3a7a 0%,#0a1a4a 100%)}.card--green .card__inner{background:linear-gradient(135deg,#1a5a30 0%,#0a2a15 100%)}.card--purple .card__inner{background:linear-gradient(135deg,#4a2a7a 0%,#2a1a4a 100%)}.card--orange .card__inner{background:linear-gradient(135deg,#7a3a10 0%,#3a1a05 100%)}.card--yellow .card__inner{background:linear-gradient(135deg,#7a6a10 0%,#3a3005 100%)}.card--tapped{transform:rotate(90deg)}.card--tapped:hover{transform:rotate(90deg)translateY(-4px)}.card--flipped{filter:grayscale(30%);opacity:.85}.card--flipped .card__inner{background:linear-gradient(135deg, var(--p5-bg-elevated) 0%, var(--p5-bg-deep) 100%)!important}.card--tapped.card--flipped{filter:grayscale(30%);opacity:.75;transform:rotate(90deg)}.card--tapped.card--flipped:hover{transform:rotate(90deg)translateY(-4px)}.card--unit-tapped{opacity:.7;transform:rotate(90deg)}.card--unit-tapped:hover{opacity:.85;transform:rotate(90deg)translateY(-4px)}.card__state-indicators{flex-direction:column;gap:2px;display:flex;position:absolute;bottom:4px;right:4px}.card__state-indicator{color:#fff;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;font-weight:900;display:flex;box-shadow:0 1px 4px #00000080}.card__state-indicator--tapped{background:#b88a00}.card__state-indicator--flipped{background:#6a3acc}.card__state-indicator--locked{background:var(--p5-bg-elevated);font-size:8px}.card__state-indicator--inactive{background:var(--p5-text-dim);font-size:8px}.card__stats-badge{background:var(--p5-bg-deep);border:2px solid var(--p5-accent);height:22px;color:var(--p5-text);text-shadow:1px 1px #000c;z-index:2;white-space:nowrap;clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);justify-content:center;align-items:center;gap:1px;padding:0 6px;font-size:13px;font-weight:900;line-height:1;display:flex;position:absolute;bottom:2px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000080}.card--small .card__stats-badge{border-width:1.5px;height:18px;padding:0 4px;font-size:11px;bottom:1px}.card--tiny .card__stats-badge{border-width:1px;height:14px;padding:0 3px;font-size:9px;bottom:1px}.card__stats-power--buffed{color:#4ade80}.card__stats-power--debuffed{color:var(--p5-accent)}.card__stats-separator{color:var(--p5-text-dim);font-weight:400}.card__stats-hp--damaged{color:var(--p5-accent)}.card__equip-dots{z-index:5;flex-direction:column-reverse;gap:4px;display:flex;position:absolute;bottom:-8px;right:-10px}.card--small .card__equip-dots{bottom:-6px;right:-8px}.card__equip-dot{color:#000;cursor:default;background:#9aa0a6;border:2px solid #000;justify-content:center;align-items:center;width:26px;height:26px;animation:.35s cubic-bezier(.2,.9,.3,1.4) both equipBadgeIn;display:flex;position:relative;transform:rotate(-6deg);box-shadow:2px 2px #000}.card__equip-dot--red{color:#fff;background:#c0392b}.card__equip-dot--blue{color:#fff;background:#2e5fb0}.card__equip-dot--green{color:#fff;background:#2e8b50}.card__equip-dot--purple{color:#fff;background:#7d4fbf}.card__equip-dot--orange{color:#fff;background:#d2691e}.card__equip-dot--yellow{color:#000;background:#d4b310}.card__equip-dot--universal{color:#000;background:#9aa0a6}.card--small .card__equip-dot{border-width:1.5px;width:20px;height:20px;box-shadow:1.5px 1.5px #000}.card__equip-dot-glyph{text-shadow:none;font-size:15px;font-weight:900;line-height:1}.card--small .card__equip-dot-glyph{font-size:12px}@keyframes equipBadgeIn{0%{opacity:0;transform:scale(.4)rotate(-25deg)}60%{opacity:1;transform:scale(1.25)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(-6deg)}}.card__equip-dot:after{content:"";pointer-events:none;opacity:0;border:1.5px dashed #ffd70080;animation:2.4s ease-in-out .6s infinite equipBadgePulse;position:absolute;inset:-3px}@keyframes equipBadgePulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.card__buff-badge{color:#fff;cursor:default;z-index:5;background:#e8821e;border:2px solid #000;justify-content:center;align-items:center;width:26px;height:26px;animation:.35s cubic-bezier(.2,.9,.3,1.4) both equipBadgeIn;display:flex;position:absolute;top:-8px;right:-10px;transform:rotate(6deg);box-shadow:2px 2px #000}.card--small .card__buff-badge{border-width:1.5px;width:20px;height:20px;top:-6px;right:-8px;box-shadow:1.5px 1.5px #000}.card__buff-badge-glyph{text-shadow:none;font-size:16px;font-weight:900;line-height:1}.card--small .card__buff-badge-glyph{font-size:13px}.card__equip-panel{z-index:500;pointer-events:none;flex-direction:column;gap:4px;display:none;position:absolute;bottom:0;left:calc(100% + 4px)}.card:hover>.card__equip-panel{display:flex}.card__equip-panel .card{pointer-events:none}.card__equip-panel .card:hover{box-shadow:none;transform:none!important}.card--pending{box-shadow:0 0 12px var(--p5-accent-glow);animation:1.5s ease-in-out infinite pendingPulse}@keyframes pendingPulse{0%,to{box-shadow:0 0 6px var(--p5-accent-glow)}50%{box-shadow:0 0 18px var(--p5-accent-glow)}}.card__cost{flex-direction:column;gap:2px;display:flex;position:absolute;top:4px;right:4px}.cost{color:#fff;text-shadow:0 1px 2px #000c;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:900;display:flex}.cost--generic{background:var(--p5-text-dim)}.cost--red{background:var(--p5-accent)}.cost--green{background:#1a7a3a}.cost--orange{background:#aa5a10}.cost--yellow{background:#aa8a10}.cost--blue{background:#1a4a9a}.cost--purple{background:#5a2aaa}.card__type-badge{width:18px;height:18px;color:var(--p5-text);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);background:#000000b3;justify-content:center;align-items:center;font-size:10px;font-weight:900;display:flex;position:absolute;top:4px;left:4px}.card__name{color:var(--p5-text);text-align:center;text-shadow:0 1px 3px #000c;word-break:break-all;font-weight:700;line-height:1.2}.card__hero-mark{color:var(--p5-highlight);text-shadow:0 0 6px #ffd700cc;font-size:14px;position:absolute;top:4px;right:4px}.card--hero .card__inner{box-shadow:inset 0 0 10px #ffd70033}.card__inner[style*=backgroundImage] .card__name,.card__inner[style*=backgroundImage] .card__type-badge{text-shadow:0 1px 4px #000000f2}.card--face-down .card__inner{background-image:url(/cardbacks/main-cardback.png)!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:cover!important}.card--rune.card--face-down .card__inner{background-image:url(/cardbacks/rune-cardback.webp)!important}.card-back{cursor:default}.card-back .card__inner,.card-back__inner{background:linear-gradient(135deg, var(--p5-bg) 0%, var(--p5-bg-deep) 100%)}.card-back--main .card__inner{background-image:url(/cardbacks/main-cardback.png);background-position:50%;background-repeat:no-repeat;background-size:cover}.card-back--rune .card__inner{background-image:url(/cardbacks/rune-cardback.webp);background-position:50%;background-repeat:no-repeat;background-size:cover}.card-back__pattern{display:none}.card--tiny .card-back__pattern{font-size:16px}.card--tiny .card__type-badge{width:12px;height:12px;font-size:7px;top:2px;left:2px}.card--tiny .card__name{font-size:7px}.card--tiny .card__inner{padding:4px}.card-back__count{background:var(--p5-accent);color:var(--p5-text);clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);padding:2px 6px;font-size:11px;font-weight:900;position:absolute;bottom:8px;right:8px}.card--empowered{border-radius:var(--card-radius);position:relative}.card__empowered-aura{border-radius:calc(var(--card-radius) + 4px);pointer-events:none;z-index:0;--animate-duration:1.8s;border:2px solid #ffd680d1;position:absolute;inset:-4px;box-shadow:0 0 8px 2px #ffc457b8,0 0 18px 5px #ff99206b}.card--empowered>.card__inner{z-index:1}body:not(.is-dragging) .card--empowered:hover .card__empowered-aura{box-shadow:0 0 12px 3px #ffd787eb,0 0 24px 7px #ffa52894}.zone{background:0 0;border-radius:2px;justify-content:center;align-items:center;padding:8px;display:flex}.zone__placeholder{border:2px dashed var(--p5-text-dim);width:80px;height:112px;color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:.5px;border-radius:2px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.zone__placeholder--small{width:60px;height:84px;font-size:10px}.zone__placeholder--tiny{width:40px;height:56px;font-size:8px}.zone__placeholder--compact{width:60px;height:24px;font-size:10px}.zone__placeholder--wide{width:200px;height:84px}.btn--tiny{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-weight:900;transition:background .2s,transform .1s;display:flex}.btn--confirm{background:var(--p5-accent);width:44px;height:44px;color:var(--p5-text);font-size:24px}.btn--confirm:hover{background:var(--p5-accent-hover);transform:scale(1.1)}.btn--confirm:active:not(.btn--disabled){transition:transform 50ms;transform:scale(1.02)translateY(1px);box-shadow:0 1px 3px #00000080}.btn--cancel{background:var(--p5-bg-elevated);width:36px;height:36px;color:var(--p5-text);border:1px solid var(--p5-accent);font-size:18px}.btn--cancel:hover{background:var(--p5-accent);transform:scale(1.1)}.btn--cancel:active:not(.btn--disabled){transition:transform 50ms;transform:scale(1.02)translateY(1px);box-shadow:0 1px 3px #00000080}.btn--disabled{background:var(--p5-bg-elevated);color:var(--p5-text-dim);cursor:not-allowed}.btn--disabled:hover{transform:none}.battlefield-zone{background:var(--p5-bg);border:none;justify-content:flex-start;align-items:center;gap:12px;min-height:128px;padding:8px 16px;transition:background .3s,box-shadow .3s;display:flex;position:relative}.battlefield-zone--opponent{justify-content:flex-end}.battlefield-zone--drag-over{border-color:var(--p5-accent);background:#e8001c14}.battlefield-zone--combat-highlight{animation:1.5s ease-in-out infinite combat-pulse;box-shadow:inset 0 0 0 1px #ef44444d;background:#ef44441a!important}@keyframes combat-pulse{0%,to{background:#ef44441a}50%{background:#ef444433}}.battlefield-zone__units{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:4px;min-height:84px;display:flex;position:relative}.battlefield-zone__units:hover{z-index:1}.battlefield-zone__unit-row{justify-content:center;align-items:center;gap:8px;display:flex}.battlefield-zone__unit-row--enemy{opacity:.85}.card.card--enemy-unit{border:1px solid #dc3c3c8c;border-radius:8px}.battlefield-zone__unit-slot{flex-direction:column;align-items:center;display:flex;position:relative}.battlefield-zone__unit-slot:hover{z-index:500}.battlefield-zone__pending-box{border:3px dashed var(--p5-accent);background:#e8001c14;border-radius:4px;align-items:center;gap:10px;padding:10px 14px;display:flex}.battlefield-zone__pending-cards{opacity:.7;align-items:center;gap:6px;display:flex}.battlefield-zone__deploy-actions{flex-direction:column;gap:8px;display:flex}.battlefield-zone__hint{color:var(--p5-text-dim);border:1px dashed var(--p5-text-dim);text-transform:uppercase;letter-spacing:.5px;border-radius:2px;padding:8px 12px;font-size:11px;font-weight:700}.battlefield-zone__hint--active{color:var(--p5-accent);border-color:var(--p5-accent);background:#e8001c0f}.battlefield-zone__scored{background:var(--p5-accent);color:var(--p5-text);clip-path:polygon(0 0,100% 0,95% 100%,5% 100%);text-transform:uppercase;letter-spacing:.5px;border-radius:0;padding:2px 8px;font-size:11px;font-weight:900;position:absolute;top:4px;right:8px}.battlefield-zone__standby--playable{cursor:pointer;box-shadow:0 0 0 2px var(--p5-accent)}.battlefield-zone__standby--playable:hover{box-shadow:0 0 0 2px var(--p5-accent-hover), 0 0 12px var(--p5-accent-glow)}.battlefield-zone__standby--revealed{box-shadow:0 0 0 2px #4fd1c5,0 0 8px #4fd1c580}.battlefield-zone__standby-area{justify-content:center;gap:6px;min-width:120px;min-height:84px;display:flex}.battlefield-zone__standby-area--opponent{align-items:flex-end}.battlefield-zone__standby-title{color:var(--p5-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.battlefield-zone__standby-cards{flex-wrap:wrap;align-items:center;gap:8px;min-height:84px;display:flex}.battlefield-zone__standby-empty{color:var(--p5-text-dim);border:1px dashed var(--p5-text-dim);text-transform:uppercase;letter-spacing:.5px;border-radius:2px;padding:6px 10px;font-size:11px;font-weight:700}.battlefield-zone__battlefield-wrapper--board-select{cursor:pointer;pointer-events:auto;z-index:190;position:relative}.battlefield-zone__battlefield-wrapper--board-select>.card{box-shadow:0 0 0 3px var(--p5-highlight), 0 0 16px #ffd70099;animation:1.2s ease-in-out infinite board-select-pulse}.battlefield-zone__unit-slot--damage-target{z-index:190;cursor:pointer;pointer-events:auto;position:relative}.battlefield-zone__unit-slot--damage-target>.card{z-index:1;box-shadow:0 0 0 2px var(--p5-accent), 0 0 12px var(--p5-accent-glow);position:relative}.battlefield-zone__unit-slot--damage-assigned{z-index:190;cursor:pointer;pointer-events:auto;position:relative}.battlefield-zone__unit-slot--damage-assigned>.card{z-index:1;opacity:.6;position:relative;box-shadow:0 0 0 2px #e8001c80}.battlefield-zone__unit-slot--damage-lethal>.card{opacity:1}.battlefield-zone__unit-slot--damage-lethal>.card:after{content:"✕";color:var(--p5-text);border-radius:inherit;pointer-events:none;background:#e8001c80;justify-content:center;align-items:center;font-size:32px;font-weight:900;display:flex;position:absolute;inset:0}.battlefield-zone__unit-slot--resolution-target{z-index:190;position:relative}.battlefield-zone__unit-slot--resolution-target>.card{z-index:1;box-shadow:0 0 0 2px var(--p5-accent,#e8001c), 0 0 12px #e8001c80;position:relative}.battlefield-zone__unit-slot--resolution-target:hover{z-index:500}.battlefield-zone__damage-bar{border:2px solid var(--p5-accent);color:var(--p5-text-muted);text-transform:uppercase;letter-spacing:.3px;background:#e8001c14;border-radius:2px;align-items:center;gap:8px;padding:4px 10px;font-size:12px;font-weight:700;display:flex}.battlefield-zone__damage-label strong{color:var(--p5-accent)}.base-zone{background:var(--p5-bg-elevated);border:none;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:12px 16px;display:grid}.base-zone--opponent{grid-template-columns:auto 1fr auto auto}.base-zone__hero-slot{justify-content:center;align-items:center;display:flex}.base-zone__legend{flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.base-zone__legend-stats{align-items:center;gap:6px;display:flex}.base-zone__legend-stat{background:#00000073;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:4px;padding:3px 8px 3px 6px;line-height:1;display:flex}.base-zone__legend-stat-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:14px;height:14px}.base-zone__legend-stat-icon--filled{fill:currentColor;stroke:none}.base-zone__legend-stat-value{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:13px;font-weight:800}.base-zone__legend-stat--score{color:var(--p5-accent)}.base-zone__legend-stat--exp{color:var(--p5-highlight)}.base-zone__area{background:var(--p5-bg-deep);border:2px dashed #0000;border-radius:2px;flex:1;justify-content:space-between;align-items:center;min-height:120px;padding:8px;transition:background .2s,border-color .2s;display:flex}.base-zone__area--drag-over{border-color:var(--p5-accent);background:#e8001c1a}.base-zone__units{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.base-zone__units--overlapping{flex-wrap:nowrap;gap:0}.base-zone__units--overlapping .base-zone__card-slot{margin-left:var(--unit-spacing,0px);z-index:1;transition:transform .15s,margin .2s}.base-zone__units--overlapping .base-zone__card-slot:first-child{margin-left:0}.base-zone__units--overlapping .base-zone__card-slot:hover{z-index:20;margin-left:6px;margin-right:6px}.base-zone__equipments{flex-flow:row-reverse wrap-reverse;align-items:center;gap:8px;display:flex}.base-zone__card-slot{transition:transform .15s;position:relative}.base-zone__card-slot:hover{z-index:500}.base-zone__card-slot--drop-target{transform:scale(1.05)}.base-zone__card-slot--drop-target:before{content:"";border:2px solid var(--p5-accent);z-index:1;pointer-events:none;border-radius:2px;position:absolute;inset:-4px}.base-zone__card-slot--reaction{box-shadow:0 0 0 2px var(--p5-highlight);animation:1.5s ease-in-out infinite base-zone__reaction-pulse}@keyframes base-zone__reaction-pulse{0%,to{box-shadow:0 0 0 2px var(--p5-highlight)}50%{box-shadow:0 0 0 3px var(--p5-highlight), 0 0 12px #ffd70066}}.base-zone__card-slot--board-select,.battlefield-zone__unit-slot--board-select{z-index:190;cursor:pointer;pointer-events:auto;position:relative}.base-zone__card-slot--board-select>.card,.battlefield-zone__unit-slot--board-select>.card{z-index:1;position:relative}.base-zone__card-slot--board-selected>.card,.battlefield-zone__unit-slot--board-selected>.card{box-shadow:0 0 0 3px var(--p5-accent,#e8001c), 0 0 16px #e8001c99;pointer-events:none}.base-zone__card-slot--board-select.base-zone__card-slot--board-selected>.card,.battlefield-zone__unit-slot--board-select.battlefield-zone__unit-slot--board-selected>.card{pointer-events:auto}.base-zone__card-slot--board-selected:after,.battlefield-zone__unit-slot--board-selected:after{content:"已选择";background:var(--p5-accent,#e8001c);color:var(--p5-paper,#f5efe2);letter-spacing:1px;border:2px solid var(--p5-paper,#f5efe2);white-space:nowrap;transform-origin:50%;z-index:2;pointer-events:none;padding:2px 8px;font-size:11px;font-weight:900;animation:.35s cubic-bezier(.2,.84,.3,1.4) forwards board-select-label-in;position:absolute;top:-10px;right:-8px;transform:scale(0)rotate(-12deg);box-shadow:2px 2px #0c0a08e6}@keyframes board-select-label-in{to{transform:scale(1)rotate(-6deg)}}.base-zone__card-slot--board-select>.card,.battlefield-zone__unit-slot--board-select>.card{box-shadow:0 0 0 3px var(--p5-highlight), 0 0 16px #ffd70099;animation:1.2s ease-in-out infinite board-select-pulse}.base-zone__card-slot--board-select:hover,.battlefield-zone__unit-slot--board-select:hover{z-index:190}.base-zone__card-slot--board-select>.card:hover,.battlefield-zone__unit-slot--board-select>.card:hover{z-index:1!important}@keyframes board-select-pulse{0%,to{box-shadow:0 0 0 3px var(--p5-highlight), 0 0 16px #ffd70099}50%{box-shadow:0 0 0 4px var(--p5-highlight), 0 0 24px #ffd700cc}}.base-zone--place-select{cursor:pointer;outline:3px solid var(--p5-highlight);outline-offset:-3px;animation:1.2s ease-in-out infinite board-select-pulse;box-shadow:inset 0 0 16px #ffd7004d}.base-zone__card-slot--dimmed,.battlefield-zone__unit-slot--dimmed{opacity:.35;pointer-events:none}.base-zone__card-with-actions{display:inline-block;position:relative}.base-zone__card-actions{flex-direction:column;gap:2px;display:flex;position:absolute;top:2px;right:-20px}.base-zone__empty-hint{color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:.5px;padding:8px;font-size:13px;font-weight:700}.base-zone__deck{justify-content:center;align-items:center;display:flex}.rune-zone__wrapper{position:relative}.rune-zone{background:var(--p5-bg);border:none;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:8px 16px;display:grid;position:relative}.rune-zone--collapsed{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;height:32px;padding:0 12px;display:flex}.rune-zone--collapsed:hover{background:var(--p5-bg-elevated)}.rune-zone__collapsed-content{align-items:center;gap:12px;width:100%;display:flex}.rune-zone__collapsed-label{color:var(--p5-text-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:1px;align-items:center;gap:6px;font-size:.75rem;font-weight:800;display:flex}.rune-zone__deck-badge{background:var(--p5-text);min-width:18px;height:18px;color:var(--p5-bg-deep);border-radius:2px;justify-content:center;align-items:center;padding:0 4px;font-size:.7rem;font-weight:900;line-height:1;display:inline-flex}.rune-zone__collapsed-stats{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rune-zone__collapsed-stat{color:var(--p5-text-dim);white-space:nowrap;font-size:.75rem;font-weight:700}.rune-zone__mini-runes{align-items:center;gap:3px;display:flex}.mini-rune{border:1px solid var(--p5-text-dim);border-radius:2px;width:14px;height:18px}.mini-rune--tapped{width:18px;height:14px}.mini-rune--flipped{background:#64646466!important;border-color:#8c8c8c66!important}.mini-rune--used{opacity:.5}.mini-rune--exhausted{opacity:.3}.mini-rune--red{background:#e53e3e80;border-color:#e53e3e99}.mini-rune--green{background:#48bb7880;border-color:#48bb7899}.mini-rune--blue{background:#4299e180;border-color:#4299e199}.mini-rune--orange{background:#ed893680;border-color:#ed893699}.mini-rune--purple{background:#9f7aea80;border-color:#9f7aea99}.mini-rune--yellow{background:#ecc94b80;border-color:#ecc94b99}.mini-rune--universal{background:linear-gradient(135deg,#e53e3e80,#4299e180,#9f7aea80);border-color:#b482dc99}.rune-zone__collapsed-pool{align-items:center;gap:4px;margin-left:4px;display:flex}.rune-zone__collapsed-pool .rune-pool__item{padding:1px 5px;font-size:11px}.rune-zone__collapsed-pool .rune-pool__count{font-size:11px}.rune-zone__collapsed-pool .rune-pool__label{font-size:9px}.rune-zone__collapsed-toggle{color:var(--p5-text-dim);margin-left:auto;font-size:.7rem;font-weight:700}.rune-zone--panel{background:var(--p5-bg-deep);border:2px solid var(--p5-accent);transform-origin:top;border-top:none;transition:opacity .15s,transform .15s;position:absolute;top:100%;left:0;right:0;box-shadow:0 4px 16px #000000b3}.rune-zone--panel-hidden{z-index:-1;opacity:0;pointer-events:none;transform:scaleY(0)}.rune-zone--panel-visible{z-index:15;opacity:1;pointer-events:auto;transform:scaleY(1)}.rune-zone--opponent{grid-template-columns:auto 1fr auto}.rune-zone--opponent .rune-zone__active{justify-content:flex-end}.rune-zone__deck{justify-content:center;align-items:center;display:flex}.card--battlefield{transform:rotate(-90deg)}.rune-zone__active{background:var(--p5-bg-deep);border-radius:2px;justify-content:flex-start;align-items:center;min-width:200px;min-height:92px;padding:4px;display:flex}.rune-zone__cards-container{align-items:center;gap:8px;width:100%;display:flex}.rune-zone__cards{flex-wrap:wrap;gap:8px;padding:4px 20px;display:flex}.rune-zone__cards--available{flex:1;min-width:0}.rune-zone__cards--exhausted{opacity:.6;flex-shrink:0}.rune-zone__divider{background:linear-gradient(to bottom, transparent, var(--p5-accent) 20%, var(--p5-accent) 80%, transparent);flex-shrink:0;width:2px;height:60px}.rune-zone__empty-hint{color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:.5px;padding:4px 8px;font-size:11px;font-weight:700}.rune-card-wrapper{cursor:grab;transition:transform .15s,opacity .15s}.rune-card-wrapper:active{cursor:grabbing}.rune-card-wrapper--dragging{opacity:.5;transform:scale(.95)}.rune-card-wrapper--drop-target{transform:translate(8px)}.rune-card-wrapper--drop-target:before{content:"";background:var(--p5-accent);border-radius:0;width:3px;position:absolute;top:0;bottom:0;left:-4px}.rune-card{cursor:pointer;transition:transform .4s,box-shadow .2s}.rune-card-flip{--animate-duration:.4s;display:inline-block;position:relative}.rune-card-flip--small{width:60px;height:84px}.rune-card-tapped{transform:rotate(90deg)}.rune-card-tapped:hover{transform:rotate(90deg)translateY(-4px)}.rune-card--just-acted{animation:.42s cubic-bezier(.2,.9,.3,1.4) rune-card-act-bounce}.rune-card-tapped.rune-card--just-acted{animation:.42s cubic-bezier(.2,.9,.3,1.4) rune-card-act-bounce-tapped}@keyframes rune-card-act-bounce{0%{transform:scale(1)}35%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes rune-card-act-bounce-tapped{0%{transform:rotate(90deg)scale(1)}35%{transform:rotate(90deg)scale(1.08)}to{transform:rotate(90deg)scale(1)}}.rune-card__wash{z-index:3;pointer-events:none;opacity:0;border-radius:4px;animation:.36s ease-out forwards rune-card-wash;position:absolute;inset:0}.rune-card__wash--mana{background:radial-gradient(circle,#ffffffd9,#fff0 70%)}.rune-card__wash--energy{background:radial-gradient(circle,#be8cffe6,#783cdc00 70%)}@keyframes rune-card-wash{0%{opacity:0}25%{opacity:.6}to{opacity:0}}.rune-card__spark{z-index:6;pointer-events:none;letter-spacing:.4px;white-space:nowrap;text-shadow:1px 1px #000,0 0 6px;transform-origin:50%;font-size:11px;font-weight:900;animation:.5s cubic-bezier(.2,.84,.3,1.4) forwards rune-card-spark;position:absolute;top:50%;left:50%}.rune-card__spark--mana{color:#f3c41a}.rune-card__spark--energy{color:#c79bff}@keyframes rune-card-spark{0%{opacity:0;transform:translate(-50%,-30%)scale(.5)}25%{opacity:1;transform:translate(-50%,-90%)scale(1.2)}to{opacity:0;transform:translate(-50%,-200%)scale(.95)}}@media (prefers-reduced-motion:reduce){.rune-card--just-acted,.rune-card-tapped.rune-card--just-acted{animation:none}.rune-card__wash{animation-duration:.2s}.rune-card__spark{animation-duration:.3s}}.rune-card-flip .card--tapped,.rune-card-flip .card--tapped:hover,.rune-card-flip .card--tapped.card--flipped,.rune-card-flip .card--tapped.card--flipped:hover{transform:none}.rune-card-face{pointer-events:none;position:absolute;inset:0}.rune-card-face--back{z-index:1}.rune-card:hover{box-shadow:0 0 8px var(--p5-accent-glow)}.rune-card--selected{box-shadow:0 0 0 3px var(--p5-accent,#e8001c), 0 0 16px #e8001c99}.rune-card--exhausted{cursor:not-allowed;filter:grayscale(.5)brightness(.7)}.rune-card--exhausted:hover{box-shadow:none}.rune-card-wrapper--exhausted{cursor:not-allowed}.rune-zone__pool{justify-content:center;align-items:center;display:flex}.rune-pool{background:var(--p5-bg-deep);border:2px solid var(--p5-accent);border-radius:2px;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;display:flex}.rune-pool__title{color:var(--p5-text-muted);text-transform:uppercase;letter-spacing:1px;font-size:10px;font-weight:800}.rune-pool__resources{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.rune-pool__item{border-radius:2px;align-items:center;gap:2px;padding:2px 6px;font-size:12px;font-weight:900;display:flex}.rune-pool__item--generic{color:#fff;background:linear-gradient(135deg,#718096 0%,#4a5568 100%)}.rune-pool__item--red{color:#fff;background:linear-gradient(135deg,#e53e3e 0%,#c53030 100%)}.rune-pool__item--green{color:#fff;background:linear-gradient(135deg,#38a169 0%,#276749 100%)}.rune-pool__item--orange{color:#fff;background:linear-gradient(135deg,#ed8936 0%,#dd6b20 100%)}.rune-pool__item--yellow{color:#1a202c;background:linear-gradient(135deg,#ecc94b 0%,#d69e2e 100%)}.rune-pool__item--blue{color:#fff;background:linear-gradient(135deg,#4299e1 0%,#2b6cb0 100%)}.rune-pool__item--purple{color:#fff;background:linear-gradient(135deg,#805ad5 0%,#6b46c1 100%)}.rune-pool__item--universal{color:#fff;background:linear-gradient(135deg,#e53e3e 0%,#ed8936 20%,#ecc94b 40%,#38a169 60%,#4299e1 80%,#805ad5 100%)}.rune-pool__count{font-size:14px}.rune-pool__label{opacity:.8;font-size:10px}.rune-zone__graveyard{justify-content:center;align-items:center;display:flex}.rune-zone__graveyard--clickable{cursor:pointer;border-radius:2px;transition:background .2s}.rune-zone__graveyard--clickable:hover{background:#e8001c14}.graveyard-stack{position:relative}.graveyard-top{opacity:.8}.graveyard-count{background:var(--p5-bg-deep);color:var(--p5-text);border:1px solid var(--p5-accent);border-radius:2px;padding:2px 6px;font-size:11px;font-weight:900;position:absolute;bottom:-4px;right:-4px}.rune-zone--opponent{padding:4px 12px}.rune-zone--opponent .rune-zone__active{min-width:80px;min-height:32px;padding:4px}.rune-zone--opponent .rune-zone__cards{gap:4px}.graveyard-count--compact{padding:1px 4px;font-size:9px;bottom:-2px;right:-2px}.rune-zone--opponent-summary{grid-template-columns:unset;background:var(--p5-bg);border-color:var(--p5-accent);border-left:3px solid var(--p5-accent);flex-wrap:wrap;align-items:center;gap:0;min-height:34px;padding:5px 12px 5px 0;display:flex}.hand-zone{background:var(--p5-bg);border:none;min-height:100px;padding:6px 16px}.hand-zone__cards{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.hand-zone--overlapping .hand-zone__cards{flex-wrap:nowrap;gap:0}.hand-zone--overlapping .hand-zone__card-wrapper{margin-left:var(--hand-spacing,0px);z-index:1;transition:margin .2s}.hand-zone--overlapping .hand-zone__card-wrapper:first-child{margin-left:0}.hand-zone--overlapping .hand-zone__card-wrapper:hover{z-index:20;margin-left:6px;margin-right:6px}.hand-zone__card{transition:transform .2s,margin .2s}.hand-zone__card:hover{z-index:10;transform:translateY(-12px)scale(1.05)}.hand-zone__card--reaction{box-shadow:0 0 0 2px var(--p5-highlight);animation:1.5s ease-in-out infinite hand-zone__card--reaction-pulse}@keyframes hand-zone__card--reaction-pulse{0%,to{box-shadow:0 0 0 2px var(--p5-highlight)}50%{box-shadow:0 0 0 3px var(--p5-highlight), 0 0 12px #ffd70066}}.hand-zone__card--disabled{opacity:.35;pointer-events:none;filter:grayscale(.6)}.hand-zone--opponent .card:hover{transform:none}.hand-zone__compact{align-items:center;gap:8px;display:flex}.hand-zone__count{color:var(--p5-text-muted);font-size:14px;font-weight:900}.hand-zone__empty{color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.hand-zone__hint{color:var(--p5-text-dim);text-align:center;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:11px;font-weight:700}.hand-zone__card[draggable=true]{cursor:grab}.hand-zone__card[draggable=true]:active{cursor:grabbing}.opponent-summary__header{letter-spacing:1px;color:var(--p5-text);background:var(--p5-accent);clip-path:polygon(0 0,100% 0,92% 100%,0% 100%);box-shadow:2px 0 8px var(--p5-accent-glow);text-transform:uppercase;border-radius:0;flex-shrink:0;align-self:stretch;align-items:center;margin-right:10px;padding:2px 10px;font-size:11px;font-weight:900;display:flex}.opponent-summary__sep{background:var(--p5-text-dim);flex-shrink:0;width:1px;height:16px;margin:0 10px}.opponent-summary__item{color:var(--p5-text-muted);white-space:nowrap;align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex}.opponent-summary__stat-label{letter-spacing:.5px;text-transform:uppercase;border-radius:2px;padding:1px 5px;font-size:10px;font-weight:800}.opponent-summary__item--graveyard .opponent-summary__stat-label{color:#a0aec0e6;background:#7180964d;border:1px solid #7180964d}.opponent-summary__item--hand .opponent-summary__stat-label{color:#90cdf4e6;background:#4299e133;border:1px solid #4299e140}.opponent-summary__item--deck .opponent-summary__stat-label{background:var(--p5-text);color:var(--p5-bg-deep);border:1px solid var(--p5-text-dim)}.opponent-summary__item--clickable{cursor:pointer;border-radius:2px;margin:-2px -5px;padding:2px 5px;transition:background .15s,color .15s}.opponent-summary__item--clickable:hover{color:var(--p5-text);background:#e8001c1f}.opponent-summary__item--clickable:hover .opponent-summary__stat-label{color:var(--p5-text);border-color:var(--p5-accent);background:#e8001c4d}.opponent-summary__count{color:var(--p5-text);text-align:center;min-width:12px;font-size:13px;font-weight:900}.opponent-summary__resources{align-items:center;gap:5px;display:flex}.opponent-summary__label{color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:.5px;margin-right:2px;font-size:10px;font-weight:700}.opponent-summary__res{color:#fff;letter-spacing:.3px;border-radius:2px;padding:1px 6px;font-size:11px;font-weight:900}.opponent-summary__res--red{background:linear-gradient(135deg,#e53e3e 0%,#c53030 100%)}.opponent-summary__res--green{background:linear-gradient(135deg,#38a169 0%,#276749 100%)}.opponent-summary__res--orange{background:linear-gradient(135deg,#ed8936 0%,#dd6b20 100%)}.opponent-summary__res--yellow{color:#1a202c;background:linear-gradient(135deg,#ecc94b 0%,#d69e2e 100%)}.opponent-summary__res--blue{background:linear-gradient(135deg,#4299e1 0%,#2b6cb0 100%)}.opponent-summary__res--purple{background:linear-gradient(135deg,#805ad5 0%,#6b46c1 100%)}.opponent-summary__res--generic{background:linear-gradient(135deg,#718096 0%,#4a5568 100%)}.opponent-summary__empty{color:var(--p5-text-dim);font-size:10px;font-style:italic}.opponent-summary__resources .rune-zone__pool{margin:0}.opponent-summary__resources .rune-pool{background:0 0;border:none;flex-direction:row;align-items:center;gap:2px;padding:2px 6px}.opponent-summary__resources .rune-pool__resources{gap:4px}.opponent-summary__resources .rune-pool__resources>div:first-child{color:var(--p5-text-dim);margin-right:2px;font-size:10px}.opponent-summary__resources .rune-pool__item{padding:1px 5px;font-size:10px}.opponent-summary__resources .rune-pool__count{font-size:11px}.opponent-summary__resources .rune-pool__label{font-size:9px}.selection-drawer{z-index:1000;background:var(--rb-ink-2);border-top:2px solid var(--rb-red);background-image:repeating-linear-gradient(45deg,#0000,#0000 56px,#e8281c0b 56px 57px);transition:transform .25s;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -6px 28px #000000a8}.selection-drawer--collapsed{transform:translateY(calc(100% - 48px))}.selection-drawer--centered{z-index:1000;border:2px solid var(--rb-red);border-radius:10px;width:min(880px,92vw);max-height:86vh;position:fixed;inset:50% auto auto 50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 12px 48px #000000c7}.selection-drawer--centered:before{content:"";z-index:-1;background:#0000008c;position:fixed;inset:0}.selection-drawer--centered .selection-drawer__header{border-radius:8px 8px 0 0}.selection-drawer--centered .selection-drawer__toggle{display:none}.selection-drawer--centered .selection-drawer__cards{min-height:160px;padding:24px}.selection-drawer__header{background:var(--rb-red);justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding:6px 12px;display:flex}.selection-drawer__title{color:var(--rb-paper);text-transform:uppercase;letter-spacing:1px;font-size:.85rem;font-weight:900}.selection-drawer__count{letter-spacing:.5px;color:#f5efe2c7;font-size:.8rem;font-weight:700}.selection-drawer__body{align-items:stretch;display:flex}.selection-drawer__actions{border-left:1.5px solid #f5efe21f;flex-direction:column;flex-shrink:0;justify-content:center;gap:12px;padding:16px 20px;display:flex}.selection-drawer__toggle{color:var(--rb-paper);cursor:pointer;font-family:var(--rb-font-mono);background:0 0;border:1.5px solid #f5efe280;padding:3px 9px;font-size:.7rem;line-height:1;transition:all .15s}.selection-drawer__toggle:hover{background:#f5efe22e}.selection-drawer__confirm{background:var(--rb-red);color:var(--rb-paper);cursor:pointer;font-family:var(--rb-font-display);letter-spacing:.12em;text-transform:uppercase;min-width:104px;box-shadow:3px 3px 0 var(--rb-ink);clip-path:polygon(4% 0%,100% 0%,96% 100%,0% 100%);border:none;padding:12px 28px;font-size:.9rem;line-height:1;transition:all .15s}.selection-drawer__confirm:hover:not(:disabled){background:var(--rb-red-hot);box-shadow:4px 4px 0 var(--rb-ink);transform:translate(-1px,-1px)}.selection-drawer__confirm:active:not(:disabled){box-shadow:1px 1px 0 var(--rb-ink);transform:translate(2px,2px)}.selection-drawer__confirm:disabled{opacity:.32;cursor:not-allowed;box-shadow:2px 2px 0 var(--rb-ink)}.selection-drawer__cancel{color:var(--rb-paper);cursor:pointer;font-family:var(--rb-font-display);letter-spacing:.12em;text-transform:uppercase;clip-path:polygon(4% 0%,100% 0%,96% 100%,0% 100%);background:0 0;border:1.5px solid #f5efe24d;min-width:104px;padding:12px 28px;font-size:.9rem;line-height:1;transition:all .15s}.selection-drawer__cancel:hover{border-color:var(--rb-red);color:var(--rb-red)}.selection-drawer__cancel:active{transform:translate(1px,1px)scale(.97)}.selection-drawer__cards{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:16px;min-width:0;min-height:130px;padding:18px 20px;display:flex}.selection-drawer__card{cursor:grab;transition:transform .2s,box-shadow .2s}.selection-drawer__card:hover{z-index:10;transform:translateY(-12px)scale(1.05);box-shadow:0 10px 20px #00000080}.selection-drawer__card:active{cursor:grabbing}.selection-drawer__card--disabled{opacity:.4;cursor:default;pointer-events:none}.selection-drawer__empty{color:#f5efe266;font-family:var(--rb-font-mono);letter-spacing:.12em;justify-content:center;align-items:center;width:100%;font-size:.8rem;display:flex}.selection-drawer__card--checkable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.selection-drawer__card--checkable:hover{transform:translateY(-6px);box-shadow:0 8px 18px #00000080}.selection-drawer__card--checkable:active{cursor:pointer}.selection-drawer__card--checked{box-shadow:0 0 0 2px var(--rb-red), 0 10px 0 -4px var(--rb-red), 0 14px 22px #e8281c66;transform:translateY(-18px)}.selection-drawer__check-overlay{background:var(--rb-red);color:var(--rb-paper);font-family:var(--rb-font-mono);letter-spacing:.12em;border:2px solid var(--rb-paper);white-space:nowrap;transform-origin:50%;box-shadow:2px 2px 0 var(--rb-ink);z-index:2;pointer-events:none;opacity:0;padding:3px 10px;font-size:11px;font-weight:500;position:absolute;top:-12px;right:-10px;transform:scale(0)rotate(-12deg)}.selection-drawer__check-overlay--checked{opacity:1;animation:.35s cubic-bezier(.2,.84,.3,1.4) forwards selection-label-in}@keyframes selection-label-in{to{transform:scale(1)rotate(-6deg)}}.selection-drawer__card--reorderable{cursor:grab}.selection-drawer__card--reorderable:active{cursor:grabbing}.selection-drawer__card--drop-target{outline:2px dashed var(--p5-accent);outline-offset:4px}.selection-drawer__reorder-handle{width:20px;height:20px;color:var(--p5-text-dim);pointer-events:none;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;bottom:4px;right:4px}@media (height<=820px){.hand-zone{min-height:84px;padding:4px 16px}.base-zone__area{min-height:96px}}@media (height<=700px){.hand-zone{min-height:70px;padding:4px 16px}.base-zone__area{min-height:78px}}.player-area{flex-direction:column;flex-shrink:0;gap:4px;width:100%;display:flex}.player-area--opponent{gap:2px}.player-area--self{flex-shrink:0}.player-area__hand-wrapper{position:relative}.player-area--self{min-height:0}.player-area--self .base-zone__area{min-height:160px}@media (height<=820px){.player-area--self .base-zone__area{min-height:120px}}@media (height<=700px){.player-area--self .base-zone__area{min-height:96px}}.player-area__hand-row{background:var(--p5-bg);align-items:stretch;padding-right:80px;display:flex}.player-area__hand-row .hand-zone{flex:1;min-width:0}.player-area__graveyard{flex-direction:column;justify-content:center;align-items:center;min-width:72px;padding:8px;display:flex;position:relative}.player-area__graveyard--clickable{cursor:pointer}.player-area__graveyard--clickable:hover{background:#e8001c14}.player-area--opponent .hand-zone{min-height:auto;padding:4px 12px}.player-area--opponent .rune-zone{padding:4px 12px}.player-area--opponent .rune-zone__active{min-height:32px}.player-area--opponent .base-zone{padding:6px 12px}.player-area--opponent .base-zone__area{min-height:120px}.spell-targeting-overlay{z-index:150;pointer-events:none;background:#0006;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.spell-targeting-overlay__card{pointer-events:none}.spell-targeting-overlay__hint{background:var(--p5-bg-deep);color:var(--p5-highlight);text-transform:uppercase;letter-spacing:1px;text-align:center;border:2px solid var(--p5-accent);clip-path:polygon(3% 0%,100% 0%,97% 100%,0% 100%);max-width:260px;margin-top:12px;padding:8px 20px;font-size:14px;font-weight:800}.spell-targeting-overlay__actions{pointer-events:auto;gap:8px;margin-top:10px;display:flex}.spell-targeting-overlay__line{z-index:210;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.target-selection-overlay{z-index:1000;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.target-selection-overlay__content{background:var(--p5-bg);border:2px solid var(--p5-accent);clip-path:polygon(1% 0%,100% 0%,99% 100%,0% 100%);max-width:90vw;max-height:80vh;padding:1.5rem;overflow-y:auto}.target-selection-overlay__title{text-transform:uppercase;letter-spacing:1px;color:var(--p5-text);margin:0 0 .5rem;font-size:1.1rem;font-weight:900}.target-selection-overlay__hint{color:var(--p5-text-muted);margin:0 0 1rem;font-size:.9rem}.target-selection-overlay__targets{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.target-selection-overlay__target{cursor:pointer;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;transition:background .12s,transform .2s;display:flex;position:relative}.target-selection-overlay__target:hover{background:var(--p5-bg-elevated);transform:translateY(-4px)}.target-selection-overlay__target--selected{box-shadow:0 0 0 3px var(--p5-accent,#e8001c), 0 0 16px #e8001c99;background:#e8001c26;transform:translateY(-14px)}.target-selection-overlay__target--selected:after{content:"已选择";background:var(--p5-accent,#e8001c);color:var(--p5-paper,#f5efe2);letter-spacing:1px;border:2px solid var(--p5-paper,#f5efe2);white-space:nowrap;transform-origin:50%;z-index:2;pointer-events:none;padding:2px 8px;font-size:11px;font-weight:900;animation:.35s cubic-bezier(.2,.84,.3,1.4) forwards target-selection-badge;position:absolute;top:-10px;right:-8px;transform:scale(0)rotate(-12deg);box-shadow:2px 2px #0c0a08e6}.target-selection-overlay__target--selected:hover{background:#e8001c40}@keyframes target-selection-badge{to{transform:scale(1)rotate(-6deg)}}.target-selection-overlay__target-name{font-size:.85rem;font-weight:700}.target-selection-overlay__actions{gap:.5rem;margin-top:1rem;display:flex}.target-selection-overlay__rune-content{flex-direction:column;gap:1rem;margin-bottom:1rem;display:flex}.target-selection-overlay__targets--rune{padding:0;display:block}.game-prompt-overlay{z-index:999;background:#000c repeating-linear-gradient(45deg,#0000,#0000 60px,#e8001c08 60px 61px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-prompt-modal{background:var(--p5-bg);border:2px solid var(--p5-accent);width:60%;box-shadow:0 8px 32px #0009, 0 0 20px var(--p5-accent-glow);clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);min-width:280px;padding:24px}.game-prompt-modal__title{color:var(--p5-text);text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid var(--p5-accent);margin:0 0 20px;padding-bottom:10px;font-size:15px;font-weight:800;line-height:1.5}.game-prompt-modal__body{color:var(--p5-text-muted);margin-bottom:16px}.game-prompt-modal__buttons{justify-content:center;gap:12px;display:flex}.game-prompt-modal__buttons .btn{min-width:80px}.game-prompt-modal__options{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.game-prompt-modal__option-card{background:var(--p5-bg-elevated,#1a1a2e);border:2px solid var(--p5-border,#3a3a4a);cursor:pointer;-webkit-user-select:none;user-select:none;clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);padding:12px 20px;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative}.game-prompt-modal__option-card:hover{box-shadow:0 0 8px var(--p5-accent-glow,#e8001c4d);border-color:var(--p5-accent,#e8001c);transform:translateY(-4px)}.game-prompt-modal__option-card--selected{box-shadow:0 0 0 3px var(--p5-accent,#e8001c), 0 0 16px #e8001c99;border-color:var(--p5-accent,#e8001c);transform:translateY(-8px)}.game-prompt-modal__option-card--disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.game-prompt-modal__option-text{color:var(--p5-text,#f5efe2);letter-spacing:.5px;font-size:13px;font-weight:700}.game-prompt-modal__option-badge{background:var(--p5-accent,#e8001c);color:var(--p5-paper,#f5efe2);letter-spacing:1px;border:2px solid var(--p5-paper,#f5efe2);white-space:nowrap;transform-origin:50%;z-index:2;pointer-events:none;padding:2px 8px;font-size:11px;font-weight:900;animation:.35s cubic-bezier(.2,.84,.3,1.4) forwards option-badge-in;position:absolute;top:-10px;right:-8px;transform:scale(0)rotate(-12deg);box-shadow:2px 2px #0c0a08e6}@keyframes option-badge-in{to{transform:scale(1)rotate(-6deg)}}.game-prompt-modal__tag-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;max-height:50vh;padding:4px;display:grid;overflow-y:auto}.game-prompt-modal__tag.btn{white-space:nowrap;text-overflow:ellipsis;width:100%;min-width:0;padding:8px 10px;font-size:12px;overflow:hidden}.game-prompt-modal__spell-template-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.game-prompt-modal__spell-template.btn{text-align:left;white-space:normal;flex-direction:column;align-items:flex-start;gap:3px;display:flex}.game-prompt-modal__spell-template small{color:var(--p5-text-muted,#bbb);font-size:10px;font-weight:600}.trigger-ordering-modal{min-width:360px;max-width:480px}.trigger-ordering-modal__hint{color:var(--p5-text-muted);margin:0 0 12px;font-size:12px;font-weight:600}.trigger-ordering-modal__list{flex-direction:column;gap:4px;margin:0 0 16px;padding:0;list-style:none;display:flex}.trigger-ordering-modal__item{background:var(--p5-bg-elevated);border:2px solid var(--p5-bg-elevated);cursor:grab;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 12px;transition:background .12s,border-color .12s;display:flex}.trigger-ordering-modal__item:hover{border-color:var(--p5-accent);background:#333}.trigger-ordering-modal__item--dragging{opacity:.4}.trigger-ordering-modal__item--drop-target{border-color:var(--p5-accent);background:#e8001c1a}.trigger-ordering-modal__index{width:22px;height:22px;color:var(--p5-accent);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);background:#e8001c1a;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:900;display:flex}.trigger-ordering-modal__info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.trigger-ordering-modal__card-name{color:var(--p5-text);font-size:13px;font-weight:700}.trigger-ordering-modal__ability-name{color:var(--p5-text-muted);font-size:11px}.trigger-ordering-modal__handle{color:var(--p5-text-dim);flex-shrink:0;font-size:16px}.mulligan-overlay{z-index:1000;background:#000000d9 repeating-linear-gradient(45deg,#0000,#0000 60px,#e8001c0a 60px 61px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mulligan-panel{background:var(--p5-bg);border:2px solid var(--p5-accent);min-width:720px;max-width:90vw;box-shadow:0 8px 32px #000000b3, 0 0 24px var(--p5-accent-glow);clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);padding:32px 40px}.mulligan-panel__title{color:var(--p5-text);text-transform:uppercase;letter-spacing:2px;border-bottom:2px solid var(--p5-accent);margin:0 0 12px;padding-bottom:12px;font-size:20px;font-weight:800}.mulligan-panel__hint{color:var(--p5-text-muted);margin:0 0 20px;font-size:14px}.mulligan-panel__hand{flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:24px;display:flex}.mulligan-panel__card{cursor:pointer;transition:transform .15s;position:relative}.mulligan-panel__card:hover{transform:translateY(-4px)}.mulligan-panel__card--selected{transform:translateY(-22px)}.mulligan-panel__card--selected:after{content:"";border:2px solid var(--p5-accent);box-shadow:0 10px 0 -4px var(--p5-accent);pointer-events:none;position:absolute;inset:-2px}.mulligan-panel__card-badge{background:var(--p5-accent);color:#fff;text-transform:uppercase;letter-spacing:1px;white-space:nowrap;z-index:10;border:2px solid #fff;padding:4px 12px;font-size:11px;font-weight:700;animation:.3s cubic-bezier(.2,.84,.3,1.4) forwards mulligan-selected-badge;position:absolute;top:-16px;right:-16px;transform:scale(0)rotate(8deg);box-shadow:2px 2px #000000e6}@keyframes mulligan-selected-badge{to{transform:scale(1)rotate(6deg)}}.mulligan-panel__actions{justify-content:center;display:flex}.mulligan-panel__actions .btn{min-width:160px;padding:12px 32px;font-size:14px}.mulligan-panel__waiting{text-align:center;color:var(--p5-text-muted);letter-spacing:1px;margin:24px 0;font-size:16px}.sideboard-overlay{z-index:1000;background:#000000d9 repeating-linear-gradient(45deg,#0000,#0000 60px,#e8001c0a 60px 61px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sideboard-panel{background:var(--p5-bg);border:2px solid var(--p5-accent);min-width:1040px;max-width:94vw;max-height:88vh;box-shadow:0 8px 32px #000000b3, 0 0 24px var(--p5-accent-glow);clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);padding:40px 56px;overflow-y:auto}.sideboard-panel__title{color:var(--p5-text);text-transform:uppercase;letter-spacing:2px;border-bottom:2px solid var(--p5-accent);align-items:center;gap:12px;margin:0 0 12px;padding-bottom:12px;font-size:20px;font-weight:800;display:flex}.sideboard-panel__turn{letter-spacing:1px;border:2px solid;padding:3px 12px;font-size:13px;font-weight:900}.sideboard-panel__turn--first{color:#000;background:var(--p5-highlight,#f5c518);border-color:var(--p5-highlight,#f5c518)}.sideboard-panel__turn--second{color:var(--p5-text-muted);border-color:var(--p5-text-muted);background:0 0}.sideboard-panel__hint{color:var(--p5-text-muted);margin:0 0 18px;font-size:14px}.sideboard-zone{flex-direction:column;min-width:0;display:flex}.sideboard-zone__header{border-bottom:2px solid var(--p5-accent);align-items:center;gap:10px;margin-bottom:8px;padding-bottom:6px;display:flex}.sideboard-zone__title{letter-spacing:1px;color:var(--p5-text);text-transform:uppercase;font-size:13px;font-weight:800}.sideboard-zone__hint{color:var(--p5-text-muted);font-size:11px}.sideboard-zone__count{margin-left:auto;font-size:14px;font-weight:900}.sideboard-zone__count.ok{color:var(--p5-text)}.sideboard-zone__count.warn{color:var(--p5-accent)}.sideboard-zone__body{flex-wrap:wrap;flex:1;align-content:flex-start;gap:10px;min-height:120px;padding:4px;display:flex;overflow:visible}body:not(.is-dragging) .sideboard-panel .card--small:hover{transform:scale(1.6)}.sideboard-zone__empty{width:100%;min-height:120px;color:var(--p5-text-dim);letter-spacing:1px;justify-content:center;align-items:center;font-size:13px;display:flex}.sideboard-zone--hero{margin-bottom:18px}.sideboard-zone--hero .sideboard-zone__header{border-bottom-color:var(--p5-highlight,#f5c518)}.sideboard-zone--hero .sideboard-zone__title{color:var(--p5-highlight,#f5c518)}.sideboard-zone__body--hero{min-height:0;max-height:none;position:relative}.sideboard-panel__columns{align-items:stretch;gap:28px;margin-bottom:18px;display:flex}.sideboard-zone--main{flex:2.4}.sideboard-zone--side{border-left:2px solid var(--p5-accent);flex:1;padding-left:24px}.sideboard-zone--side .sideboard-zone__body{gap:8px}.sideboard-panel__card{cursor:pointer;transition:transform .15s;position:relative}.sideboard-panel__card:hover{transform:translateY(-4px)}.sideboard-panel__card--current:after{content:"";border:2px solid var(--p5-highlight,#f5c518);pointer-events:none;position:absolute;inset:-2px}.sideboard-panel__qty{background:var(--p5-accent);color:#fff;pointer-events:none;z-index:5;border:2px solid #fff;justify-content:center;align-items:center;min-width:22px;height:20px;padding:0 6px;font-size:13px;font-weight:900;line-height:1;display:flex;position:absolute;bottom:1px;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #0009}.hero-picker{z-index:20;background:var(--p5-bg-elevated,#1a1a1a);border:2px solid var(--p5-highlight,#f5c518);max-width:640px;padding:12px 14px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 8px 32px #000c}.hero-picker__title{letter-spacing:1px;color:var(--p5-highlight,#f5c518);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800}.hero-picker__list{flex-wrap:wrap;gap:10px;display:flex}.hero-picker__badge{background:var(--p5-highlight,#f5c518);color:#000;z-index:10;border:2px solid #000;padding:2px 7px;font-size:10px;font-weight:800;position:absolute;top:-10px;right:-8px}.sideboard-panel__warn{text-align:center;color:var(--p5-accent);letter-spacing:1px;margin:0 0 12px;font-size:13px}.sideboard-panel__actions{justify-content:center;display:flex}.sideboard-panel__actions .btn{min-width:160px;padding:12px 32px;font-size:14px}.sideboard-panel__actions .btn:disabled{opacity:.4;cursor:not-allowed}.sideboard-panel__waiting{text-align:center;color:var(--p5-text-muted);letter-spacing:1px;margin:24px 0;font-size:16px}.pregame-overlay{--mp-ink:#0c0a08;--mp-ink-2:#15110d;--mp-ink-3:#221a14;--mp-paper:#f5efe2;--mp-paper-2:#cfc5b2;--mp-mute:#f5efe28c;--mp-line:#f5efe22e;--mp-red:#e8281c;--mp-red-f:#ff4a3a;z-index:1000;background:repeating-linear-gradient(-55deg,#e8281c1a 0 14px,#0000 14px 28px),radial-gradient(circle at 1.5px 1.5px,#f5efe20a 1.5px,#0000 2px) 0 0/8px 8px,#080604db;justify-content:center;align-items:center;font-family:Noto Sans SC,sans-serif;display:flex;position:fixed;inset:0}.pregame-panel{background:var(--mp-ink-2);border:2px solid var(--mp-paper);min-width:560px;max-width:90vw;box-shadow:12px 12px 0 var(--mp-red);text-align:center;padding:32px 44px 36px;position:relative}.pregame-panel:before{content:"";background:var(--mp-red);height:4px;position:absolute;top:0;left:0;right:0}.pregame-panel__title{letter-spacing:.12em;color:var(--mp-paper);text-shadow:4px 4px 0 var(--mp-red);margin:0 0 6px;font-family:Noto Serif SC,serif;font-size:30px;font-weight:900}.pregame-panel__hint{letter-spacing:.22em;color:var(--mp-mute);margin:10px 0 4px;font-family:JetBrains Mono,monospace;font-size:11px}.pregame-panel__actions{justify-content:center;gap:16px;margin-top:26px;display:flex}.pregame-panel .btn{letter-spacing:.15em;text-indent:.15em;background:var(--mp-ink);min-width:140px;color:var(--mp-paper);border:2px solid var(--mp-ink);cursor:pointer;justify-content:center;align-items:center;padding:12px 26px;font-family:Noto Sans SC,sans-serif;font-size:14px;font-weight:900;line-height:1;display:inline-flex;position:relative;transform:skew(-6deg)}.pregame-panel .btn:before{content:"";background:var(--mp-red);z-index:-1;position:absolute;inset:4px -4px -4px 4px}.pregame-panel .btn:hover:before{inset:5px -5px -5px 5px}.pregame-panel .btn--primary{background:var(--mp-red);border-color:var(--mp-red)}.pregame-panel .btn--primary:before{background:var(--mp-ink)}.pregame-panel .btn--primary:hover{background:var(--mp-red-f);border-color:var(--mp-red-f)}.pregame-panel--dice{position:relative;overflow:hidden}.pregame-panel--dice:after{content:"";pointer-events:none;background-image:radial-gradient(circle at 1.5px 1.5px,#e8281c1a 1.5px,#0000 2px);background-size:10px 10px;position:absolute;inset:0}.dice-stage{justify-content:center;align-items:center;gap:48px;margin:24px 0;display:flex;position:relative}.dice-cell{flex-direction:column;align-items:center;gap:8px;min-width:140px;display:flex}.dice-cell__label{color:var(--mp-mute,#f5efe28c);text-transform:uppercase;letter-spacing:.22em;font-family:JetBrains Mono,monospace;font-size:11px}.dice-cell__status{color:var(--mp-mute,#f5efe28c);letter-spacing:.18em;min-height:18px;font-family:JetBrains Mono,monospace;font-size:11px}.dice-cell__btn{min-width:120px}.dice-face-shell{opacity:.94;justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.dice-face-shell__hex{filter:drop-shadow(0 6px 12px #00000073);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dice-face-shell__hex polygon{fill:var(--mp-red,#e8281c);stroke:#f5efe2f2;stroke-width:4px;stroke-linejoin:miter;paint-order:stroke fill}.dice-face-shell--opponent .dice-face-shell__hex polygon{fill:#1e1a18f5}.dice-face-shell__value{z-index:1;color:#f5efe2;text-shadow:3px 3px #0c0a08e6;font-size:64px;font-weight:900;position:relative}.dice-face-shell--tumble{animation:1.4s cubic-bezier(.2,.7,.3,1) forwards dice-face-tumble}.dice-face-shell--settled{transform:translateY(0)rotate(0)scale(1)}.dice-vs{color:#f5efe2;letter-spacing:.14em;text-shadow:4px 4px 0 var(--mp-red,#e8281c);opacity:0;font-size:48px;font-weight:900;transform:scale(0)}.dice-vs--visible{animation:.4s cubic-bezier(.2,.84,.3,1.4) forwards dice-vs-pop}.dice-result{letter-spacing:.16em;color:var(--mp-red,#e8281c);text-shadow:3px 3px #0c0a08e6;font-size:28px;font-weight:900;animation:.5s ease-out forwards dice-result-in}@keyframes dice-face-tumble{0%{opacity:0;transform:translateY(-180px)rotate(-30deg)scale(.6)}25%{opacity:1}35%{transform:translateY(20px)rotate(180deg)scale(1.15)}50%{transform:translateY(-10px)rotate(360deg)scale(1)}65%{transform:translateY(8px)rotate(540deg)scale(1.05)}80%{transform:translateY(-3px)rotate(700deg)}to{opacity:1;transform:translateY(0)rotate(720deg)scale(1)}}@keyframes dice-vs-pop{to{opacity:1;transform:scale(1)}}@keyframes dice-result-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dice-cell__btn.btn,.pregame-panel__actions .btn{border-color:var(--mp-paper);box-shadow:4px 4px 0 var(--mp-ink);margin-bottom:6px;transform:none}.dice-cell__btn.btn:before,.pregame-panel__actions .btn:before{display:none}.dice-cell__btn.btn:hover,.pregame-panel__actions .btn--primary:hover{background:var(--mp-red-f);border-color:var(--mp-paper);box-shadow:5px 5px 0 var(--mp-ink)}.dice-cell__btn.btn:active,.pregame-panel__actions .btn:active{box-shadow:2px 2px 0 var(--mp-ink);transform:translate(2px,2px)}.pregame-panel__actions .btn:not(.btn--primary):hover{background:var(--mp-ink-3);border-color:var(--mp-paper);box-shadow:5px 5px 0 var(--mp-red)}.bf-pick-panel{min-width:720px}.bf-pick-stage{justify-content:center;align-items:center;gap:32px;min-height:200px;margin:32px 0 24px;padding-top:32px;display:flex}.bf-pick-card{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:180px;height:130px;padding:12px;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s;display:flex;position:relative;overflow:visible}.bf-pick-card--back{background:linear-gradient(135deg,#221 0%,#110 100%);border:2px solid #f5efe24d;box-shadow:inset 0 0 12px #e8001c26}.bf-pick-card--back:hover{border-color:#e8001c99;transform:translateY(-6px)}.bf-pick-card--front{cursor:default;border:2px solid var(--mp-red,#e8281c);background:linear-gradient(135deg,#e8001c59 0%,#221111f2 100%);gap:0;padding:0;box-shadow:inset 0 0 16px #e8001c4d}.bf-pick-card__clip{position:absolute;inset:0;overflow:hidden}.bf-pick-card__back-icon{color:var(--mp-red,#e8281c);opacity:.6;font-size:56px;font-weight:900}.bf-pick-card__art-img{object-fit:cover;width:130px;height:180px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.bf-pick-card__caption{text-align:center;color:var(--mp-paper,#f5efe2);text-shadow:1px 1px #000,-1px 1px #000,1px -1px #000,-1px -1px #000;z-index:1;background:linear-gradient(#0000,#000000b3);padding:2px 8px;font-size:13px;font-weight:900;position:absolute;bottom:4px;left:0;right:0}.bf-pick-card--selected{box-shadow:0 10px 0 -4px var(--mp-red,#e8281c), 0 0 24px #e8001c99;animation:1.6s ease-in-out infinite bf-pick-pulse;transform:translateY(-22px);border-color:var(--mp-red,#e8281c)!important}.bf-pick-card--back.bf-pick-card--selected:hover{transform:translateY(-22px)}.bf-pick-card--selected:after{content:attr(data-selected-label);background:var(--mp-red,#e8281c);color:var(--mp-paper,#f5efe2);letter-spacing:2px;border:2px solid var(--mp-paper,#f5efe2);white-space:nowrap;transform-origin:50%;z-index:2;padding:4px 10px;font-size:12px;font-weight:900;animation:.35s cubic-bezier(.2,.84,.3,1.4) forwards bf-pick-label-in;position:absolute;top:-14px;right:-10px;transform:scale(0)rotate(-12deg);box-shadow:2px 2px #0c0a08e6}@keyframes bf-pick-label-in{to{transform:scale(1)rotate(-6deg)}}@keyframes bf-pick-pulse{0%,to{box-shadow:0 10px 0 -4px var(--mp-red,#e8281c), 0 0 24px #e8001c99}50%{box-shadow:0 10px 0 -4px var(--mp-red,#e8281c), 0 0 36px #e8001ce6}}.bf-pick-done-wrap{flex-direction:column;align-items:center;display:flex}.bf-pick-done{justify-content:center;align-items:center;gap:80px;display:flex}.opp-legend-banner{z-index:1100;border:2px solid var(--p5-accent);width:fit-content;box-shadow:0 4px 24px #000000b3, 0 0 18px var(--p5-accent-glow);clip-path:polygon(3% 0%,100% 0%,97% 100%,0% 100%);pointer-events:none;background:#000000d1;align-items:center;gap:14px;margin-left:auto;margin-right:auto;padding:10px 20px;display:flex;position:fixed;top:16px;left:0;right:0}.opp-legend-banner__label{color:var(--p5-accent);text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:800}.opp-legend-banner__card{transform-origin:50%;transform:scale(.85)}.opp-legend-banner__name{color:var(--p5-text);letter-spacing:1px;font-size:16px;font-weight:700}.pregame-countdown-overlay{z-index:1200;pointer-events:none;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pregame-countdown__inner{justify-content:center;align-items:center;min-height:120px;display:flex}.pregame-countdown__number{color:var(--mp-red,#e8281c);text-shadow:4px 4px #0c0a08e6;--animate-duration:.6s;font-size:120px;font-weight:900}.pregame-countdown__go{letter-spacing:.16em;color:var(--mp-paper,#f5efe2);text-shadow:0 0 24px var(--mp-red,#e8281c), 4px 4px 0 #0c0a08e6;--animate-duration:.5s;font-size:64px;font-weight:900}.ai-decision-bubble{z-index:60;color:#e6ecff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;--animate-duration:.4s;background:#121622eb;border:1px solid #78a0ff59;border-radius:10px;max-width:320px;padding:12px 14px;font-size:13px;line-height:1.5;position:fixed;right:16px;box-shadow:0 6px 24px #00000073}.ai-decision-bubble--top{top:72px}.ai-decision-bubble--bottom{bottom:140px}.ai-decision-bubble__head{align-items:center;gap:6px;margin-bottom:6px;display:flex}.ai-decision-bubble__pip{background:#6aa0ff;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #6aa0ff}.ai-decision-bubble__pip--pulse{animation:1s ease-in-out infinite ai-pip-pulse}@keyframes ai-pip-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}.ai-decision-bubble__dots span{animation:1.2s infinite both ai-dot-blink}.ai-decision-bubble__dots span:nth-child(2){animation-delay:.2s}.ai-decision-bubble__dots span:nth-child(3){animation-delay:.4s}@keyframes ai-dot-blink{0%,80%,to{opacity:.2}40%{opacity:1}}.ai-decision-bubble__title{letter-spacing:.04em;text-transform:uppercase;color:#9fb4e6;font-size:11px}.ai-decision-bubble__badge{color:#ffc878;background:#ffb45a2e;border:1px solid #ffb45a80;border-radius:6px;margin-left:auto;padding:1px 6px;font-size:10px}.ai-decision-bubble__thinking{color:#9fb4e6;margin-left:auto;font-size:11px}.ai-decision-bubble__plan{border-bottom:1px solid #78a0ff2e;margin-bottom:8px;padding-bottom:8px}.ai-decision-bubble__plan-goal{color:#eef2ff;margin-bottom:4px;font-size:12.5px}.ai-decision-bubble__plan-label{color:#6aa0ff;margin-right:6px;font-size:10px;display:inline-block}.ai-decision-bubble__plan-steps{color:#b8c2e0;margin:0;padding-left:18px;font-size:12px;line-height:1.5}.ai-decision-bubble__decision{margin-top:2px}.ai-decision-bubble__action{color:#fff;align-items:center;gap:6px;margin-bottom:4px;font-weight:600;display:flex}.ai-decision-bubble__rationale{color:#c4ceea;font-size:12.5px}.ai-decision-log-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080a169e;justify-content:center;align-items:center;padding:4vh 4vw;display:flex;position:fixed;inset:0}.ai-decision-log-overlay__panel{background:var(--p5-bg);border:2px solid var(--p5-accent);border-radius:12px;flex-direction:column;width:100%;max-width:1100px;height:100%;display:flex;overflow:hidden;box-shadow:0 12px 48px #0000008c}.ai-decision-log-overlay__panel .ai-decision-log__list{flex:1;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-auto-rows:max-content;align-content:start;gap:10px;padding:12px;display:grid}.ai-decision-log__list{flex-direction:column;gap:8px;max-height:100%;padding:8px;display:flex;overflow-y:auto}.ai-decision-log__item{background:#ffffff0a;border:1px solid #78a0ff2e;border-radius:8px;padding:8px 10px}.ai-decision-log__item-head{align-items:center;gap:6px;margin-bottom:4px;display:flex}.ai-decision-log__seq{color:#7f8bb0;font-variant-numeric:tabular-nums;font-size:11px}.ai-decision-log__side{color:#aab6e0;background:#788cdc2e;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:600}.ai-decision-log__action{color:#eef2ff;font-size:13px;font-weight:600}.ai-decision-log__item-head .ai-decision-bubble__badge{margin-left:auto}.ai-decision-log__rationale{color:#b8c2e0;font-size:12px;line-height:1.45}.ai-decision-log__item--plan{background:#6aa0ff14;border-color:#78a0ff52}.ai-decision-log__item--plan .ai-decision-log__seq{color:#6aa0ff;font-weight:600}.ai-decision-log__plan-steps{color:#b8c2e0;margin:4px 0 0;padding-left:18px;font-size:12px;line-height:1.5}.game-container{background:var(--p5-bg-deep);width:100%;height:100vh;display:flex;overflow:hidden}.game-board__standby-hint{transform:translateX(-50%) skewX(var(--p5-skew));z-index:100;letter-spacing:1px;text-transform:uppercase;color:var(--p5-text);background:var(--p5-bg);border:2px solid var(--p5-accent);box-shadow:0 4px 16px var(--p5-accent-glow);pointer-events:none;white-space:nowrap;clip-path:polygon(3% 0%,100% 0%,97% 100%,0% 100%);padding:8px 24px;font-size:13px;font-weight:700;position:fixed;top:12px;left:50%}.game-board__reaction-banner{background:var(--p5-bg);border-bottom:2px solid var(--p5-accent);flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;display:flex}.game-board__reaction-label{color:var(--p5-accent);text-transform:uppercase;letter-spacing:2px;font-size:13px;font-weight:800}.game-board__reaction-hint{color:var(--p5-text-muted);flex:1;font-size:12px}.game-board__reaction-timer{color:var(--p5-highlight);text-align:center;min-width:28px;font-size:14px;font-weight:900}.game-board__reaction-banner .btn{flex-shrink:0}.game-board{box-sizing:border-box;flex-direction:column;flex:1;min-width:0;height:100%;display:flex;overflow:hidden}.game-board--pregame>*{visibility:hidden}.game-sidebar{background:var(--p5-bg);border-left:none;flex-direction:column;flex-shrink:0;gap:12px;width:120px;padding:12px;display:flex}.game-sidebar--hidden{visibility:hidden}.game-info{background:var(--p5-bg-elevated);border:1px solid var(--p5-bg-elevated);flex-direction:column;align-items:center;gap:8px;padding:12px 8px;display:flex}.game-info__turn{color:var(--p5-text);text-shadow:2px 2px 0 var(--p5-accent);font-size:26px;font-weight:900}.game-info__current{color:var(--p5-accent);text-transform:uppercase;letter-spacing:1px;clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);background:#e8001c1a;padding:3px 8px;font-size:11px;font-weight:800}.game-info__combat-phase{color:var(--p5-highlight);text-transform:uppercase;letter-spacing:1px;clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);background:#ffd7001a;padding:3px 8px;font-size:10px;font-weight:700}.game-info__scores{flex-direction:column;gap:4px;width:100%;display:flex}.game-info__score{text-align:center;clip-path:polygon(4% 0%,100% 0%,96% 100%,0% 100%);padding:4px 8px;font-size:14px;font-weight:800}.game-info__score--player,.game-info__score--opponent{background:var(--p5-bg-elevated);color:var(--p5-text-muted);border-left:3px solid #0000;transition:background .3s,color .3s,border-color .3s}.game-info__score--active{color:var(--p5-text);border-left-color:var(--p5-accent);background:#e8001c26}.game-info__score.is-shaking-score{animation:.5s ease-in-out .35s anim-score-shake}.game-info__pool{color:var(--p5-text-muted);background:var(--p5-bg-elevated);padding:3px 8px;font-size:11px;font-weight:700}.game-info__help{background:var(--p5-bg-elevated);border:1px solid var(--p5-bg-elevated);padding:8px}.game-info__help h4{color:var(--p5-text-muted);text-transform:uppercase;letter-spacing:1px;margin:0 0 8px;font-size:10px;font-weight:800}.game-info__help ul{color:var(--p5-text-dim);margin:0;padding:0 0 0 12px;font-size:9px;line-height:1.6}.game-info__help li{margin-bottom:4px}.game-info__help strong{color:var(--p5-accent)}.game-info__actions{flex-direction:column;gap:8px;width:100%;display:flex}.game-board__battlefield{background:var(--p5-bg);background-image:repeating-linear-gradient(135deg,#0000,#0000 40px,#ffffff03 40px 41px);border:none;flex:auto;justify-content:center;align-items:stretch;gap:0;min-height:0;padding:12px 16px;display:flex;overflow:hidden}.game-board__battlefield .battlefield-zone{background:0 0;border:none;flex:1;align-self:stretch;min-height:auto}.game-board__battlefield .battlefield-zone__units{align-self:stretch;height:100%}.game-board__battlefield-divider{background:var(--p5-accent);width:3px;height:50%;box-shadow:0 0 8px var(--p5-accent-glow);flex-shrink:0;align-self:center;margin:0 16px}@media (width<=768px){.game-container{flex-direction:column;height:auto;min-height:100vh}.game-board{flex:1;height:auto}.game-sidebar{border-top:none;border-left:none;flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding:8px 12px}.game-info{flex-direction:row;gap:12px;padding:8px 12px}.game-info__actions{flex-direction:row;width:auto}}.game-board__disc-banner,.game-board__surrender-anchor,.game-board__menu-anchor,.game-board__confirm-scrim{--mp-ink:#0c0a08;--mp-ink-2:#15110d;--mp-ink-3:#221a14;--mp-paper:#f5efe2;--mp-paper-2:#cfc5b2;--mp-mute:#f5efe28c;--mp-line:#f5efe22e;--mp-red:#e8281c;--mp-red-f:#ff4a3a;font-family:Noto Sans SC,sans-serif}.game-board__disc-banner{z-index:1200;background:var(--mp-ink-2);border:1.5px solid var(--mp-red);min-width:460px;max-width:680px;box-shadow:5px 5px 0 var(--mp-red), 0 0 0 1px var(--mp-ink);align-items:stretch;animation:.35s cubic-bezier(.2,.7,.3,1) backwards gb-banner-in;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%)}.game-board__disc-banner-pip{background:var(--mp-red);justify-content:center;align-items:center;width:48px;display:flex}.game-board__disc-banner-pip:before{content:"";background:var(--mp-paper);border-radius:50%;width:16px;height:16px;animation:1.2s infinite gb-pulse}.game-board__disc-banner-body{flex-direction:column;justify-content:center;padding:12px 22px;display:flex}.game-board__disc-banner-title{letter-spacing:.08em;color:var(--mp-paper);font-family:Noto Serif SC,serif;font-size:17px;font-weight:900}.game-board__disc-banner-sub{letter-spacing:.22em;color:var(--mp-mute);margin-top:4px;font-family:JetBrains Mono,monospace;font-size:10px}.game-board__surrender-anchor{z-index:1100;position:fixed;top:60px;right:24px}.game-board__surrender-btn{background:var(--mp-ink);border:1.5px solid var(--mp-red);color:var(--mp-red);letter-spacing:.2em;cursor:pointer;align-items:center;gap:10px;padding:10px 16px;font-family:Noto Sans SC,sans-serif;font-size:12px;font-weight:900;transition:background .15s,color .15s;display:none}.game-board__surrender-btn:hover{background:var(--mp-red);color:var(--mp-paper)}.game-board__surrender-flag{background:var(--mp-red);clip-path:polygon(0 0,100% 0,80% 50%,100% 100%,0 100%);width:12px;height:14px}.game-board__surrender-btn:hover .game-board__surrender-flag{background:var(--mp-paper)}.game-board__menu-anchor{z-index:1100;position:fixed;bottom:12px;right:24px}.game-board__menu-btn{background:var(--mp-ink);border:1.5px solid var(--mp-line);color:var(--mp-paper-2);letter-spacing:.2em;cursor:pointer;align-items:center;gap:10px;padding:10px 16px;font-family:Noto Sans SC,sans-serif;font-size:12px;font-weight:900;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.game-board__menu-btn:hover{background:var(--mp-paper);color:var(--mp-ink);border-color:var(--mp-paper)}.game-board__menu-icon{background:var(--mp-paper-2);clip-path:polygon(0 0,100% 0,100% 22%,0 22%,0 39%,100% 39%,100% 61%,0 61%,0 78%,100% 78%,100% 100%,0 100%);width:14px;height:12px}.game-board__menu-btn:hover .game-board__menu-icon{background:var(--mp-ink)}.game-board__confirm-scrim{z-index:1300;-webkit-backdrop-filter:blur(2px);background:#080604b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-board__confirm{background:var(--mp-ink-2);border:2px solid var(--mp-red);width:520px;box-shadow:12px 12px 0 var(--mp-red)}.game-board__confirm-top{background:var(--mp-red);color:var(--mp-paper);letter-spacing:.25em;align-items:center;gap:12px;padding:10px 18px;font-family:Noto Sans SC,sans-serif;font-size:12px;font-weight:900;display:flex}.game-board__confirm-pip{background:var(--mp-paper);width:12px;height:12px;animation:1s infinite gb-blink}.game-board__confirm-en{letter-spacing:.3em;opacity:.85;margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10px}.game-board__confirm-body{text-align:center;padding:28px 32px 22px}.game-board__confirm-title{letter-spacing:.1em;color:var(--mp-paper);text-shadow:4px 4px 0 var(--mp-red);font-family:Noto Serif SC,serif;font-size:34px;font-weight:900}.game-board__confirm-msg{color:var(--mp-paper-2);margin-top:16px;font-size:14px;line-height:1.7}.game-board__confirm-msg .strong{color:var(--mp-red);font-weight:700}.game-board__confirm-reason{color:var(--mp-paper-2);background:var(--mp-ink-3);border:1px solid var(--mp-line);word-break:break-all;margin-top:14px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.5}.game-board__confirm-hint{color:var(--mp-paper-2);text-align:center;padding:0 32px 20px;font-size:12px}.game-board__confirm-actions{border-top:1.5px solid var(--mp-line);background:var(--mp-ink-3);justify-content:space-between;gap:18px;padding:16px 32px 24px;display:flex}.game-board__confirm-cancel,.game-board__confirm-ok{letter-spacing:.12em;cursor:pointer;border:2px solid #0000;padding:10px 18px;font-family:Noto Sans SC,sans-serif;font-weight:900}.game-board__confirm-cancel{border-color:var(--mp-paper);color:var(--mp-paper);background:0 0;font-size:12px}.game-board__confirm-cancel:hover{background:var(--mp-paper);color:var(--mp-ink)}.game-board__confirm-ok{color:var(--mp-paper);background:#b51710;border-color:#b51710;font-size:13px}.game-board__confirm-ok:hover{background:var(--mp-red-f);border-color:var(--mp-red-f)}.combat-info-bar{width:680px;max-width:calc(100% - 40px);color:var(--p5-bg-deep,#0a0a0a);border:2.5px solid var(--p5-bg-deep,#0a0a0a);box-shadow:5px 5px 0 var(--p5-accent,#e8001c);z-index:200;pointer-events:none;opacity:0;background:#bdbdbd;position:fixed;top:0;left:50%;transform:translate(-50%)translateY(-110%)}.combat-info-bar.is-entering{animation:.5s cubic-bezier(.2,.7,.3,1) forwards combat-bar-enter}.combat-info-bar.is-visible{opacity:1;transform:translate(-50%)translateY(0)}.combat-info-bar.is-leaving{animation:.5s cubic-bezier(.5,0,.8,.3) forwards combat-bar-leave}.combat-info-bar__head{border-bottom:2px solid var(--p5-bg-deep,#0a0a0a);align-items:stretch;display:flex}.combat-info-bar__phase{background:var(--p5-bg-deep,#0a0a0a);color:var(--p5-highlight,gold);letter-spacing:.12em;white-space:nowrap;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:900;display:flex}.combat-info-bar__pip{background:var(--p5-accent,#e8001c);width:8px;height:8px;animation:1.4s ease-in-out infinite combat-pip-pulse;box-shadow:0 0 8px #e8001c99}.combat-info-bar__preview-badge{letter-spacing:.1em;color:var(--p5-text,#f5f5f0);background:var(--p5-accent,#e8001c);border:1.5px solid var(--p5-text,#f5f5f0);box-shadow:2px 2px 0 var(--p5-text,#f5f5f0);white-space:nowrap;cursor:help;text-transform:uppercase;margin-left:4px;padding:2px 6px;font-size:10px;font-weight:900}.combat-info-bar__loc{flex:1;justify-content:space-between;align-items:center;padding:6px 12px;font-size:13px;font-weight:900;display:flex}.combat-info-bar__loc-meta{letter-spacing:.2em;color:#0a0a0a73;font-size:9px;font-weight:400}.combat-info-bar__row{grid-template-columns:1fr auto 1fr;align-items:stretch;display:grid}.combat-info-bar__side{flex-direction:column;gap:1px;padding:5px 12px;display:flex}.combat-info-bar__side-role{letter-spacing:.2em;opacity:.55;font-size:9px}.combat-info-bar__side-who{letter-spacing:.08em;font-size:12px;font-weight:900}.combat-info-bar__thumbs{gap:4px;padding:2px 0;display:flex}.combat-info-bar__thumbs--right{justify-content:flex-end}.combat-info-bar__thumb{background:var(--p5-bg-elevated,#2a2a2a);width:36px;height:50px;animation:.35s cubic-bezier(.2,.9,.3,1.3) backwards combat-thumb-pop;animation-delay:inherit;border-radius:2px;flex-shrink:0;overflow:hidden}.combat-info-bar__thumb img{object-fit:cover;width:100%;height:100%;display:block}.combat-info-bar__thumb-fallback{width:100%;height:100%;color:var(--p5-text-muted,#888);justify-content:center;align-items:center;font-size:14px;font-weight:900;display:flex}.combat-info-bar__side--def{text-align:right;align-items:flex-end}.combat-info-bar__sep{background:var(--p5-bg-deep,#0a0a0a);width:28px;color:var(--p5-text,#f5f5f0);justify-content:center;align-items:center;font-size:13px;font-weight:900;display:flex}.combat-info-bar__power{background:var(--p5-bg-elevated,#2a2a2a);border-top:2px solid var(--p5-bg-deep,#0a0a0a);height:14px;position:relative;overflow:hidden}.combat-info-bar__power-fill--atk{background:repeating-linear-gradient(45deg, var(--p5-accent) 0 6px, #b81810 6px 12px);width:0%;transition:width .55s cubic-bezier(.2,.7,.3,1) .3s;position:absolute;top:0;bottom:0;left:0}.combat-info-bar__power-fill--def{background:repeating-linear-gradient(45deg,#1f6dd6 0 6px,#1850a8 6px 12px);width:0%;transition:width .55s cubic-bezier(.2,.7,.3,1) .3s;position:absolute;top:0;bottom:0;right:0}.combat-info-bar.is-visible .combat-info-bar__power-fill--atk{width:var(--atk-pct,50%)}.combat-info-bar.is-visible .combat-info-bar__power-fill--def{width:var(--def-pct,50%)}.combat-info-bar__power-mid{background:var(--p5-text,#f5f5f0);z-index:2;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.combat-info-bar__power-num{color:var(--p5-text,#f5f5f0);text-shadow:1px 1px 0 var(--p5-bg-deep);z-index:2;padding:0 6px;font-size:10px;font-weight:900;position:absolute;top:50%;transform:translateY(-50%)}.combat-info-bar__power-num--atk{left:4px}.combat-info-bar__power-num--def{right:4px}.combat-info-bar__foot{letter-spacing:.15em;color:#0a0a0a80;border-top:1.5px solid #0a0a0a26;justify-content:space-between;align-items:center;padding:4px 12px;font-size:9px;display:flex}.combat-info-bar__pred{letter-spacing:.12em;font-size:11px;font-weight:900}.combat-info-bar__pred--atk{color:var(--p5-accent,#e8001c)}.combat-info-bar__pred--def{color:#1f6dd6}.combat-info-bar__pred--even{color:var(--p5-bg-deep,#0a0a0a)}@keyframes combat-bar-enter{0%{opacity:0;transform:translate(-50%)translateY(-110%)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes combat-bar-leave{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-110%)}}@keyframes combat-pip-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}@keyframes combat-thumb-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes anim-score-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(4px,-1px)}75%{transform:translate(-2px,3px)}}@keyframes toast-fade{0%{opacity:0;transform:translate(-50%,-50%)skew(-4deg)scale(.9)}10%{opacity:1;transform:translate(-50%,-50%)skew(-4deg)scale(1)}80%{opacity:1;transform:translate(-50%,-50%)skew(-4deg)scale(1)}to{opacity:0;transform:translate(-50%,-50%)skew(-4deg)scale(.9)}}@keyframes resolution-collapsed-in{0%{opacity:0;transform:translate(100%,-50%)}to{opacity:1;transform:translateY(-50%)}}@keyframes resolution-tag-in{0%{opacity:0;transform:translate(-50%,-100%)translateY(-6px)}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes resolution-area-bump{0%{transform:translateY(-50%)scale(1)}35%{transform:translateY(-50%)scale(1.025)}to{transform:translateY(-50%)scale(1)}}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.5}}@keyframes resolving-pulse{0%,to{outline-color:#60a5fa;box-shadow:0 0 8px #60a5fa66}50%{outline-color:#93c5fd;box-shadow:0 0 16px #60a5fab3}}@keyframes resolution-arc-flow{to{stroke-dashoffset:-28px}}@keyframes resolving-pulse-opponent{0%,to{outline-color:var(--p5-accent);box-shadow:0 0 8px #e8001c66}50%{outline-color:#ff4d6a;box-shadow:0 0 16px #e8001cb3}}.anim--fly-to-resolution{animation:.4s cubic-bezier(.22,.61,.36,1) forwards anim-fly-from-bottom}@keyframes anim-fly-from-bottom{0%{opacity:0;transform:translateY(45vh)scale(1.2)}to{opacity:1;transform:translateY(0)scale(1)}}.anim--fly-from-opponent{animation:.5s cubic-bezier(.2,.7,.3,1) forwards anim-fly-from-above}@keyframes anim-fly-from-above{0%{opacity:0;transform:translateY(-200%)scale(.9)}to{opacity:1;transform:translate(0)scale(1)}}.anim--resolve-flash{animation:.9s cubic-bezier(.4,0,.6,1) forwards anim-resolve-flash}@keyframes anim-resolve-flash{0%{box-shadow:0 0 0 2px var(--resolution-glow,#e8281c80);filter:brightness();transform:scale(1)}40%{filter:brightness(1.6);transform:scale(1.15);box-shadow:0 0 0 6px #f5efe2e6,0 0 60px #f5efe2e6}to{box-shadow:0 0 0 2px var(--resolution-glow,#e8281c80);opacity:0;filter:brightness(.4);transform:scale(.4)translateY(40px)}}.anim--unit-enter{--animate-duration:.4s}.anim-move-wrapper{display:inline-block;position:relative}.anim-move-wrapper.anim--unit-moving{z-index:100;pointer-events:none;animation:.35s cubic-bezier(.22,.61,.36,1) forwards anim-unit-move}@keyframes anim-unit-move{0%{transform:translate(0)}to{transform:translate(var(--move-dx), var(--move-dy))}}.anim--hidden{opacity:0;pointer-events:none}.anim--destroy{position:relative;animation-fill-mode:forwards!important}.anim--destroy:after{content:"";border-radius:inherit;pointer-events:none;z-index:1;background:#ef444459;position:absolute;inset:0}.anim--damaged{outline-offset:1px;--animate-duration:.5s;border-radius:4px;outline:2px solid #ef4444}.anim--equip{position:relative}.anim--equip:after{content:"";border-radius:inherit;pointer-events:none;z-index:1;background:#f59e0b4d;position:absolute;inset:0}.anim--exile{position:relative}.anim--exile:after{content:"";border-radius:inherit;pointer-events:none;z-index:1;background:#a855f759;position:absolute;inset:0}.anim-float-damage{z-index:200;color:#e8281c;text-shadow:0 0 8px #e8281ca6,2px 2px #000,-1px -1px #000,0 2px 6px #0009;pointer-events:none;will-change:transform, opacity;font-size:26px;font-weight:900;animation:.7s cubic-bezier(.2,.84,.3,1.4) forwards anim-dmg-pop;position:fixed}.anim-float-damage--buff{color:#5cd070;text-shadow:0 0 8px #5cd070a6,2px 2px #000,-1px -1px #000,0 2px 6px #0009}@keyframes anim-dmg-pop{0%{opacity:0;transform:translate(-50%)scale(.5)}18%{opacity:1;transform:translate(-50%)scale(1.4)}55%{opacity:1;transform:translate(-50%)translateY(-8px)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-26px)scale(.85)}}.anim-float-destroy{z-index:200;color:#ef4444;text-shadow:0 0 10px #ef444499,0 2px 4px #00000080;pointer-events:none;white-space:nowrap;--animate-duration:.6s;font-size:18px;font-weight:900;position:fixed}.anim-float-exile{z-index:200;color:#a855f7;text-shadow:0 0 10px #a855f799,0 2px 4px #00000080;pointer-events:none;white-space:nowrap;--animate-duration:.6s;font-size:18px;font-weight:900;position:fixed}.anim-float-score{z-index:200;color:#f59e0b;text-shadow:0 0 8px #f59e0b99,0 2px 4px #00000080;pointer-events:none;--animate-duration:.5s;font-size:20px;font-weight:900;position:fixed}.anim-score-stage{z-index:205;pointer-events:none;background:#0c0a088c;justify-content:center;align-items:center;animation:2.4s ease-out forwards anim-score-stage-backdrop;display:flex;position:fixed;inset:0}@keyframes anim-score-stage-backdrop{0%{background:#0c0a0800}10%{background:#0c0a088c}80%{background:#0c0a088c}to{background:#0c0a0800}}.anim-score-stage__counter{background:#1a1a1a;border:2.5px solid #f5efe2;flex-direction:column;align-items:center;gap:4px;min-width:200px;padding:14px 32px 18px;animation:.5s ease-in-out .35s anim-score-stage-shake;display:flex;position:relative;box-shadow:6px 6px #e8281c}.anim-score-stage--opponent .anim-score-stage__counter{border-color:#f5efe299;box-shadow:6px 6px #0c0a08}.anim-score-stage__player{border-bottom:1.5px solid #f5efe226;align-items:center;gap:8px;width:100%;margin-bottom:4px;padding-bottom:8px;display:flex}.anim-score-stage__avatar{color:#f5efe2;background:#e8281c;border:1.5px solid #f5efe2;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:900;display:flex}.anim-score-stage--opponent .anim-score-stage__avatar{background:#0c0a08;border-color:#f5efe299}.anim-score-stage__name{color:#f5efe2;letter-spacing:.08em;flex:1;font-size:14px;font-weight:900}.anim-score-stage__tag{letter-spacing:.2em;color:#e8281c;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}.anim-score-stage--opponent .anim-score-stage__tag{color:#f5efe280}.anim-score-stage__label{letter-spacing:.25em;color:#f5efe299;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.anim-score-stage__num{color:#f5efe2;text-shadow:5px 5px #e8281c;font-size:72px;font-weight:900;line-height:1}.anim-score-stage--opponent .anim-score-stage__num{text-shadow:5px 5px #f5efe233}.anim-score-stage__burst{opacity:0;background:radial-gradient(circle,#f3c41a 0%,#0000 65%);width:200px;height:200px;animation:.6s ease-out .25s forwards anim-score-stage-flash;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.4)}.anim-score-stage__rays{opacity:0;width:0;height:0;animation:.7s cubic-bezier(.2,.7,.3,1) .2s forwards anim-score-stage-rays;position:absolute;top:50%;left:50%}.anim-score-stage__rays span{transform-origin:50% 100%;background:#f3c41a;width:4px;height:50px;position:absolute;top:-50px;left:-2px}.anim-score-stage__rays span:first-child{transform:rotate(0)}.anim-score-stage__rays span:nth-child(2){transform:rotate(45deg)}.anim-score-stage__rays span:nth-child(3){transform:rotate(90deg)}.anim-score-stage__rays span:nth-child(4){transform:rotate(135deg)}.anim-score-stage__rays span:nth-child(5){transform:rotate(180deg)}.anim-score-stage__rays span:nth-child(6){transform:rotate(225deg)}.anim-score-stage__rays span:nth-child(7){transform:rotate(270deg)}.anim-score-stage__rays span:nth-child(8){transform:rotate(315deg)}.anim-score-stage__plus{color:#f3c41a;text-shadow:4px 4px #0c0a08;opacity:0;font-size:56px;font-weight:900;animation:.9s cubic-bezier(.2,.84,.3,1.4) .35s forwards anim-score-stage-plus;position:absolute;top:30%;left:50%;transform:translate(-50%)scale(0)}@keyframes anim-score-stage-flash{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}40%{opacity:1;transform:translate(-50%,-50%)scale(1.2)}to{opacity:0;transform:translate(-50%,-50%)scale(2)}}@keyframes anim-score-stage-rays{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.4)}to{opacity:0;transform:translate(-50%,-50%)scale(2.2)}}@keyframes anim-score-stage-plus{0%{opacity:0;transform:translate(-50%)scale(0)}50%{opacity:1;transform:translate(-50%,-40px)scale(1.1)}to{opacity:0;transform:translate(-50%,-100px)scale(.9)}}@keyframes anim-score-stage-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(4px,-1px)}75%{transform:translate(-2px,3px)}}.anim-destroy-burst{z-index:205;pointer-events:none;width:180px;height:220px;position:fixed;transform:translate(-50%,-50%)}.anim-destroy-burst__inner{animation:1.6s cubic-bezier(.4,0,.6,1) forwards anim-destroy-shake;position:absolute;inset:0}@keyframes anim-destroy-shake{0%{filter:brightness();transform:translate(0)}20%{filter:brightness(1.4);transform:translate(-4px,2px)}35%{filter:brightness(1.6);transform:translate(5px,-2px)}50%{filter:brightness(2)sepia(.5);transform:translate(-3px,3px)}60%{filter:brightness(1.6);transform:translate(0)scale(1.05)}70%{filter:brightness(1.2);transform:scale(1)rotate(-3deg)}to{opacity:0;filter:brightness(.3);transform:scale(.7)rotate(8deg)}}.anim-destroy-burst__flash{opacity:0;background:radial-gradient(circle,#ef4444e6 0%,#0000 60%);animation:.8s ease-out .5s forwards anim-destroy-burst-flash;position:absolute;inset:0}.anim-destroy-burst__cross{opacity:0;justify-content:center;align-items:center;animation:.5s cubic-bezier(.2,.84,.3,1) .35s forwards anim-destroy-cross;display:flex;position:absolute;inset:0}.anim-destroy-burst__cross:before,.anim-destroy-burst__cross:after{content:"";background:#ef4444;width:180px;height:6px;position:absolute;box-shadow:3px 3px #0c0a08e6}.anim-destroy-burst__cross:before{transform:rotate(20deg)}.anim-destroy-burst__cross:after{transform:rotate(-20deg)}.anim-destroy-burst__text{color:#f5efe2;letter-spacing:.14em;text-shadow:4px 4px #ef4444;opacity:0;font-size:34px;font-weight:900;animation:.4s cubic-bezier(.2,.84,.3,1.4) .9s forwards anim-destroy-text-in;position:absolute;top:14%;left:50%;transform:translate(-50%)rotate(-8deg)scale(0)}.anim-destroy-burst__name{letter-spacing:.12em;color:#f5efe2cc;white-space:nowrap;font-size:11px;font-weight:900;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.anim-destroy-burst__shards{position:absolute;inset:0}.anim-destroy-burst__shards span{opacity:0;background:#ef4444;animation:1.4s cubic-bezier(.2,.7,.3,1) forwards anim-destroy-shard-fly;position:absolute}@keyframes anim-destroy-shard-fly{0%{opacity:0;transform:translate(0)rotate(0)}35%{opacity:1}to{opacity:0;transform:translate(var(--destroy-shard-x), var(--destroy-shard-y)) rotate(var(--destroy-shard-rotation))}}@keyframes anim-destroy-burst-flash{0%{opacity:0;transform:scale(.4)}30%{opacity:1}to{opacity:0;transform:scale(2.2)}}@keyframes anim-destroy-cross{0%{opacity:0;transform:scale(2.5)}to{opacity:1;transform:scale(1)}}@keyframes anim-destroy-text-in{0%{opacity:0;transform:translate(-50%)rotate(-8deg)scale(2.5)}60%{opacity:1;transform:translate(-50%)rotate(-8deg)scale(.92)}to{opacity:1;transform:translate(-50%)rotate(-8deg)scale(1)}}.anim-turn-banner{z-index:1100;pointer-events:auto;position:fixed;inset:0;overflow:hidden}.anim-turn-banner:before{content:"";background:#06060a8c;animation:1.4s cubic-bezier(.2,.7,.3,1) forwards anim-turn-banner-scrim;position:absolute;inset:0}.anim-turn-banner__slab,.anim-turn-banner__halftone{height:24%;animation:1.4s cubic-bezier(.2,.7,.3,1) forwards anim-turn-banner-slab;position:absolute;top:38%;left:0;right:0;transform:skewY(-4deg)translate(-110%)}.anim-turn-banner__slab{background:#ef4444f0}.anim-turn-banner__halftone{mix-blend-mode:multiply;background-image:radial-gradient(circle at 1.5px 1.5px,#0000004d 1.5px,#0000 2px);background-size:8px 8px}.anim-turn-banner--enemy .anim-turn-banner__slab{background:#0a0a0cf5}.anim-turn-banner__text{opacity:0;flex-direction:column;justify-content:center;align-items:center;height:24%;animation:1.4s cubic-bezier(.2,.7,.3,1) forwards anim-turn-banner-text;display:flex;position:absolute;top:38%;left:0;right:0}.anim-turn-banner__kicker{letter-spacing:.36em;color:#ffffffd1;margin-bottom:6px;font-size:10px;font-weight:700}.anim-turn-banner__text-cn{color:#f5efe2;letter-spacing:.08em;text-shadow:6px 6px #000000d1;font-size:clamp(44px,9vw,92px);font-weight:900;line-height:1}.anim-turn-banner__text-en{letter-spacing:.4em;color:#0c0a08e0;margin-top:8px;font-size:clamp(12px,1.4vw,18px);font-weight:900}.anim-turn-banner--enemy .anim-turn-banner__text-en{color:#ef4444f2}@keyframes anim-turn-banner-scrim{0%{opacity:0}20%{opacity:1}78%{opacity:1}to{opacity:0}}@keyframes anim-turn-banner-slab{0%{transform:skewY(-4deg)translate(-110%)}35%{transform:skewY(-4deg)translate(0)}72%{transform:skewY(-4deg)translate(0)}to{transform:skewY(-4deg)translate(110%)}}@keyframes anim-turn-banner-text{0%{opacity:0;transform:translate(-40px)skew(-10deg)}32%{opacity:1;transform:translate(0)skew(0)}72%{opacity:1;transform:translate(0)skew(0)}to{opacity:0;transform:translate(40px)skew(10deg)}}.anim-banner{z-index:1100;letter-spacing:4px;text-transform:uppercase;color:#fff;text-shadow:0 0 20px #e8a946cc,0 4px 8px #0009;pointer-events:none;--animate-duration:.4s;font-size:28px;font-weight:900;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}.anim-banner--combat{color:#ef4444;text-shadow:0 0 20px #ef4444cc,0 4px 8px #0009}.anim-banner--combat-end{color:var(--p5-accent,#e8a946);font-size:22px}@keyframes match-result-stripes-in{0%{opacity:0;transform:translate(-30%)}to{opacity:.5;transform:translate(0)}}@keyframes match-result-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(0)}50%{opacity:.9;transform:translate(-50%,-50%)scale(1)}to{opacity:.35;transform:translate(-50%,-50%)scale(1.15)}}@keyframes match-result-slab{to{transform:skewY(-3deg)translate(0)}}@keyframes match-result-text-in{0%{opacity:0;transform:translateY(40px)scale(.6)}60%{opacity:1;transform:translateY(0)scale(1.06)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes match-result-confetti{0%{opacity:1;transform:translateY(-10vh)rotate(0)}to{opacity:0;transform:translate(var(--match-confetti-x), 100vh) rotate(var(--match-confetti-rotation))}}@keyframes gb-banner-in{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes gb-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:.25;transform:scale(1.4)}}@keyframes gb-blink{0%,60%{opacity:1}61%,to{opacity:.25}}.anim-equip-flight{pointer-events:none;z-index:1200;position:fixed;inset:0}.anim-equip-card{background:var(--p5-bg);border:2.5px solid var(--p5-highlight);z-index:1210;will-change:transform, opacity;width:86px;height:120px;margin-top:-60px;margin-left:-43px;position:fixed;box-shadow:4px 4px #000,0 0 18px #ffd70040}.anim-equip-card__type{background:var(--p5-highlight);color:#000;letter-spacing:.25em;white-space:nowrap;padding:2px 9px;font-size:9px;font-weight:900;position:absolute;top:-9px;left:50%;transform:translate(-50%)skew(-8deg);box-shadow:2px 2px #000}.anim-equip-card__type>span{display:inline-block;transform:skew(8deg)}.anim-equip-card__art{background:linear-gradient(135deg,#6a4c10 0%,#2a1a08 100%);justify-content:center;align-items:center;display:flex;position:absolute;inset:16px 6px 34px;overflow:hidden}.anim-equip-card__art:after{content:"";background-image:radial-gradient(circle at 1px 1px,#00000059 1px,#0000 1.4px);background-size:5px 5px;position:absolute;inset:0}.anim-equip-card__glyph{color:var(--p5-highlight);text-shadow:2px 2px #000;z-index:1;font-size:30px}.anim-equip-card__name{text-align:center;color:var(--p5-text);text-shadow:1.5px 1.5px #000;font-size:11px;font-weight:900;line-height:1.05;position:absolute;bottom:4px;left:4px;right:4px}.anim-equip-card.is-flying{animation:.55s cubic-bezier(.4,0,.6,1) forwards anim-equip-fly}@keyframes anim-equip-fly{0%{transform:translate(0)rotate(-3deg)scale(1)}60%{transform:translate(calc(var(--eq-fly-dx) * .6), calc(var(--eq-fly-dy) * .6 + 6px)) rotate(8deg) scale(1.04)}to{transform:translate(var(--eq-fly-dx), var(--eq-fly-dy)) rotate(0deg) scale(.6)}}.anim-equip-card.is-collapsing{animation:.4s cubic-bezier(.5,0,.8,.5) forwards anim-equip-collapse}@keyframes anim-equip-collapse{0%{transform:translate(var(--eq-fly-dx), var(--eq-fly-dy)) rotate(0deg) scale(.6);opacity:1}to{transform:translate(var(--eq-fly-dx), var(--eq-fly-dy)) rotate(-14deg) scale(.18);opacity:0}}.anim-equip-impact{z-index:1205;pointer-events:none;width:0;height:0;position:fixed}.anim-equip-impact__ring{border:3px solid var(--p5-highlight);opacity:0;width:0;height:0;position:absolute;top:0;left:0;transform:translate(-50%,-50%)rotate(45deg)}.anim-equip-impact__slab{background:var(--p5-text);opacity:0;width:180px;height:26px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)skew(-18deg)scaleX(0)}.anim-equip-impact__spark{background:var(--p5-highlight);opacity:0;border-radius:50%;width:4px;height:4px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.anim-equip-impact.is-impacting .anim-equip-impact__ring{animation:.55s cubic-bezier(.2,.7,.3,1) forwards anim-equip-ring}.anim-equip-impact.is-impacting .anim-equip-impact__slab{animation:.45s cubic-bezier(.2,.7,.3,1) forwards anim-equip-slab}.anim-equip-impact.is-impacting .anim-equip-impact__spark{animation:.6s cubic-bezier(.3,.7,.3,1) forwards anim-equip-spark}@keyframes anim-equip-ring{0%{opacity:1;border-width:4px;width:0;height:0}to{opacity:0;border-width:1px;width:220px;height:220px}}@keyframes anim-equip-slab{0%{opacity:0;transform:translate(-50%,-50%)skew(-18deg)scaleX(0)}20%{opacity:1}50%{opacity:1;transform:translate(-50%,-50%)skew(-18deg)scaleX(1.2)}to{opacity:0;transform:translate(-50%,-50%)skew(-18deg)scaleX(0)}}@keyframes anim-equip-spark{0%{opacity:1;transform:translate(-50%,-50%)translate(0)}to{transform:translate(-50%, -50%) translate(var(--eq-sx), var(--eq-sy));opacity:0}}.sound-control{align-items:center;gap:8px;width:100%;display:flex}.sound-control__toggle{background:var(--p5-bg-elevated);color:var(--p5-text);cursor:pointer;clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);border:none;flex:none;padding:4px 8px;font-size:14px;line-height:1;transition:background .12s}.sound-control__toggle:hover{background:#3a3a3a}.sound-control input[type=range]{min-width:0;accent-color:var(--p5-accent);cursor:pointer;flex:1}.sound-control input[type=range]:disabled{opacity:.35;cursor:not-allowed}.btn{letter-spacing:1px;text-transform:uppercase;cursor:pointer;clip-path:polygon(4% 0%,100% 0%,96% 100%,0% 100%);border:none;padding:8px 14px;font-size:11px;font-weight:800;transition:all .12s}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:active:not(:disabled){transition:transform 50ms,box-shadow 50ms;transform:translate(1px,1px)scale(.97);box-shadow:0 2px 4px #00000073}.btn--full{width:100%}.btn--primary{background:var(--p5-accent);color:var(--p5-text)}.btn--primary:hover:not(:disabled){background:var(--p5-accent-hover);box-shadow:0 0 12px var(--p5-accent-glow)}.btn--warning{color:var(--p5-text);background:#b88a00}.btn--warning:hover:not(:disabled){background:#d4a000}.btn--secondary{background:var(--p5-bg-elevated);color:var(--p5-text-muted)}.btn--secondary:hover:not(:disabled){color:var(--p5-text);background:#3a3a3a}.btn--danger{background:var(--p5-accent);color:var(--p5-text)}.btn--danger:hover:not(:disabled){background:var(--p5-accent-hover);box-shadow:0 0 12px var(--p5-accent-glow)}.game-toast{background:var(--p5-accent);color:var(--p5-text);letter-spacing:2px;text-transform:uppercase;box-shadow:0 4px 24px var(--p5-accent-glow), 4px 4px 0 var(--p5-bg-deep);z-index:1000;clip-path:polygon(3% 0%,100% 0%,97% 100%,0% 100%);padding:14px 32px;font-size:14px;font-weight:800;animation:2s ease-in-out toast-fade;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)skew(-4deg)}.event-log-panel{background:var(--p5-bg);border-left:2px solid var(--p5-accent);z-index:900;flex-direction:column;width:280px;height:100vh;display:flex;position:fixed;top:0;right:0}.event-log-panel__header{color:var(--p5-text);text-transform:uppercase;letter-spacing:2px;border-bottom:2px solid var(--p5-accent);background:var(--p5-bg-elevated);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;font-weight:800;display:flex}.event-log-panel__close{color:var(--p5-text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.event-log-panel__close:hover{color:var(--p5-accent)}.event-log-panel__summary{border-bottom:2px solid var(--p5-accent);background:var(--p5-bg-elevated);flex-direction:column;flex-shrink:0;gap:4px;padding:10px 16px;display:flex}.event-log-panel__summary-row{color:var(--p5-text-muted);justify-content:space-between;align-items:baseline;font-size:11px;display:flex}.event-log-panel__summary-label{text-transform:uppercase;letter-spacing:1px;color:var(--p5-text-dim);font-weight:700}.event-log-panel__summary-value{color:var(--p5-text);font-family:monospace;font-size:11px}.event-log-panel__export{background:var(--p5-accent);color:var(--p5-bg);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;margin-top:6px;padding:6px 10px;font-size:11px;font-weight:700;transition:opacity .1s}.event-log-panel__export:hover:not(:disabled){opacity:.85}.event-log-panel__export:disabled{opacity:.4;cursor:not-allowed}.event-log-panel__export-hint{color:var(--p5-text-dim);margin-top:4px;font-family:monospace;font-size:10px}.event-log-panel__rollback-section{flex:1;padding:10px 16px;overflow-y:auto}.event-log-panel__section-title{color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-size:11px;font-weight:700}.event-log-panel__turn-list{flex-wrap:wrap;gap:6px;display:flex}.event-log-panel__turn-btn{background:var(--p5-bg-elevated);color:var(--p5-text);border:1px solid var(--p5-accent);cursor:pointer;padding:6px 10px;font-family:monospace;font-size:11px;font-weight:700;transition:background .1s,color .1s}.event-log-panel__turn-btn:hover{background:var(--p5-accent);color:var(--p5-bg)}.event-log-panel__empty{text-align:center;color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:1px;padding:24px 16px;font-size:12px;font-weight:700}.match-result-overlay{z-index:1001;background:#0c0a08;position:fixed;inset:0;overflow:hidden}.match-result-overlay__stripes{opacity:0;background-image:repeating-linear-gradient(-28deg,#ef4444 0 60px,#b91710 60px 64px,#ef4444 64px 124px,#0c0a08 124px 132px);animation:.9s cubic-bezier(.2,.7,.3,1) .15s forwards match-result-stripes-in;position:absolute;inset:-10%;transform:translate(-30%)}.match-result-overlay__burst{mix-blend-mode:screen;opacity:0;background:radial-gradient(circle,#f3c41a 0%,#ef4444 35%,#0000 70%);width:600px;height:600px;animation:.9s cubic-bezier(.2,.7,.3,1) .35s forwards match-result-burst;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.match-result-overlay__halftone{background-image:radial-gradient(circle at 1.5px 1.5px,#0006 1.5px,#0000 2.2px);background-size:7px 7px;position:absolute;inset:0}.match-result-overlay__slab{background:#08070af5;height:40%;animation:.8s cubic-bezier(.2,.7,.3,1) .6s forwards match-result-slab;position:absolute;top:30%;left:0;right:0;transform:skewY(-3deg)translate(-110%)}.match-result-overlay__text{opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:40%;animation:.8s cubic-bezier(.2,.84,.3,1.2) 1s forwards match-result-text-in;display:flex;position:absolute;top:30%;left:0;right:0}.match-result-overlay__label{letter-spacing:.5em;color:#ef4444;font-family:JetBrains Mono,monospace;font-size:14px}.match-result-overlay__title-cn{color:#f5efe2;letter-spacing:.15em;text-shadow:8px 8px #ef4444;font-size:clamp(60px,11vw,140px);font-weight:900;line-height:1}.match-result-overlay__title-en{letter-spacing:.6em;color:#f5efe2;background:#ef4444;padding:4px 18px;font-size:clamp(14px,1.5vw,22px);font-weight:900;transform:skew(-6deg);box-shadow:3px 3px #f5efe2}.match-result-overlay__title-en>span{display:inline-block;transform:skew(6deg)}.match-result-overlay--defeat .match-result-overlay__stripes{background-image:repeating-linear-gradient(-28deg,#20232b 0 60px,#31353d 60px 64px,#20232b 64px 124px,#0c0a08 124px 132px)}.match-result-overlay--defeat .match-result-overlay__burst{background:radial-gradient(circle,#f5efe2b3 0%,#475569e6 35%,#0000 70%)}.match-result-overlay--defeat .match-result-overlay__label,.match-result-overlay--defeat .match-result-overlay__summary{color:#f5efe2b8}.match-result-overlay--defeat .match-result-overlay__title-cn{text-shadow:8px 8px #475569e6}.match-result-overlay--defeat .match-result-overlay__title-en{background:#475569f2;box-shadow:3px 3px #f5efe2b3}.match-result-overlay__confetti{pointer-events:none;position:absolute;inset:0}.match-result-overlay__confetti span{opacity:0;width:8px;height:12px;animation:2.5s linear 1.3s forwards match-result-confetti;position:absolute}.match-result-overlay__hud{color:#f5efe2;text-align:center;z-index:2;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;bottom:8vh;left:50%;transform:translate(-50%)}.match-result-overlay__scores{letter-spacing:.08em;text-shadow:3px 3px #000000e6;font-size:18px;font-weight:900}.match-result-overlay__summary{letter-spacing:.16em;color:#f3c41a;font-size:15px}.match-result-overlay__action{color:#f5efe2;letter-spacing:.18em;cursor:pointer;background:#ef4444;border:2px solid #ef4444;min-width:180px;padding:12px 20px;font-size:16px;font-weight:900;transform:skew(-6deg);box-shadow:4px 4px #f5efe2}.match-result-overlay__action:hover{transform:skew(-6deg)translate(-1px,-1px)}.match-result-overlay__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.match-result-overlay__action--secondary{color:#f5efe2;background:0 0;border-color:#f5efe2b3}.match-result-overlay__action--secondary:hover{background:#f5efe21f}.match-result-overlay--defeat .match-result-overlay__action{background:#475569f2;border-color:#475569f2}.match-result-overlay--defeat .match-result-overlay__action--secondary{background:0 0;border-color:#f5efe2b3}.match-result-overlay__export-hint{text-align:center;color:#f5efe2d9;margin-top:12px;font-size:13px}.game-board__resolution-area{z-index:140;min-height:214px;box-shadow:none;pointer-events:none;background:0 0;border:none;padding:28px 28px 44px;position:fixed;top:52%;left:0;right:111px;overflow:visible;transform:translateY(-50%)}.game-board__resolution-area--drag-hidden{opacity:0;pointer-events:none;transition:opacity .12s ease-out}.game-board__resolution-scrim{clip-path:inset(50%);background:linear-gradient(#070503f0 0%,#070503d6 50%,#070503f0 100%),repeating-linear-gradient(45deg,#e8281c0f 0 12px,#0000 12px 24px);transition:clip-path .55s cubic-bezier(.2,.7,.3,1);position:absolute;inset:0}.game-board__resolution-scrim:after{content:"";pointer-events:none;background-image:radial-gradient(circle at 1px 1px,#f5efe20d 1px,#0000 1.6px);background-size:6px 6px;position:absolute;inset:0}.game-board__resolution-frame{border-top:2px solid var(--p5-accent,#e8001c);border-bottom:2px solid var(--p5-accent,#e8001c);clip-path:inset(50%);pointer-events:none;transition:clip-path .55s cubic-bezier(.2,.7,.3,1);position:absolute;inset:0;box-shadow:inset 0 0 30px #e8281c2e,0 0 24px #e8281c66}.game-board__resolution-tag{background:var(--p5-accent,#e8001c);color:#f5efe2;letter-spacing:.25em;opacity:0;white-space:nowrap;z-index:8;cursor:pointer;pointer-events:auto;align-items:center;gap:6px;padding:4px 14px 5px;font-size:11px;font-weight:800;transition:background .15s;display:flex;position:absolute;top:-2px;left:50%;transform:translate(-50%,-100%);box-shadow:3px 3px #0c0a08e6,0 0 24px #e8001c80,0 4px 16px #0009}.game-board__resolution-tag:hover{background:#ff1a33}.game-board__resolution-tag-en{letter-spacing:.3em;opacity:.75;margin-left:8px;font-family:JetBrains Mono,monospace;font-size:9px}.game-board__resolution-tag-collapse{opacity:.7;margin-left:6px;font-size:10px}.game-board__resolution-opponent-status{letter-spacing:.15em;color:var(--p5-accent,#e8001c);white-space:nowrap;z-index:9;font-size:12px;animation:1.5s ease-in-out infinite pulse-opacity;position:absolute;top:6px;left:50%;transform:translate(-50%)}.game-board__resolution-collapsed{z-index:140;background:var(--p5-accent,#e8001c);color:#f5efe2;letter-spacing:.2em;cursor:pointer;pointer-events:auto;white-space:nowrap;align-items:center;gap:12px;padding:6px 18px;font-size:12px;font-weight:800;transition:background .15s;animation:.25s cubic-bezier(.2,.7,.3,1) resolution-collapsed-in;display:flex;position:fixed;top:52%;right:132px;transform:translateY(-50%);box-shadow:-3px 3px #0c0a08e6,0 0 24px #e8001c80,-4px 4px 16px #0009}.game-board__resolution-collapsed:hover{background:#ff1a33}.game-board__resolution-collapsed-text{letter-spacing:.25em}.game-board__resolution-collapsed-status{opacity:.8;letter-spacing:.15em;font-size:10px;animation:1.5s ease-in-out infinite pulse-opacity}.game-board__resolution-collapsed-arrow{opacity:.7;font-size:10px}.game-board__resolution-content{opacity:0;transition:opacity .2s;position:relative}.game-board__resolution-area--armed .game-board__resolution-scrim,.game-board__resolution-area--armed .game-board__resolution-frame{clip-path:inset(0 50%)}.game-board__resolution-area--open .game-board__resolution-scrim,.game-board__resolution-area--open .game-board__resolution-frame{clip-path:inset(0)}.game-board__resolution-area--open .game-board__resolution-tag{animation:.35s cubic-bezier(.2,.7,.3,1) .55s forwards resolution-tag-in}.game-board__resolution-area--open .game-board__resolution-content{opacity:1;transition:opacity .25s .85s}.game-board__resolution-area--closing .game-board__resolution-scrim,.game-board__resolution-area--closing .game-board__resolution-frame{clip-path:inset(50%);transition:clip-path .4s cubic-bezier(.6,0,.8,.4)}.game-board__resolution-area--closing .game-board__resolution-tag,.game-board__resolution-area--closing .game-board__resolution-content{opacity:0;transition:opacity .15s}.game-board__resolution-area.is-bumping{animation:.3s cubic-bezier(.22,.61,.36,1) resolution-area-bump}.game-board__resolution-label{color:var(--p5-accent);letter-spacing:3px;text-transform:uppercase;white-space:nowrap;pointer-events:none;margin-top:10px;font-size:11px;font-weight:900;position:absolute;top:100%;bottom:auto;left:50%;transform:translate(-50%)}.game-board__resolution-cards{justify-content:center;align-items:center;min-height:140px;display:flex;position:relative}.game-board__resolution-stack{width:min(100%,680px);height:140px;position:relative}.game-board__resolution-stack-label{white-space:nowrap;letter-spacing:.26em;color:#f5efe299;align-items:baseline;gap:8px;font-size:10px;display:flex;position:absolute;top:-28px;left:50%;transform:translate(-50%)}.game-board__resolution-stack-label-prefix,.game-board__resolution-stack-label-suffix{font-family:JetBrains Mono,monospace}.game-board__resolution-stack-label-count{color:#f5efe2;letter-spacing:.06em;font-size:16px;font-weight:900}.game-board__resolution-stack-flow{background:linear-gradient(270deg,#0000 0%,#ef444461 30%,#ef4444e6 100%);height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.game-board__resolution-stack-flow:after{content:"";border-top:6px solid #0000;border-bottom:6px solid #0000;border-right:10px solid #ef4444e6;width:0;height:0;position:absolute;top:50%;left:-1px;transform:translateY(-50%)}.game-board__resolution-stack-flow-label{letter-spacing:.22em;color:#ef4444e0;font-family:JetBrains Mono,monospace;font-size:10px;position:absolute;top:calc(50% + 10px);left:0}.game-board__resolution-stack-base{opacity:.55;background:repeating-linear-gradient(-45deg,#ef4444b8 0 4px,#0000 4px 9px);height:10px;position:absolute;bottom:8px;left:0;right:0}.game-board__resolution-stack-cards{position:absolute;inset:0}.game-board__resolution-slot{transform-origin:50%;transition:transform .45s cubic-bezier(.2,.7,.3,1);position:absolute;top:50%;left:50%}.game-board__resolution-slot-inner{position:relative}.game-board__resolution-order{color:#111;letter-spacing:.12em;white-space:nowrap;z-index:2;background:#f5efe2;padding:2px 8px;font-size:10px;font-weight:900;position:absolute;top:-12px;left:50%;transform:translate(-50%);box-shadow:2px 2px #000000e6}.game-board__resolution-order--top{color:#f5efe2;background:#ef4444f2}.game-board__resolution-next{color:#f5efe2;letter-spacing:.2em;white-space:nowrap;background:#ef4444f2;padding:2px 10px;font-family:JetBrains Mono,monospace;font-size:9px;position:absolute;bottom:-24px;left:50%;transform:translate(-50%);box-shadow:2px 2px #000000e6}.game-board__resolution-entry{border-radius:6px;transition:opacity .4s ease-out,filter .4s ease-out,transform .4s ease-out;position:relative}.game-board__resolution-entry .card{cursor:default}.game-board__resolution-hint{text-align:center;min-height:108px;color:var(--p5-text-muted,#888);letter-spacing:.08em;justify-content:center;align-items:center;padding:0 8px;font-size:12px;display:flex}.game-board__resolution-hint--opponent{color:var(--p5-accent,#e8a946);animation:1.5s ease-in-out infinite pulse-opacity;position:absolute;bottom:12px;left:18px}.game-board__resolution-entry--resolving{outline-offset:2px;border-radius:6px;outline:2px solid #60a5fa;animation:.8s ease-in-out infinite resolving-pulse}.game-board__resolution-entry--resolved{opacity:0;filter:grayscale()brightness(.45);transform:scale(.42)translateY(28px)}.game-board__resolution-lines{z-index:170;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.game-board__resolution-arc{animation:.8s linear infinite resolution-arc-flow}.game-board__resolution-arc-glow{opacity:.9}.game-board__resolution-arc--active,.game-board__resolution-arc-glow--active,.game-board__resolution-arc-dot--active{filter:drop-shadow(0 0 8px #ffffff59)}.game-board__resolution-arc-dot{opacity:.95}.game-board__resolution-entry--opponent{outline:2px solid var(--p5-accent);outline-offset:2px;border-radius:4px}.game-board__resolution-entry--opponent.game-board__resolution-entry--resolving{outline-color:var(--p5-accent);animation:.8s ease-in-out infinite resolving-pulse-opponent}.game-board__resolution-pass{color:#fff;letter-spacing:.12em;cursor:pointer;pointer-events:auto;background:#ef4444e6;border:2px solid #ef4444d1;justify-content:center;align-items:center;width:84px;height:42px;font-size:13px;font-weight:800;transition:transform .15s,background .15s,border-color .15s;display:flex;position:absolute;bottom:12px;right:18px;transform:skew(-6deg);box-shadow:4px 4px #f5efe2e6}.game-board__resolution-pass:hover{background:#ef4444;border-color:#fff;transform:skew(-6deg)translate(-1px,-1px)}.visual-test-bar{z-index:300;border-top:2px solid var(--p5-accent);background:#000000eb;align-items:center;gap:12px;padding:8px 16px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #0009}.visual-test-bar__back{flex-shrink:0;font-size:12px}.visual-test-bar__info{color:var(--p5-text);letter-spacing:1px;white-space:nowrap;font-size:13px;font-weight:800}.visual-test-bar__progress{color:var(--p5-accent);white-space:nowrap;font-size:12px;font-weight:700}.visual-test-bar__label{color:var(--p5-text-muted,#888);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.game-container--replay{--replay-bar-h:72px}.replay-bar{z-index:1100;border-top:2px solid var(--p5-accent);background:#000000eb;flex-direction:column;gap:6px;padding:8px 200px 10px 16px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #0009}.replay-bar__scrub{align-items:center;gap:12px;display:flex}.replay-bar__track{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex;position:relative}.replay-bar__label{letter-spacing:1px;color:var(--p5-accent);white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:800}.replay-bar__range{width:100%;accent-color:var(--p5-accent);cursor:pointer;margin:0;display:block}.replay-bar__num{width:72px;color:var(--p5-text);background:#ffffff0f;border:1px solid #f5efe240;flex-shrink:0;padding:2px 6px;font-size:12px}.replay-bar__count{color:var(--p5-text);white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:700}.replay-bar__turnband{gap:1px;width:100%;height:16px;display:flex;overflow:hidden}.replay-seg{cursor:pointer;letter-spacing:.3px;color:#0c0a08d9;white-space:nowrap;border:none;flex:none;justify-content:center;align-items:center;min-width:0;padding:0 2px;font-size:10px;font-weight:800;transition:filter .1s,box-shadow .1s;display:flex;overflow:hidden}.replay-seg:hover{filter:brightness(1.25)}.replay-seg--setup{background:#a0988a8c}.replay-seg--p1{background:#5698dec7}.replay-seg--p2{background:#d65c5cd1}.replay-seg--active{filter:brightness(1.35);box-shadow:0 0 0 2px var(--p5-accent) inset;color:#0c0a08}.replay-seg__label{text-overflow:ellipsis;overflow:hidden}.replay-seg__player{opacity:.8}.replay-bar__event-seq{opacity:.65;font-weight:700}.replay-bar__event-type{font-weight:600}.deck-builder{--p5-red:var(--p5-accent);--p5-red-glow:var(--p5-accent-glow);--p5-black:var(--p5-bg-deep);--p5-black-light:var(--p5-bg);--p5-black-mid:var(--p5-bg-elevated);--p5-white:var(--p5-text);--p5-gray:var(--p5-text-muted);--p5-gray-dark:var(--p5-text-dim);--p5-yellow:var(--p5-highlight);background:var(--p5-black);height:100vh;color:var(--p5-white);font-family:var(--p5-font);background-image:repeating-linear-gradient(135deg,#0000,#0000 40px,#e8001c08 40px 41px);flex-direction:column;display:flex;overflow:hidden}.deck-builder-header{background:var(--p5-red);z-index:10;align-items:center;gap:16px;padding:14px 32px;display:flex;position:relative;overflow:hidden}.deck-builder-back{flex-shrink:0}.deck-builder-name-input{margin-left:auto}.deck-name-field{color:var(--p5-white);clip-path:polygon(3% 0%,100% 0%,97% 100%,0% 100%);background:#0000004d;border:2px solid #ffffff4d;outline:none;width:200px;padding:5px 14px;font-size:14px;font-weight:700;transition:border-color .15s}.deck-name-field:focus{border-color:var(--p5-white)}.deck-name-field::placeholder{color:#ffffff80}.deck-builder-header:after{content:"";background:var(--p5-red);width:110%;height:24px;transform:skewY(var(--p5-skew));z-index:-1;position:absolute;bottom:-12px;left:-5%}.deck-builder-header h1{letter-spacing:4px;text-transform:uppercase;color:var(--p5-white);text-shadow:3px 3px #00000080;margin:0;font-size:28px;font-weight:900;transform:skew(-4deg)}.deck-builder-body{scrollbar-width:thin;scrollbar-color:var(--p5-red) var(--p5-black-light);flex:1;padding:28px 32px 16px;overflow-y:auto}.deck-builder-body::-webkit-scrollbar{width:6px}.deck-builder-body::-webkit-scrollbar-track{background:var(--p5-black-light)}.deck-builder-body::-webkit-scrollbar-thumb{background:var(--p5-red)}.deck-builder-footer{background:var(--p5-black-light);border-top:3px solid var(--p5-red);justify-content:space-between;align-items:center;padding:14px 32px;display:flex;position:relative}.footer-info{text-align:center;flex:1}.footer-legend{color:var(--p5-gray);letter-spacing:1px;text-transform:uppercase;font-size:13px;font-weight:700}.footer-error{color:var(--p5-red,#e8001c);font-size:12px;font-weight:700}.footer-actions{gap:8px;display:flex}.btn{letter-spacing:2px;text-transform:uppercase;cursor:pointer;clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);border:none;padding:10px 28px;font-size:14px;font-weight:800;transition:all .12s;position:relative;transform:skew(-6deg)}.btn:disabled{opacity:.3;cursor:not-allowed;transform:skew(-6deg)}.btn-primary{background:var(--p5-red);color:var(--p5-white)}.btn-primary:hover:not(:disabled){background:var(--p5-accent-hover);box-shadow:0 0 20px var(--p5-red-glow);transform:skew(-6deg)scale(1.04)}.btn-secondary{background:var(--p5-black-mid);color:var(--p5-white)}.btn-secondary:hover:not(:disabled){background:var(--p5-black-mid);transform:skew(-6deg)scale(1.04)}.step-bar{background:var(--p5-black);gap:2px;padding:16px 32px 0;display:flex}.step-item{letter-spacing:1px;text-transform:uppercase;color:var(--p5-gray-dark);background:var(--p5-black-light);clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-weight:700;transition:all .15s;display:flex}.step-item.active{background:var(--p5-red);color:var(--p5-white);transform:skew(-2deg)}.step-item.completed{color:var(--p5-white);background:var(--p5-black-mid)}.step-item.clickable{cursor:pointer}.step-item.clickable:hover{background:var(--p5-black-mid);color:var(--p5-white)}.step-number{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);background:0 0;border:2px solid;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:900;display:flex}.step-item.active .step-number{background:var(--p5-white);color:var(--p5-red);border-color:var(--p5-white)}.step-item.completed .step-number{background:var(--p5-red);border-color:var(--p5-red);color:var(--p5-white)}.step-label{transform:skew(-2deg)}.step-content{animation-duration:.25s}.step-instruction{border-left:4px solid var(--p5-red);margin-bottom:20px;padding-left:12px}.step-instruction h2{letter-spacing:2px;text-transform:uppercase;color:var(--p5-white);margin:0 0 6px;font-size:22px;font-weight:900;transform:skew(-2deg)}.step-instruction p{color:var(--p5-gray);margin:0 0 4px;font-size:13px;font-weight:500}.step-hint{color:var(--p5-gray-dark)!important;font-size:11px!important}.step-loading{height:200px;color:var(--p5-red);letter-spacing:4px;text-transform:uppercase;justify-content:center;align-items:center;font-size:18px;font-weight:700;animation:1s ease-in-out infinite p5-pulse;display:flex}@keyframes p5-pulse{0%,to{opacity:.5}50%{opacity:1}}.step-empty{text-align:center;color:var(--p5-gray-dark);text-transform:uppercase;letter-spacing:2px;padding:60px;font-size:16px;font-weight:700}.step-with-sidebar{gap:20px;display:flex}.step-main{flex:1;min-width:0}.card-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.card-grid--rotated{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:24px 12px;padding:16px 0}.card-grid--rotated .card-grid-item{aspect-ratio:4.2/3}.card-grid--rotated .card-thumbnail{transform-origin:50%;object-fit:contain;width:100%;height:100%;transform:rotate(-90deg)}.card-grid-item{cursor:pointer;aspect-ratio:3/4.2;clip-path:polygon(4% 0%,100% 0%,96% 100%,0% 100%);border:2px solid #0000;transition:all .12s;position:relative;overflow:hidden}.card-grid-item:hover{border-color:var(--p5-red);transform:translateY(-4px)scale(1.02);box-shadow:0 8px 24px #e8001c40}.card-grid-item.selected{border-color:var(--p5-red);box-shadow:0 0 0 2px var(--p5-red), 0 0 20px var(--p5-red-glow), inset 0 0 20px #e8001c26;transform:translateY(-22px)}.card-grid-item.selected:before{content:"✓";background:var(--p5-red);color:#fff;border:2px solid #fff;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;font-weight:900;animation:.3s cubic-bezier(.2,.84,.3,1.4) forwards p5-selected-badge;display:flex;position:absolute;top:-12px;right:-12px;transform:scale(0)rotate(-12deg);box-shadow:2px 2px #000000e6}.card-grid-item.selected:after{content:"";border:2px solid var(--p5-red);pointer-events:none;animation:1.5s ease-in-out infinite p5-selected-pulse;position:absolute;inset:0}@keyframes p5-selected-badge{to{transform:scale(1)rotate(-8deg)}}@keyframes p5-selected-pulse{0%,to{box-shadow:inset 0 0 10px var(--p5-red-glow)}50%{box-shadow:inset 0 0 30px var(--p5-red-glow)}}.card-grid-item.disabled{opacity:.25;cursor:not-allowed;filter:grayscale(.8)}.card-grid-item.disabled:hover{box-shadow:none;border-color:#0000;transform:none}.card-thumbnail{object-fit:cover;width:100%;height:100%;display:block}.card-placeholder{background:var(--p5-black-mid);color:var(--p5-gray);text-align:center;justify-content:center;align-items:center;padding:8px;font-size:12px;font-weight:700;display:flex}.card-badges{gap:3px;display:flex;position:absolute;bottom:4px;left:4px}.badge{clip-path:polygon(10% 0%,100% 0%,90% 100%,0% 100%);padding:2px 7px;font-size:11px;font-weight:900}.badge-cost{background:var(--p5-black);color:var(--p5-white);border:1px solid var(--p5-white)}.badge-power{background:var(--p5-red);color:var(--p5-white)}.badge-count{background:var(--p5-red);color:var(--p5-white);padding:2px 8px;font-size:12px}.badge-remove{background:var(--p5-bg-deep,#0a0a0a);color:var(--p5-white,#f5f5f0);cursor:pointer;clip-path:none;border:1px solid #ffffff4d;border-radius:2px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:16px;font-weight:900;line-height:1;transition:all .1s;display:flex}.badge-remove:hover{background:var(--p5-red,#e8001c);border-color:var(--p5-red,#e8001c)}.exclusive-section,.normal-section{margin-bottom:20px}.exclusive-section__header,.normal-section__header{border-bottom:2px solid var(--p5-red);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.exclusive-section__title{letter-spacing:2px;text-transform:uppercase;color:var(--p5-yellow);transform:skewX(var(--p5-skew));font-size:14px;font-weight:900}.exclusive-section__count{color:var(--p5-gray);font-size:12px;font-weight:700}.normal-section__title{letter-spacing:2px;text-transform:uppercase;color:var(--p5-white);transform:skewX(var(--p5-skew));font-size:14px;font-weight:900}.card-preview-overlay{z-index:1000;background:#000000d9 repeating-linear-gradient(45deg,#0000,#0000 60px,#e8001c0d 60px 61px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.card-preview{background:var(--p5-black-light);border:3px solid var(--p5-red);clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);gap:24px;max-width:640px;max-height:80vh;padding:24px;display:flex;position:relative}.card-preview-image{object-fit:contain;clip-path:polygon(3% 0%,100% 0%,97% 100%,0% 100%);width:240px}.card-preview-placeholder{background:var(--p5-black-mid);width:240px;height:340px;color:var(--p5-gray);justify-content:center;align-items:center;font-weight:700;display:flex}.card-preview-info{flex:1;overflow-y:auto}.card-preview-info h3{letter-spacing:1px;color:var(--p5-white);border-bottom:2px solid var(--p5-red);margin:0 0 10px;padding-bottom:8px;font-size:20px;font-weight:900}.preview-hero{color:var(--p5-yellow);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-size:13px;font-weight:700}.preview-factions{gap:6px;margin-bottom:10px;display:flex}.preview-description{color:var(--p5-gray);white-space:pre-wrap;border-left:3px solid var(--p5-red);background:#ffffff0a;margin-top:14px;padding:10px;font-size:13px;line-height:1.7}.preview-tags{gap:6px;margin-top:14px;display:flex}.tag{background:var(--p5-black-mid);color:var(--p5-gray);text-transform:uppercase;letter-spacing:.5px;clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);padding:3px 10px;font-size:11px;font-weight:700}.preview-close{background:var(--p5-red);width:32px;height:32px;color:var(--p5-white);cursor:pointer;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);border:none;justify-content:center;align-items:center;font-size:16px;font-weight:900;transition:all .12s;display:flex;position:absolute;top:10px;right:10px}.preview-close:hover{background:var(--p5-accent-hover);transform:scale(1.15)rotate(90deg)}.preview-visual-tests{border-top:1px solid #ffffff26;margin-top:12px;padding-top:10px;padding-left:20px}.preview-visual-tests__title{text-transform:uppercase;letter-spacing:1px;color:var(--p5-accent,#e8001c);margin-bottom:8px;font-size:12px;font-weight:800}.preview-visual-tests__btn{text-align:left;width:90%;margin-bottom:6px;padding:6px 30px;font-size:12px;display:block}.preview-visual-tests__desc{opacity:.7;margin-top:2px;font-size:10px;font-weight:400;display:block}.faction-tag{letter-spacing:.5px;text-transform:uppercase;clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);padding:3px 10px;font-size:11px;font-weight:800}.faction-red{background:var(--p5-red);color:var(--p5-white)}.faction-blue{color:var(--p5-white);background:#1a5fff}.faction-green{color:var(--p5-white);background:#1a8a3a}.faction-yellow{color:var(--p5-white);background:#b88a00}.faction-orange{color:var(--p5-white);background:#d05a10}.faction-purple{color:var(--p5-white);background:#7a3ab5}.deck-list{background:var(--p5-black-light);border:2px solid var(--p5-red);clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);flex-direction:column;flex-shrink:0;align-self:flex-start;width:270px;max-height:calc(100vh - 220px);display:flex;position:sticky;top:0}.deck-list-header{background:var(--p5-red);letter-spacing:2px;text-transform:uppercase;justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;font-weight:800;display:flex}.deck-count{color:var(--p5-white);font-size:14px;font-weight:900}.deck-list-content{scrollbar-width:thin;scrollbar-color:var(--p5-red) var(--p5-black);flex:1;padding:8px 10px;overflow-y:auto}.deck-group{margin-bottom:10px}.deck-group-title{text-transform:uppercase;color:var(--p5-red);letter-spacing:2px;border-bottom:1px solid var(--p5-black-mid);margin-bottom:4px;padding:4px 6px;font-size:10px;font-weight:800}.deck-list-item{border-left:2px solid #0000;align-items:center;gap:6px;padding:5px 8px;font-size:13px;font-weight:600;transition:all .1s;display:flex}.deck-list-item:hover{background:var(--p5-black-mid);border-left-color:var(--p5-red)}.deck-list-thumb{object-fit:cover;clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);width:26px;height:26px}.deck-list-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.deck-list-count{color:var(--p5-red);font-size:12px;font-weight:900}.deck-list-cost{color:var(--p5-gray);background:var(--p5-black);clip-path:polygon(10% 0%,100% 0%,90% 100%,0% 100%);padding:2px 6px;font-size:10px;font-weight:800}.deck-list-remove{color:var(--p5-red);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 4px;font-size:18px;font-weight:900;line-height:1;transition:opacity .1s}.deck-list-item:hover .deck-list-remove{opacity:1}.filter-bar{border-bottom:2px solid var(--p5-black-mid);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:14px;display:flex}.filter-group{gap:3px;display:flex}.filter-btn{border:2px solid var(--p5-black-mid);background:var(--p5-black-light);color:var(--p5-gray);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);padding:5px 12px;font-size:11px;font-weight:700;transition:all .1s}.filter-btn:hover{background:var(--p5-black-mid);color:var(--p5-white);border-color:var(--p5-gray-dark)}.filter-btn.active{background:var(--p5-red);color:var(--p5-white);border-color:var(--p5-red)}.filter-cost{text-align:center;min-width:30px}.filter-search{border:2px solid var(--p5-black-mid);background:var(--p5-black);color:var(--p5-white);clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);outline:none;width:180px;padding:5px 12px;font-size:13px;font-weight:600;transition:border-color .15s}.filter-search:focus{border-color:var(--p5-red)}.filter-search::placeholder{color:var(--p5-gray-dark);font-weight:600}.card-search-bar{margin-bottom:12px;display:flex}.card-search-bar .filter-search{width:240px}.rune-config{justify-content:center;align-items:center;gap:50px;padding:50px 0;display:flex}.rune-color-section{background:var(--p5-black-light);border:2px solid var(--p5-black-mid);clip-path:polygon(3% 0%,100% 0%,97% 100%,0% 100%);flex-direction:column;align-items:center;gap:20px;padding:24px;transition:border-color .2s;display:flex}.rune-color-section:hover{border-color:var(--p5-red)}.rune-color-header{text-transform:uppercase;letter-spacing:2px;font-size:16px;font-weight:800}.rune-preview-img{clip-path:polygon(4% 0%,100% 0%,96% 100%,0% 100%);width:130px}.rune-counter{align-items:center;gap:20px;display:flex}.rune-btn{border:2px solid var(--p5-red);background:var(--p5-black);width:40px;height:40px;color:var(--p5-white);cursor:pointer;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);justify-content:center;align-items:center;font-size:20px;font-weight:900;transition:all .12s;display:flex}.rune-btn:hover:not(:disabled){background:var(--p5-red);transform:scale(1.1)}.rune-btn:disabled{opacity:.2;cursor:not-allowed}.rune-count{text-align:center;min-width:50px;color:var(--p5-white);text-shadow:2px 2px 0 var(--p5-red);font-size:36px;font-weight:900}.rune-divider{flex-direction:column;align-items:center;gap:8px;display:flex}.rune-total{color:var(--p5-gray);text-transform:uppercase;letter-spacing:2px;transform:skewX(var(--p5-skew));font-size:14px;font-weight:700}.hero-slot-section{margin-bottom:20px}.hero-slot-section__header{border-bottom:2px solid var(--p5-yellow);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.hero-slot-section__title{letter-spacing:2px;text-transform:uppercase;color:var(--p5-yellow);transform:skewX(var(--p5-skew));font-size:14px;font-weight:900}.hero-slot-section__hint{color:var(--p5-gray);font-size:11px;font-weight:600}.hero-slot{background:var(--p5-black-light);border:2px solid var(--p5-yellow);clip-path:polygon(1.5% 0%,100% 0%,98.5% 100%,0% 100%);align-items:center;gap:14px;padding:10px 14px;display:flex}.hero-slot--empty{color:var(--p5-gray-dark);letter-spacing:1px;border-color:var(--p5-black-mid);font-size:13px;font-weight:700}.hero-slot__thumb{object-fit:cover;clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);flex-shrink:0;width:44px;height:60px}.hero-slot__thumb--placeholder{background:var(--p5-black-mid);text-align:center;justify-content:center;align-items:center;padding:2px;font-size:10px;display:flex}.hero-slot__info{flex-direction:column;gap:4px;display:flex}.hero-slot__name{color:var(--p5-white);font-size:15px;font-weight:800}.hero-slot__badge{color:var(--p5-yellow);letter-spacing:1px;font-size:11px;font-weight:800}.deck-list-locked{opacity:.85;font-size:12px;line-height:1}.settings-modal__overlay{z-index:1000;background:#000c repeating-linear-gradient(45deg,#0000,#0000 60px,#e8001c08 60px 61px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal{background:var(--p5-bg);border:2px solid var(--p5-accent);width:480px;max-width:90vw;box-shadow:0 8px 32px #0009, 0 0 20px var(--p5-accent-glow);clip-path:polygon(2% 0%,100% 0%,98% 100%,0% 100%);padding:28px}.settings-modal__title{color:var(--p5-text);text-transform:uppercase;letter-spacing:2px;border-bottom:2px solid var(--p5-accent);margin:0 0 20px;padding-bottom:10px;font-size:18px;font-weight:800}.settings-modal__body{flex-direction:column;gap:20px;margin-bottom:24px;display:flex}.settings-modal__toggle{cursor:pointer;background:#ffffff05;border:1px solid #ffffff1a;align-items:flex-start;gap:14px;padding:12px;transition:background .15s,border-color .15s;display:flex}.settings-modal__toggle:hover{border-color:var(--p5-accent);background:#e8001c0f}.settings-modal__toggle input[type=checkbox]{cursor:pointer;width:20px;height:20px;accent-color:var(--p5-accent);flex-shrink:0;margin-top:2px}.settings-modal__toggle-text{flex-direction:column;flex:1;gap:4px;display:flex}.settings-modal__toggle-label{color:var(--p5-text);letter-spacing:.5px;font-size:14px;font-weight:700}.settings-modal__toggle-hint{color:var(--p5-text-muted);font-size:12px;line-height:1.5}.settings-modal__field{background:#ffffff05;border:1px solid #ffffff1a;flex-direction:column;gap:8px;padding:12px;display:flex}.settings-modal__difficulty{gap:8px;display:flex}.settings-modal__difficulty-btn{letter-spacing:1px;color:var(--p5-text-muted);cursor:pointer;background:#ffffff08;border:1px solid #ffffff1f;flex:1;padding:8px 0;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.settings-modal__difficulty-btn:hover{border-color:var(--p5-accent);color:var(--p5-text);background:#e8001c0f}.settings-modal__difficulty-btn--active{color:var(--p5-text);background:var(--p5-accent);border-color:var(--p5-accent)}.settings-modal__buttons{justify-content:flex-end;display:flex}.settings-modal__button{text-transform:uppercase;letter-spacing:1px;color:var(--p5-text);background:var(--p5-accent);cursor:pointer;clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);border:none;padding:8px 24px;font-size:13px;font-weight:700;transition:filter .15s}.settings-modal__button:hover{filter:brightness(1.15)}.main-menu{isolation:isolate;background:#0c0a08;min-height:100vh;position:relative;overflow:hidden}.main-menu__bg{pointer-events:none;z-index:0;background-image:repeating-linear-gradient(135deg,#0000,#0000 80px,#e8281c0a 80px 82px);position:absolute;inset:0}.main-menu__halftone{pointer-events:none;z-index:0;background-image:radial-gradient(circle at 1px 1px,#e8281c2e 1px,#0000 1.6px);background-size:8px 8px;position:absolute;inset:0}.main-menu__slab,.main-menu__slab-halftone{pointer-events:none;z-index:0;width:58%;height:140%;position:absolute;top:-10%;right:-18%;transform:skew(-18deg)translate(120%)}.main-menu__slab{background:var(--p5-accent)}.main-menu__slab-halftone{mix-blend-mode:multiply;background-image:radial-gradient(circle at 2px 2px,#0006 1.5px,#0000 2px);background-size:10px 10px}.main-menu__ribbon{pointer-events:none;z-index:0;background:#08070af5;width:100%;height:12%;position:absolute;top:38%;right:-20%;transform:rotate(-12deg)translate(120%)}.main-menu__hero{pointer-events:none;z-index:1;opacity:0;width:60%;height:92%;position:absolute;bottom:0;left:100px}.main-menu__hero img{object-fit:contain;object-position:bottom left;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:100%;height:100%}.main-menu__hero-glow{filter:blur(18px);z-index:-1;mix-blend-mode:screen;background:radial-gradient(at 60% 55%,#e8281c52 0%,#e8281c1f 38%,#0000 72%);position:absolute;inset:12% -10% 4% 18%}.main-menu__header{z-index:3;max-width:56%;position:absolute;top:6vh;left:4vw}.main-menu__protocol{letter-spacing:.3em;color:var(--p5-accent);opacity:0;margin-bottom:10px;font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:700}.main-menu__title{letter-spacing:.08em;color:var(--p5-text);text-shadow:6px 6px 0 var(--p5-accent);opacity:0;margin:0;font-family:Archivo Black,Noto Serif SC,serif;font-size:clamp(48px,7vw,96px);font-weight:900;line-height:.92;transform:translate(-60px)}.main-menu__sub{border:2px solid var(--p5-text);letter-spacing:.4em;color:var(--p5-text);opacity:0;background:#08070af5;margin-top:18px;padding:6px 14px;font-family:Archivo Black,sans-serif;font-size:12px;font-weight:900;display:inline-flex;transform:skew(-6deg)translateY(20px)}.main-menu__sub>span{display:inline-block;transform:skew(6deg)}.main-menu__panels{z-index:3;flex-direction:column;gap:14px;width:clamp(340px,36vw,460px);max-height:88vh;display:flex;position:absolute;top:50%;right:4vw;transform:translateY(-50%)}.main-menu__panel{clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%);opacity:0;text-align:left;background:#08070af0;border:2px solid #f5efe247;padding:14px 16px;font-family:inherit;transform:translate(100px);box-shadow:4px 4px #f5efe21a}.main-menu__panel--accent{background:var(--p5-accent);border-color:var(--p5-text);box-shadow:5px 5px 0 var(--p5-text)}.main-menu__panel-header{border-bottom:1.5px solid #f5efe240;align-items:baseline;gap:10px;margin-bottom:12px;padding-bottom:8px;display:flex}.main-menu__panel-title{letter-spacing:4px;color:var(--p5-text);font-family:Noto Serif SC,serif;font-size:18px;font-weight:900}.main-menu__panel-en{letter-spacing:.2em;color:var(--p5-text);opacity:.6;flex:1;font-family:JetBrains Mono,monospace;font-size:10px}.main-menu__panel--single{cursor:pointer;justify-content:space-between;align-items:center;padding:18px 20px;transition:background .12s,transform .12s,border-color .12s;display:flex}.main-menu__panel--single:hover{background:var(--p5-accent);border-color:var(--p5-text);transform:translate(-4px);box-shadow:8px 8px #f5efe226}.main-menu__panel--single .main-menu__panel-title{letter-spacing:6px}.main-menu__deck-list{flex-direction:column;gap:6px;max-height:220px;margin-bottom:12px;display:flex;overflow-y:auto}.main-menu__deck-list--edit{max-height:180px;margin-bottom:0}.main-menu__panel--accent .main-menu__deck-list{background:#08070a2e;padding:4px}.main-menu__deck-item{cursor:pointer;background:#08070a8c;border-left:3px solid #0000;justify-content:space-between;align-items:center;padding:10px 12px;transition:background .1s,border-color .1s;display:flex}.main-menu__panel--accent .main-menu__deck-item{background:#08070ab3}.main-menu__deck-item:hover{border-left-color:var(--p5-text);background:#08070ad9}.main-menu__deck-item.selected{border-left-color:var(--p5-text);background:#08070af2;box-shadow:inset 0 0 0 1px #f5efe266}.main-menu__deck-item--edit{cursor:default;background:#f5efe20f}.main-menu__deck-item--edit .main-menu__deck-info{cursor:pointer}.main-menu__deck-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.main-menu__deck-name{color:var(--p5-text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.main-menu__deck-hero{color:#f5efe2b3;font-size:11px;font-weight:600}.main-menu__deck-meta{color:var(--p5-text-dim);font-size:11px}.main-menu__deck-colors{gap:4px;display:flex}.main-menu__color-dot{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);width:12px;height:12px}.color-red{background:#e8001c}.color-blue{background:#1a5fff}.color-green{background:#1a8a3a}.color-yellow{background:#b88a00}.color-orange{background:#d05a10}.color-purple{background:#7a3ab5}.main-menu__deck-right{align-items:center;gap:6px;display:flex}.main-menu__deck-item--current{border-left-color:var(--p5-text);margin-bottom:12px;box-shadow:inset 0 0 0 1px #f5efe266}.main-menu__deck-switch{letter-spacing:1px;color:#f5efe299;white-space:nowrap;font-size:11px;font-weight:700}.main-menu__deck-item--current:hover .main-menu__deck-switch{color:var(--p5-text)}.deck-picker{background:var(--p5-bg);clip-path:polygon(1% 0%,100% 0%,99% 100%,0% 100%);flex-direction:column;width:90vw;max-width:520px;max-height:80vh;display:flex}.deck-picker__header{background:var(--p5-accent);align-items:center;gap:12px;padding:16px 24px;display:flex;position:relative}.deck-picker__header h2{letter-spacing:2px;color:var(--p5-text);margin:0;font-size:18px;font-weight:900;transform:skew(-2deg)}.deck-picker__count{color:#ffffffb3;font-size:12px;font-weight:700}.deck-picker__list{flex-direction:column;gap:6px;padding:12px;display:flex;overflow-y:auto}.main-menu__deck-actions{gap:4px;display:flex}.main-menu__btn{border:2px solid var(--p5-text);letter-spacing:3px;text-transform:uppercase;cursor:pointer;clip-path:polygon(0 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%);width:100%;padding:12px 20px;font-family:inherit;font-size:14px;font-weight:900;transition:background .12s,color .12s,transform .12s,box-shadow .12s}.main-menu__btn:disabled{opacity:.35;cursor:not-allowed}.main-menu__btn-en{letter-spacing:.2em;opacity:.7;margin-left:8px;font-family:JetBrains Mono,monospace;font-size:.7em;font-weight:500}.main-menu__btn--battle,.main-menu__btn--versus{color:var(--p5-text);background:#0c0a08}.main-menu__btn--battle{justify-content:center;align-items:center;display:flex}.main-menu__btn-avatar{object-fit:cover;object-position:top center;border:2px solid var(--p5-accent);background:#0c0a08;border-radius:50%;flex-shrink:0;width:28px;height:28px;margin-right:10px}.main-menu__btn--battle:hover:not(:disabled),.main-menu__btn--versus:hover:not(:disabled){background:var(--p5-text);color:var(--p5-accent);transform:scale(1.02);box-shadow:4px 4px #08070a66}.main-menu__replay-error{color:var(--p5-accent);padding:8px;font-size:12px}.main-menu__btn--build{color:var(--p5-text);border-color:var(--p5-accent);background:0 0;margin-bottom:12px}.main-menu__btn--build:hover{background:var(--p5-accent);border-color:var(--p5-text);transform:scale(1.02)}.main-menu__btn-icon{color:#f5efe2bf;cursor:pointer;background:0 0;border:1px solid #f5efe240;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;transition:background .1s,color .1s,border-color .1s;display:flex}.main-menu__btn-icon:hover{color:var(--p5-text);border-color:var(--p5-text);background:#f5efe21f}.main-menu__btn-icon--danger:hover{background:var(--p5-accent);color:var(--p5-text);border-color:var(--p5-accent)}.main-menu__empty{color:#f5efe2a6;text-align:center;margin:0;padding:18px 8px;font-size:13px;font-weight:600}.main-menu__capacity{color:#f5efe280;letter-spacing:1px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.main-menu__icon-btn{z-index:5;color:#f5efe2c7;cursor:pointer;-webkit-backdrop-filter:blur(6px);background:linear-gradient(#141218c7,#08070aeb);border:1px solid #f5efe22e;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;padding:0;transition:color .18s,border-color .18s,transform .18s,box-shadow .18s;display:inline-flex;position:absolute;top:20px;right:20px;box-shadow:inset 0 1px #ffffff0f,0 6px 14px #00000059}.main-menu__icon-btn:hover{color:var(--p5-accent);border-color:#ef4444b3;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff14,0 8px 18px #ef444440}.main-menu__icon-btn:active{transform:translateY(0)}.main-menu__icon-btn:focus-visible{border-color:var(--p5-accent);outline:none;box-shadow:0 0 0 2px #ef444459}.main-menu__icon-btn--replay{right:68px}.main-menu--play .main-menu__slab,.main-menu--play .main-menu__slab-halftone{animation:1s cubic-bezier(.16,.84,.32,1) 50ms forwards main-menu-slab-in}.main-menu--play .main-menu__ribbon{animation:.9s cubic-bezier(.16,.84,.32,1) .35s forwards main-menu-ribbon-in}.main-menu--play .main-menu__hero{animation:.9s cubic-bezier(.2,.84,.3,1) .5s forwards main-menu-hero-in}.main-menu--play .main-menu__protocol{animation:.5s ease-out .55s forwards main-menu-fade-up}.main-menu--play .main-menu__title{animation:.8s cubic-bezier(.2,.84,.3,1) .65s forwards main-menu-title-slam}.main-menu--play .main-menu__sub{animation:.6s cubic-bezier(.2,.84,.3,1) 1s forwards main-menu-sub-in}.main-menu--play .main-menu__panel{animation:.55s cubic-bezier(.2,.84,.3,1) forwards main-menu-panel-in}.main-menu--play .main-menu__panel:first-child{animation-delay:1.05s}.main-menu--play .main-menu__panel:nth-child(2){animation-delay:1.18s}.main-menu--play .main-menu__panel:nth-child(3){animation-delay:1.31s}@keyframes main-menu-slab-in{to{transform:skew(-18deg)translate(0)}}@keyframes main-menu-ribbon-in{to{transform:rotate(-12deg)translate(0)}}@keyframes main-menu-hero-in{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes main-menu-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes main-menu-title-slam{0%{opacity:0;transform:translate(-60px)}60%{opacity:1;transform:translate(6px)}to{opacity:1;transform:translate(0)}}@keyframes main-menu-sub-in{to{opacity:1;transform:skew(-6deg)translateY(0)}}@keyframes main-menu-panel-in{to{opacity:1;transform:translate(0)}}@media (width<=900px){.main-menu__hero{opacity:.35;width:100%;height:60%}.main-menu__hero img{object-position:bottom center}.main-menu__header{max-width:92%}.main-menu__panels{width:92%;max-height:none;margin:36vh auto 24px;position:relative;top:auto;right:auto;transform:none}}.deck-overview-overlay{z-index:100;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.deck-overview{background:var(--p5-bg);clip-path:polygon(1% 0%,100% 0%,99% 100%,0% 100%);flex-direction:column;width:90vw;max-width:720px;max-height:85vh;display:flex}.deck-overview__header{background:var(--p5-accent);align-items:center;gap:16px;padding:16px 24px;display:flex;position:relative}.deck-overview__header h2{letter-spacing:2px;text-transform:uppercase;color:var(--p5-text);margin:0;font-size:20px;font-weight:900;transform:skew(-2deg)}.deck-overview__meta{align-items:center;gap:8px;display:flex}.deck-overview__hero{color:#fffc;font-size:13px;font-weight:700}.deck-overview__colors{gap:4px;display:flex}.deck-overview__close{width:28px;height:28px;color:var(--p5-text);cursor:pointer;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);background:#0000004d;border:none;justify-content:center;align-items:center;font-size:14px;font-weight:900;transition:all .12s;display:flex;position:absolute;top:12px;right:16px}.deck-overview__close:hover{background:#00000080;transform:scale(1.1)}.deck-overview__body{flex:1;padding:16px 24px;overflow-y:auto}.deck-overview__section{margin-bottom:20px}.deck-overview__section-title{letter-spacing:2px;text-transform:uppercase;color:var(--p5-accent);border-bottom:1px solid var(--p5-bg-elevated);margin-bottom:8px;padding-bottom:6px;font-size:12px;font-weight:800}.deck-overview__cards{flex-wrap:wrap;gap:6px;display:flex}.deck-overview__card-item{width:60px;position:relative}.deck-overview__card-img{object-fit:cover;border-radius:2px;width:60px;height:84px;display:block}.deck-overview__card-count{background:var(--p5-accent);color:var(--p5-text);clip-path:polygon(8% 0%,100% 0%,92% 100%,0% 100%);padding:1px 5px;font-size:11px;font-weight:900;position:absolute;bottom:2px;left:2px}.deck-overview__cards--battlefield{gap:16px;padding:20px 0}.deck-overview__card-item--battlefield{width:84px}.deck-overview__card-item--battlefield .deck-overview__card-img{transform-origin:50%;width:60px;height:84px;margin:12px auto;transform:rotate(-90deg)}.deck-overview__footer{background:var(--p5-bg-elevated);flex-direction:column;gap:8px;padding:12px 24px;display:flex}.deck-overview__footer-row{gap:8px;display:flex}.deck-overview__footer-row>.main-menu__btn{flex:1;min-width:0}.main-menu__disclaimer{z-index:2;text-align:center;letter-spacing:.02em;color:#fff;opacity:.6;pointer-events:none;padding:8px 16px;font-size:10px;line-height:1.5;position:absolute;bottom:0;left:0;right:0}.main-menu__version{z-index:3;letter-spacing:.04em;color:#fff;opacity:.5;pointer-events:none;-webkit-user-select:text;user-select:text;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;position:absolute;bottom:6px;right:10px}.main-menu__build-actions{gap:8px;margin-bottom:12px;display:flex}.main-menu__build-actions .main-menu__btn{margin-bottom:0}.main-menu__btn--import{color:var(--p5-text);background:0 0;border-color:#f5efe273}.main-menu__btn--import:hover{border-color:var(--p5-text);background:#f5efe21f;transform:scale(1.02)}.main-menu__btn--export{color:var(--p5-text);background:0 0;border-color:#f5efe273}.main-menu__btn--export:hover{border-color:var(--p5-text);background:#f5efe21f}.main-menu__deck-rename-input{background:var(--p5-bg);border:2px solid var(--p5-accent);min-width:0;color:var(--p5-text);outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:14px;font-weight:700}.deck-code-overlay{z-index:110;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.deck-code-modal{background:var(--p5-bg);clip-path:polygon(1% 0%,100% 0%,99% 100%,0% 100%);flex-direction:column;width:90vw;max-width:520px;display:flex}.deck-code-modal__header{background:var(--p5-accent);justify-content:space-between;align-items:center;padding:14px 22px;display:flex;position:relative}.deck-code-modal__header h3{letter-spacing:2px;text-transform:uppercase;color:var(--p5-text);margin:0;font-size:17px;font-weight:900;transform:skew(-2deg)}.deck-code-modal__body{flex-direction:column;gap:10px;padding:18px 22px;display:flex}.deck-code-modal__deck-name{color:var(--p5-text);margin:0;font-size:15px;font-weight:800}.deck-code-modal__code{box-sizing:border-box;resize:vertical;border:2px solid var(--p5-black-mid,#f5efe240);width:100%;color:var(--p5-text);word-break:break-all;background:#0c0a08;outline:none;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5}.deck-code-modal__code:focus{border-color:var(--p5-accent)}.deck-code-modal__hint{color:#f5efe299;margin:0;font-size:12px;line-height:1.5}.deck-code-modal__error{color:var(--p5-accent);margin:0;font-size:13px;font-weight:700}.deck-code-modal__footer{gap:10px;padding:0 22px 20px;display:flex}.deck-code-modal__footer .main-menu__btn{flex:1;margin-bottom:0}.rb-lobby{--rb-ink:#0c0a08;--rb-ink-2:#15110d;--rb-ink-3:#221a14;--rb-paper:#f5efe2;--rb-paper-2:#cfc5b2;--rb-mute:#f5efe28c;--rb-line:#f5efe22e;--rb-red:#e8281c;--rb-red-f:#ff4a3a;background:radial-gradient(circle at 1px 1px, #f5efe20a 1px, transparent 1.6px) 0 0 / 8px 8px, var(--rb-ink);color:var(--rb-paper);flex-direction:column;font-family:Noto Sans SC,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.rb-lobby__topbar{border-bottom:2px solid var(--rb-red);background:var(--rb-ink-2);align-items:stretch;height:44px;display:flex}.rb-lobby__title-tag{background:var(--rb-red);letter-spacing:.25em;align-items:center;margin-right:-8px;padding:0 18px;font-size:12px;font-weight:900;display:flex;transform:skew(-8deg)}.rb-lobby__title-tag>span{transform:skew(8deg)}.rb-lobby__crumbs{letter-spacing:.25em;color:var(--rb-mute);align-items:center;gap:14px;padding:0 18px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.rb-lobby__crumbs .sep{color:var(--rb-red)}.rb-lobby__crumbs .here{color:var(--rb-paper)}.rb-lobby__crumb-back{font-family:inherit;font-size:inherit;letter-spacing:inherit;color:var(--rb-mute);cursor:pointer;background:0 0;border:none;padding:0;transition:color .15s}.rb-lobby__crumb-back:hover{color:var(--rb-red-f)}.rb-lobby__choices-foot{grid-column:1/-1;justify-content:center;display:flex}.rb-lobby__choices{flex:1;grid-template-rows:1fr auto;grid-template-columns:1fr 1fr;align-items:stretch;gap:32px;padding:48px 80px;display:grid}.rb-choice{background:var(--rb-ink-2);border:1.5px solid var(--rb-line);cursor:pointer;flex-direction:column;padding:36px 38px;transition:background .15s,border-color .15s;display:flex;position:relative}.rb-choice:hover{background:var(--rb-ink-3);border-color:var(--rb-red)}.rb-choice__num{letter-spacing:.3em;color:var(--rb-mute);font-family:JetBrains Mono,monospace;font-size:11px;position:absolute;top:18px;right:18px}.rb-choice__icon{border:2px solid var(--rb-paper);width:84px;height:84px;margin-bottom:24px;position:relative}.rb-choice__icon--create{transform:rotate(45deg)}.rb-choice__icon--create:after{content:"";background:var(--rb-red);position:absolute;inset:26px}.rb-choice__icon--join:after{content:"▸";color:var(--rb-red);justify-content:center;align-items:center;font-size:40px;display:flex;position:absolute;inset:0}.rb-choice__title-zh{letter-spacing:.08em;font-family:Noto Serif SC,serif;font-size:40px;font-weight:900;line-height:1}.rb-choice__title-en{letter-spacing:.35em;color:var(--rb-red);margin-top:6px;font-size:14px;font-weight:900}.rb-choice__desc{color:var(--rb-paper-2);margin-top:20px;font-size:14px;line-height:1.7}.rb-btn{letter-spacing:.15em;background:var(--rb-ink);color:var(--rb-paper);border:2px solid var(--rb-ink);cursor:pointer;align-self:flex-start;margin-top:24px;padding:12px 26px;font-size:13px;font-weight:900;position:relative;transform:skew(-6deg)}.rb-btn>span{display:inline-block;transform:skew(6deg)}.rb-btn:before{content:"";background:var(--rb-red);z-index:-1;position:absolute;inset:4px -4px -4px 4px}.rb-btn--primary{background:var(--rb-red);border-color:var(--rb-red)}.rb-btn--primary:before{background:var(--rb-ink)}.rb-btn--primary:hover{background:var(--rb-red-f)}.rb-btn--ghost{border-color:var(--rb-paper);background:0 0}.rb-btn--ghost:before{display:none}.rb-btn--ghost:hover{background:var(--rb-paper);color:var(--rb-ink)}.rb-btn:disabled{background:var(--rb-ink-3);border-color:var(--rb-ink-3);color:var(--rb-mute);cursor:not-allowed}.rb-btn:disabled:before{background:var(--rb-ink-2)}.rb-panel{background:var(--rb-ink-2);border:1.5px solid var(--rb-line);width:760px;margin:auto}.rb-panel__top{background:var(--rb-paper);color:var(--rb-ink);border-bottom:3px solid var(--rb-red);align-items:center;gap:14px;padding:14px 22px;display:flex}.rb-panel__top h2{margin:0;font-family:Noto Serif SC,serif;font-size:22px;font-weight:900}.rb-panel__top .en{letter-spacing:.3em;color:var(--rb-red);font-size:11px;font-weight:900}.rb-panel__close{background:var(--rb-ink);width:32px;height:32px;color:var(--rb-paper);cursor:pointer;border:none;margin-left:auto}.rb-panel__body{padding:32px 44px}.rb-panel__hint{letter-spacing:.2em;color:var(--rb-mute);margin-bottom:22px;font-family:JetBrains Mono,monospace;font-size:11px}.rb-panel__actions{justify-content:space-between;gap:18px;margin-top:28px;display:flex}.rb-roomcode{justify-content:center;gap:12px;margin:8px 0 20px;display:flex}.rb-roomcode__cell{background:var(--rb-paper);width:80px;height:104px;color:var(--rb-ink);box-shadow:6px 6px 0 var(--rb-red);justify-content:center;align-items:center;font-size:56px;font-weight:900;display:flex}.rb-roomcode__actions{justify-content:center;margin-bottom:26px;display:flex}.rb-copy{background:var(--rb-ink);color:var(--rb-paper);border:1.5px solid var(--rb-paper);letter-spacing:.2em;cursor:pointer;padding:10px 18px;font-family:JetBrains Mono,monospace;font-size:11px}.rb-copy:hover{background:var(--rb-paper);color:var(--rb-ink)}.rb-copy.is-copied{color:var(--rb-paper);background:#2e9d3a;border-color:#2e9d3a}.rb-waiting{border-top:1.5px solid var(--rb-line);background:var(--rb-ink);align-items:center;gap:22px;margin:8px -44px 0;padding:18px 44px;display:flex}.rb-waiting__loader{gap:6px;display:flex}.rb-waiting__loader span{background:var(--rb-red);width:14px;height:14px;animation:1s ease-in-out infinite rb-bob}.rb-waiting__loader span:nth-child(2){background:var(--rb-paper);animation-delay:.15s}.rb-waiting__loader span:nth-child(3){animation-delay:.3s}@keyframes rb-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.rb-waiting__text{font-family:Noto Serif SC,serif;font-size:18px;font-weight:900}.rb-waiting__sub{letter-spacing:.3em;color:var(--rb-red);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:10px}.rb-waiting__timer{color:var(--rb-mute);margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11px}.rb-waiting__timer .num{color:var(--rb-paper);margin:0 4px;font-size:16px;font-weight:900}.rb-join-input{justify-content:center;gap:12px;margin:8px 0 16px;display:flex}.rb-join-input__cell{background:var(--rb-ink);width:70px;height:92px;color:var(--rb-paper);border:2px solid var(--rb-paper);text-align:center;box-shadow:5px 5px 0 var(--rb-red);caret-color:var(--rb-red);text-transform:uppercase;outline:none;font-size:48px;font-weight:900}.rb-join-input__cell:focus{background:var(--rb-paper);color:var(--rb-ink)}.rb-join-input.is-error .rb-join-input__cell{animation:.35s rb-shake}@keyframes rb-shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.rb-join-error{border:1.5px solid var(--rb-red);background:#e8281c14;align-items:center;gap:14px;max-width:560px;margin:16px auto 0;padding:12px 18px;font-size:14px;font-weight:700;display:flex}.rb-join-error__icon{background:var(--rb-red);width:26px;height:26px;color:var(--rb-paper);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:900;display:flex}.rb-tag{background:var(--rb-red);color:var(--rb-paper);letter-spacing:.2em;padding:4px 12px;font-size:11px;font-weight:900;display:inline-block;transform:skew(-6deg)}.rb-tag>span{display:inline-block;transform:skew(6deg)}.rb-tag--ink{background:var(--rb-ink);color:var(--rb-paper);border:1.5px solid var(--rb-paper)}.gallery{background:var(--p5-bg-deep);height:100vh;color:var(--p5-text);font-family:var(--p5-font);background-image:repeating-linear-gradient(135deg,#0000,#0000 40px,#e8001c08 40px 41px);flex-direction:column;display:flex;overflow:hidden}.gallery__header{background:var(--p5-accent);z-index:10;align-items:center;gap:16px;padding:14px 32px;display:flex;position:relative;overflow:hidden}.gallery__header:after{content:"";background:var(--p5-accent);width:110%;height:24px;transform:skewY(var(--p5-skew));z-index:-1;position:absolute;bottom:-12px;left:-5%}.gallery__header h1{letter-spacing:4px;text-transform:uppercase;color:var(--p5-text);text-shadow:3px 3px #00000080;margin:0;font-size:28px;font-weight:900;transform:skew(-4deg)}.gallery__search{background:#0000004d;border-color:#ffffff4d;width:200px;margin-left:auto}.gallery__search:focus{border-color:var(--p5-text)}.gallery__filters{border-bottom:2px solid var(--p5-bg-elevated);flex-direction:column;gap:6px;padding:16px 32px 12px;display:flex}.gallery__filter-row{align-items:center;gap:8px;display:flex}.gallery__filter-label{letter-spacing:1px;width:36px;color:var(--p5-text-muted);text-transform:uppercase;flex-shrink:0;font-size:12px;font-weight:800}.gallery__filter-options{flex-wrap:wrap;gap:4px;display:flex}.gallery__filter-btn{border:2px solid var(--p5-bg-elevated);background:var(--p5-bg);color:var(--p5-text-dim);letter-spacing:.5px;cursor:pointer;clip-path:polygon(6% 0%,100% 0%,94% 100%,0% 100%);padding:5px 12px;font-size:12px;font-weight:700;transition:all .12s}.gallery__filter-btn:hover{background:var(--p5-bg-elevated);color:var(--p5-text);border-color:var(--p5-text-dim)}.gallery__filter-btn.active{background:var(--p5-accent);color:var(--p5-text);border-color:var(--p5-accent);box-shadow:0 0 8px var(--p5-accent-glow)}.gallery__filter-btn.active:hover{background:var(--p5-accent-hover);border-color:var(--p5-accent-hover)}.gallery__filter-btn--cost{text-align:center;min-width:32px;padding:5px 8px}.gallery__filter-btn--color{align-items:center;gap:5px;padding-left:10px;display:flex}.gallery__filter-dot{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);flex-shrink:0;width:8px;height:8px}.gallery__body{scrollbar-width:thin;scrollbar-color:var(--p5-accent) var(--p5-bg);flex:1;padding:20px 32px 24px;overflow-y:auto}.gallery__body::-webkit-scrollbar{width:6px}.gallery__body::-webkit-scrollbar-track{background:var(--p5-bg)}.gallery__body::-webkit-scrollbar-thumb{background:var(--p5-accent)}.gallery__loading{height:200px;color:var(--p5-accent);letter-spacing:4px;text-transform:uppercase;justify-content:center;align-items:center;font-size:18px;font-weight:700;animation:1s ease-in-out infinite p5-pulse;display:flex}.gallery__empty{text-align:center;color:var(--p5-text-dim);text-transform:uppercase;letter-spacing:2px;padding:60px;font-size:16px;font-weight:700}.gallery__group{margin-bottom:28px}.gallery__group-header{border-bottom:2px solid var(--p5-accent);align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;display:flex}.gallery__group-title{letter-spacing:2px;text-transform:uppercase;color:var(--p5-text);transform:skewX(var(--p5-skew));font-size:15px;font-weight:900}.gallery__group-count{color:var(--p5-text-muted);font-size:12px;font-weight:700}.gallery__card-info{align-items:center;gap:3px;display:flex;position:absolute;top:4px;right:4px}.gallery__card-cost{color:var(--p5-text);clip-path:polygon(10% 0%,100% 0%,90% 100%,0% 100%);background:#000000bf;padding:2px 6px;font-size:11px;font-weight:900}.gallery__card-factions{gap:2px;display:flex}.gallery__color-dot{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);width:10px;height:10px}.gallery__test-badge{z-index:2;background:var(--p5-accent,#e8001c);color:#fff;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:900;display:flex;position:absolute;top:4px;left:4px}.orientation-gate{z-index:100000;text-align:center;color:#f5f5f0;background:radial-gradient(#1a1a1a 0%,#0a0a0a 70%);flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;font-family:Segoe UI,Noto Sans SC,Helvetica Neue,Arial,sans-serif;display:flex;position:fixed;inset:0}.orientation-gate__icon{color:#e8001c;text-shadow:0 0 18px #e8001c73;font-size:64px;animation:2s ease-in-out infinite orientation-gate-rotate}.orientation-gate__title{letter-spacing:.12em;font-size:22px;font-weight:900}.orientation-gate__hint{letter-spacing:.06em;color:#999;max-width:20em;font-size:13px;line-height:1.6}@keyframes orientation-gate-rotate{0%,to{transform:rotate(-90deg)}50%{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.orientation-gate__icon{animation:none}}.app{background:var(--p5-bg-deep);min-height:100vh;color:var(--p5-text);font-family:var(--p5-font);background-image:repeating-linear-gradient(135deg,#0000,#0000 60px,#e8001c05 60px 61px)}
