:root{--bg:#313338;--sidebar-bg:#1e1f22;--card-bg:#2b2d31;--card-border:#3f4147;--accent:#5865f2;--accent-glow:#5865f266;--text:#f2f3f5;--text-sub:#b5bac1;--success:#23a55a;--warning:#f0b132;--danger:#da373c;--input-bg:#1e1f22}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,Noto Sans JP,sans-serif}a{color:var(--accent);text-decoration:none}button,input{font:inherit}.lobby-shell{background:#0f1115;justify-content:center;align-items:center;min-height:100vh;padding:clamp(1rem,4vw,3rem);display:flex;overflow:hidden}.lobby-card{background:linear-gradient(#171a25f5,#12151ff5);border:1px solid #ffffff1c;border-radius:8px;width:min(980px,100%);min-height:580px;padding:clamp(1.2rem,3vw,2rem);position:relative;overflow:hidden;box-shadow:0 22px 80px #00000061}.lobby-card:before{content:"";pointer-events:none;background-color:#0000;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:48px 48px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 78%);mask-image:linear-gradient(#000,#0000 78%)}.lobby-card>*{position:relative}.lobby-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.lobby-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:.65rem;display:flex}.lobby-brand{color:#818cf8;letter-spacing:.18em;margin-bottom:.5rem;font-size:.7rem;font-weight:800}.lobby-header h1{letter-spacing:0;font-size:clamp(2rem,4vw,2.8rem)}.lobby-subtitle{color:var(--text-sub);margin-top:.35rem}.lobby-user{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:.65rem;max-width:100%;padding:.55rem .75rem;display:flex}.language-toggle{min-height:40px;color:var(--text);cursor:pointer;background:#ffffff0e;border:1px solid #ffffff21;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .65rem;transition:border-color .2s,background .2s,transform .2s;display:inline-flex}.language-toggle:hover{background:#ffffff17;border-color:#ffffff47;transform:translateY(-1px)}.language-toggle span{color:#fff;background:#5865f238;border-radius:6px;justify-content:center;align-items:center;width:30px;height:24px;font-size:.68rem;font-weight:900;display:inline-flex}.language-toggle strong{color:var(--text);font-size:.76rem}.lobby-user img{object-fit:cover;border-radius:50%;width:40px;height:40px}.lobby-user div{flex-direction:column;gap:.15rem;display:flex}.lobby-user span{color:#86efac;font-size:.8rem;font-weight:700}.lobby-logout{color:var(--text-sub);border-left:1px solid #ffffff24;margin-left:.45rem;padding-left:.75rem;font-size:.78rem;font-weight:700}.lobby-logout:hover{color:var(--text)}.lobby-message{min-height:360px;color:var(--text-sub);justify-content:center;align-items:center;display:flex}.lobby-message.error,.lobby-error{color:#ffb4b8}.login-panel{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.8rem;min-height:360px;display:flex}.login-panel strong{font-size:1.35rem}.login-panel span{color:var(--text-sub);margin-bottom:.5rem}.game-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin-bottom:1.25rem;display:grid}.game-tab{color:var(--text-sub);cursor:pointer;background:#222635db;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;min-height:48px;padding:.68rem .75rem;font-size:.9rem;font-weight:700;transition:transform .18s,background .18s,border-color .18s,color .18s,box-shadow .18s;display:flex;transform:translateY(0)}.game-tab:hover{color:var(--text);border-color:#ffffff38;transform:translateY(-2px)}.game-tab.active{color:#fff;border-color:var(--accent);background:#5865f238;box-shadow:0 8px 22px #5865f238}.game-tab-mark{color:#fff;background:#ffffff14;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:28px;font-size:.72rem;display:inline-flex}.game-start-panel{background:linear-gradient(135deg,#ffffff0a,#0000 42%),#1d2130;border:1px solid #ffffff17;border-radius:8px;grid-template-columns:1fr minmax(300px,410px);align-items:center;gap:2rem;min-height:250px;padding:clamp(1.1rem,3vw,2rem);animation:.28s both panelEnter;display:grid;position:relative;overflow:hidden}.game-start-panel:after{content:"";border:1px solid #ffffff14;width:170px;height:170px;position:absolute;top:-42px;right:-42px;transform:rotate(18deg)}.game-start-panel.game-coinflip{border-color:#f0b13242}.game-start-panel.game-dice{border-color:#5865f247}.game-start-panel.game-slots{border-color:#c084fc47}.game-start-panel.game-blackjack{border-color:#23a55a47}.game-start-panel>*{z-index:1;position:relative}.game-start-panel.is-starting{pointer-events:none}.starting-overlay{z-index:3;color:#fff;background:#0d1018c2;justify-content:center;align-items:center;font-weight:800;display:flex;position:absolute;inset:0}.starting-overlay:before{content:"";border:3px solid #ffffff42;border-top-color:#fff;border-radius:50%;width:18px;height:18px;margin-right:.65rem;animation:.8s linear infinite spin}.game-kicker{color:#f0b132;text-transform:uppercase;margin-bottom:.6rem;font-size:.72rem;font-weight:800;display:inline-flex}.game-start-panel h2{margin-bottom:.45rem;font-size:2rem}.game-start-panel p{color:var(--text-sub);margin-bottom:1rem}.game-start-panel strong{color:#86efac}.bet-form{flex-direction:column;gap:.45rem;display:flex}.bet-form label,.bet-form small{color:var(--text-sub);font-size:.78rem}.bet-row{align-items:center;gap:.45rem;min-width:0;display:flex}.bet-row span{color:#86efac;font-weight:800}.bet-row input{min-width:0;color:var(--text);background:#121521;border:1px solid #ffffff24;border-radius:7px;outline:none;flex:1;padding:.66rem .7rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.bet-row input:focus{border-color:#5865f2c7;box-shadow:0 0 0 3px #5865f229}.lobby-error{background:#da373c21;border-radius:7px;flex-direction:column;gap:.55rem;margin-top:1rem;padding:.7rem .85rem;font-size:.85rem;display:flex}.lobby-error span{color:#ffffffc2}.blocked-game-actions{flex-wrap:wrap;gap:.55rem;display:flex}.repeat-bet{border-top:1px solid #ffffff24;flex-direction:column;gap:.45rem;padding-top:1rem;display:flex}.repeat-bet label{color:#ffffffb8;font-size:.8rem}.repeat-bet .bet-row input{max-width:200px}.blackjack-shell{background:linear-gradient(#23a55a0b,#0000 42%),#101511;justify-content:center;align-items:center;min-height:100vh;padding:clamp(1rem,4vw,3rem);display:flex}.blackjack-table{background:#163a2a;border:1px solid #ffffff24;border-radius:8px;flex-direction:column;gap:1.25rem;width:min(920px,100%);min-height:620px;padding:clamp(1rem,3vw,2rem);display:flex;position:relative;overflow:hidden;box-shadow:0 24px 80px #00000061}.blackjack-table:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0 48%,#ffffff09 48% 52%,#0000 52%),radial-gradient(circle at 50% 18%,#ffffff14,#0000 18rem);position:absolute;inset:0}.blackjack-table:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 45%,#ffffff2e,#0000 26rem);position:absolute;inset:0}.blackjack-table.is-hit:after,.blackjack-table.is-double:after{animation:.58s both feltActionGlow}.blackjack-table.is-win:after{background:radial-gradient(circle at 50% 45%,#23a55a3d,#0000 27rem);animation:.85s both feltActionGlow}.blackjack-table.is-loss:after{background:radial-gradient(circle at 50% 45%,#da373c33,#0000 27rem);animation:.85s both feltActionGlow}.blackjack-table>*{position:relative}.blackjack-felt-effects{pointer-events:none;z-index:0;position:absolute;inset:0}.deck-shoe{transform-origin:50%;width:78px;height:106px;position:absolute;top:88px;right:clamp(1rem,4vw,2.25rem);transform:rotate(7deg)}.deck-shoe span{background:linear-gradient(135deg,#ffffff2e 25%,#0000 25%) 0 0/16px 16px,linear-gradient(135deg,#0000 75%,#ffffff2e 75%) 0 0/16px 16px,#26324d;border:1px solid #fff3;border-radius:8px;position:absolute;inset:0;box-shadow:0 12px 24px #00000052}.deck-shoe span:nth-child(2){transform:translate(-5px,5px)}.deck-shoe span:nth-child(3){transform:translate(-10px,10px)}.blackjack-table.is-hit .deck-shoe span:first-child,.blackjack-table.is-double .deck-shoe span:first-child{animation:.62s cubic-bezier(.2,.8,.2,1) both deckDealPulse}.blackjack-table.is-stand .deck-shoe{animation:.45s both deckSettle}.bet-chip{color:#fff;opacity:.78;background:#da373c;border:6px dashed #ffffffe0;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;font-size:.95rem;font-weight:900;display:flex;position:absolute;bottom:clamp(5rem,12vw,7rem);left:clamp(1rem,5vw,3rem);box-shadow:0 16px 30px #0000004d,inset 0 0 0 7px #00000024}.blackjack-table.is-double .bet-chip{animation:.68s cubic-bezier(.2,.9,.2,1) both chipDouble}.blackjack-table.is-win .bet-chip{animation:.86s both chipWin}.blackjack-table.is-loss .bet-chip{animation:.52s both chipLoss}.blackjack-topbar,.blackjack-hand-header,.blackjack-summary{justify-content:space-between;align-items:center;gap:1rem;display:flex}.table-links{align-items:center;gap:.55rem;display:flex}.blackjack-topbar h1{margin-bottom:.35rem;font-size:2rem;line-height:1}.blackjack-topbar p,.blackjack-status span,.blackjack-hand-header span,.blackjack-summary span{color:#ffffffb8;font-size:.85rem}.blackjack-topbar .game-balance{color:#86efac;font-weight:800}.blackjack-status{background:#0000002e;border:1px solid #ffffff1f;border-radius:8px;flex-direction:column;gap:.35rem;padding:.9rem 1rem;transition:border-color .2s,background .2s,transform .2s;display:flex}.blackjack-status strong{font-size:1.15rem}.blackjack-status.result-win{background:#23a55a2e;border-color:#23a55a8c;animation:.36s both resultPop}.blackjack-status.result-loss{background:#da373c24;border-color:#da373c7a;animation:.36s both resultPop}.blackjack-status.result-push,.blackjack-status.result-timeout_refund{background:#f0b13221;border-color:#f0b13280;animation:.36s both resultPop}.blackjack-hands{flex:1;grid-template-rows:1fr 1fr;gap:1.25rem;display:grid}.blackjack-hand{flex-direction:column;gap:.85rem;display:flex}.blackjack-hand-header strong{font-size:1.4rem}.blackjack-cards{perspective:900px;flex-wrap:wrap;align-items:center;gap:.75rem;min-height:132px;display:flex}.blackjack-card{aspect-ratio:2.5/3.5;color:#222;transform-origin:50% 100%;will-change:transform, opacity;background:#f6f1e8;border:1px solid #0000001f;border-radius:8px;justify-content:center;align-items:center;width:86px;font-size:1.55rem;font-weight:800;animation:.62s cubic-bezier(.16,.84,.25,1) both dealCard;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 18px #00000038}.blackjack-card.dealer-card{animation-name:dealDealerCard}.blackjack-card.player-card{animation-name:dealPlayerCard}.blackjack-card:before,.blackjack-card:after{content:attr(data-card);opacity:.72;font-size:.65rem;font-weight:900;line-height:1;position:absolute}.blackjack-card:before{top:8px;left:8px}.blackjack-card:after{bottom:8px;right:8px;transform:rotate(180deg)}.blackjack-card.face{color:#b92d34}.blackjack-card.hidden{color:#0000;background:linear-gradient(135deg,#ffffff2e 25%,#0000 25%) 0 0/18px 18px,linear-gradient(135deg,#0000 75%,#ffffff2e 75%) 0 0/18px 18px,#26324d;animation:.62s cubic-bezier(.16,.84,.25,1) both dealDealerCard,1.6s ease-in-out infinite hiddenCardPulse}.blackjack-card.hidden:before,.blackjack-card.hidden:after{content:""}.blackjack-table.is-stand .blackjack-card.hidden{animation:.45s both hiddenRevealHint}.blackjack-actions{flex-wrap:wrap;gap:.75rem;display:flex}.blackjack-actions .btn{justify-content:center;min-width:112px}.blackjack-message{color:#ffffffc7;margin:auto;font-weight:700}.blackjack-message.error{color:#ffb4b8}.blackjack-summary{border-top:1px solid #ffffff24;grid-template-columns:repeat(4,auto);padding-top:1rem;display:grid}.instant-shell{background:#111318;justify-content:center;align-items:center;min-height:100vh;padding:clamp(1rem,4vw,3rem);display:flex}.instant-shell.coinflip{background:linear-gradient(#f0b1320e,#0000 44%),#14130f}.instant-shell.dice{background:linear-gradient(#5865f20e,#0000 44%),#11131a}.instant-shell.slots{background:linear-gradient(#c084fc0d,#0000 44%),#151018}.instant-table{background:#14161ce0;border:1px solid #ffffff24;border-radius:8px;flex-direction:column;gap:1.25rem;width:min(760px,100%);min-height:500px;padding:clamp(1rem,3vw,2rem);display:flex;box-shadow:0 24px 80px #00000061}.instant-table h1{margin-bottom:.35rem;font-size:2rem;line-height:1}.instant-stage{perspective:900px;flex:1;justify-content:center;align-items:center;min-height:190px;display:flex}.instant-hint{color:#ffffffb3;font-size:1.05rem}.instant-result{color:#ffffffb8;flex-direction:column;align-items:center;gap:.5rem;display:flex}.instant-result strong{color:var(--text);font-size:3.5rem}.coinflip-display,.dice-display{color:#ffffffb8;flex-direction:column;align-items:center;gap:.75rem;font-weight:800;display:flex}.coin-face{aspect-ratio:1;width:136px;transform-style:preserve-3d;background:radial-gradient(circle at 35% 28%,#fff0a7,#f0b132 58%,#9c6410 100%);border:6px solid #ffffff3d;border-radius:50%;position:relative;box-shadow:0 20px 40px #0000004d,inset 0 0 0 7px #ffffff29}.coin-front,.coin-back{color:#2b2109;backface-visibility:hidden;text-shadow:0 1px #ffffff73;border-radius:50%;justify-content:center;align-items:center;font-size:3.25rem;font-weight:900;display:flex;position:absolute;inset:0}.coin-front:before,.coin-back:before{content:"";border:3px double #2b210947;border-radius:50%;position:absolute;inset:17px}.coin-back{transform:rotateY(180deg)}.coin-edge{border:8px dotted #2b210933;border-radius:50%;position:absolute;inset:8px}.coin-face.coin-tails{transform:rotateY(180deg)}.instant-stage.is-flipping .coin-face{animation:1.05s cubic-bezier(.2,.8,.2,1) infinite coinFlip}.instant-stage.is-revealed .coin-face,.instant-stage.is-revealed .dice-cube{animation:.42s both resultPop}.dice-tray{background:radial-gradient(at 50% 70%,#00000042,#0000 68%);border-radius:50%;padding:1.2rem 1.6rem 1.6rem}.dice-cube{aspect-ratio:1;width:122px;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.8,.2,1);position:relative;transform:rotateX(-18deg)rotateY(24deg)}.dice-cube-inner{transform-style:preserve-3d;position:absolute;inset:0}.dice-cube.dice-result-1{transform:rotateX(-18deg)rotateY(24deg)}.dice-cube.dice-result-2{transform:rotateX(90deg)rotateY(0)}.dice-cube.dice-result-3{transform:rotateX(-18deg)rotateY(-66deg)}.dice-cube.dice-result-4{transform:rotateX(-18deg)rotateY(114deg)}.dice-cube.dice-result-5{transform:rotateX(-90deg)rotateY(0)}.dice-cube.dice-result-6{transform:rotateX(-18deg)rotateY(204deg)}.dice-cube:after{content:"";filter:blur(12px);background:#0000003d;border-radius:22px;position:absolute;inset:8px;transform:translateZ(-68px)}.dice-face{backface-visibility:hidden;background:linear-gradient(145deg,#fff,#d8def0);border:1px solid #14182229;border-radius:18px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:8px;padding:18px;display:grid;position:absolute;inset:0;box-shadow:inset -10px -12px 18px #0000001f,inset 8px 8px 16px #ffffffb8}.dice-face.front{transform:translateZ(61px)}.dice-face.back{transform:rotateY(180deg)translateZ(61px)}.dice-face.right{transform:rotateY(90deg)translateZ(61px)}.dice-face.left{transform:rotateY(-90deg)translateZ(61px)}.dice-face.top{transform:rotateX(90deg)translateZ(61px)}.dice-face.bottom{transform:rotateX(-90deg)translateZ(61px)}.dice-face.front,.dice-face.right,.dice-face.top{filter:brightness(1.02)}.dice-face.back,.dice-face.left,.dice-face.bottom{filter:brightness(.92)}.dice-face span{background:0 0;border-radius:50%;display:block}.dice-face span.on{background:#172033;box-shadow:inset 0 2px 3px #00000047}.instant-stage.is-rolling .dice-cube{animation:.9s cubic-bezier(.2,.7,.15,1) infinite diceRoll}.instant-stage.is-rolling .dice-tray{animation:.45s ease-in-out infinite diceTrayShake}.instant-actions{flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex}.instant-actions .btn{justify-content:center;min-width:64px}.slot-reels{background:linear-gradient(#ffffff14,#0000 26%,#0000002e 100%),#17131f;border:1px solid #ffffff1f;border-radius:8px;justify-content:center;gap:.75rem;padding:.75rem;display:flex;box-shadow:inset 0 0 0 1px #00000047,0 18px 40px #00000047}.slot-reel-window{--slot-size:98px;width:126px;height:var(--slot-size);background:linear-gradient(#00000052,#0000 18% 78%,#00000057),#282334;border:1px solid #ffffff26;border-radius:8px;position:relative;overflow:hidden}.slot-reel-window:before,.slot-reel-window:after{content:"";z-index:2;pointer-events:none;height:24px;position:absolute;left:0;right:0}.slot-reel-window:before{background:linear-gradient(#0000008f,#0000);top:0}.slot-reel-window:after{background:linear-gradient(#0000,#0000008f);bottom:0}.slot-strip{min-height:100%;transform:translateY(calc(-100% + var(--slot-size)));flex-direction:column;display:flex}.slot-revealed{opacity:0;animation:.46s cubic-bezier(.2,.82,.2,1) both slotRevealLeft;transform:translateY(12px)scale(.96)}.slot-symbol{height:var(--slot-size);flex:0 0 var(--slot-size);color:#f0b132;text-align:center;letter-spacing:0;text-shadow:0 2px #00000047;justify-content:center;align-items:center;padding:0 .7rem;font-size:.92rem;font-weight:900;display:flex}.symbol-seven{color:#fef3c7;font-size:2.2rem}.symbol-crown{color:#fde68a}.symbol-diamond{color:#93c5fd}.symbol-bell{color:#fbbf24}.symbol-cherry{color:#fca5a5}.symbol-lemon{color:#bef264}.symbol-spin{color:#f0b132}.instant-stage.is-spinning .slot-strip{animation:.62s linear infinite slotSpin}.restart-note{color:#ffffffb8;margin-top:.15rem;font-size:.78rem;font-weight:700}@keyframes panelEnter{0%{opacity:.72;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes dealCard{0%{opacity:0;transform:translate(180px,-62px)rotate(18deg)scale(.82)}62%{opacity:1;transform:translate(-4px,3px)rotate(-2deg)scale(1.03)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes dealDealerCard{0%{opacity:0;filter:drop-shadow(0 18px 12px #0000002e);transform:translate(280px,-54px)rotate(24deg)rotateY(14deg)scale(.78)}38%{opacity:1;transform:translate(128px,-30px)rotate(12deg)rotateY(8deg)scale(.9)}72%{opacity:1;transform:translate(-7px,5px)rotate(-3deg)rotateY(0)scale(1.04)}to{opacity:1;filter:none;transform:translate(0)rotate(0)rotateY(0)scale(1)}}@keyframes dealPlayerCard{0%{opacity:0;filter:drop-shadow(0 22px 14px #0003);transform:translate(300px,-190px)rotate(28deg)rotateY(16deg)scale(.78)}34%{opacity:1;transform:translate(158px,-112px)rotate(16deg)rotateY(10deg)scale(.88)}72%{opacity:1;transform:translate(-8px,6px)rotate(-4deg)rotateY(0)scale(1.04)}to{opacity:1;filter:none;transform:translate(0)rotate(0)rotateY(0)scale(1)}}@keyframes hiddenCardPulse{50%{box-shadow:0 10px 18px #00000038,0 0 0 3px #ffffff0d}}@keyframes hiddenRevealHint{0%{transform:rotateY(0)}55%{transform:rotateY(84deg)scale(1.02)}to{transform:rotateY(0)}}@keyframes deckDealPulse{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}32%{opacity:.9;transform:translate(-18px,10px)rotate(-8deg)scale(.98)}54%{opacity:.45;transform:translate(-34px,18px)rotate(-14deg)scale(.94)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes deckSettle{0%{transform:rotate(7deg)translateY(0)}50%{transform:rotate(3deg)translateY(4px)}to{transform:rotate(7deg)translateY(0)}}@keyframes chipDouble{0%{transform:translate(0)scale(1)}45%{transform:translate(72px)scale(1.12)rotate(90deg)}to{transform:translate(0)scale(1)}}@keyframes chipWin{0%{transform:translateY(0)scale(1)}45%{transform:translateY(-18px)scale(1.12);box-shadow:0 0 0 8px #23a55a33,0 16px 30px #0000004d}to{transform:translateY(0)scale(1)}}@keyframes chipLoss{0%{opacity:.78;transform:translate(0)rotate(0)}55%{opacity:.5;transform:translate(-18px)rotate(-16deg)}to{opacity:.62;transform:translate(0)rotate(0)}}@keyframes feltActionGlow{0%{opacity:0}42%{opacity:1}to{opacity:0}}@keyframes resultPop{0%{opacity:.74;transform:scale(.94)}62%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes coinFlip{0%{transform:rotateY(0)translateY(0)}45%{transform:rotateY(540deg)translateY(-18px)}to{transform:rotateY(1080deg)translateY(0)}}@keyframes diceRoll{0%{transform:translateY(0)rotateX(-18deg)rotateY(24deg)rotate(0)}25%{transform:translateY(-22px)rotateX(128deg)rotateY(156deg)rotate(34deg)}52%{transform:translateY(2px)rotateX(246deg)rotateY(292deg)rotate(82deg)}78%{transform:translateY(-10px)rotateX(338deg)rotateY(438deg)rotate(128deg)}to{transform:translateY(0)rotateX(522deg)rotateY(624deg)rotate(180deg)}}@keyframes diceTrayShake{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes slotSpin{0%{filter:blur();transform:translateY(0)}to{filter:blur(1px);transform:translateY(-588px)}}@keyframes slotRevealLeft{0%{opacity:0;filter:brightness(.75);transform:translateY(14px)scale(.94)}64%{opacity:1;filter:brightness(1.28);transform:translateY(-4px)scale(1.04)}to{opacity:1;filter:brightness();transform:translateY(0)scale(1)}}@media (width<=640px){.lobby-shell,.blackjack-shell,.instant-shell{align-items:stretch}.lobby-card{min-height:calc(100vh - 2rem)}.lobby-header{flex-direction:column;margin-bottom:1.25rem}.lobby-header-actions{justify-content:flex-start;width:100%}.language-toggle{min-height:38px}.lobby-user{flex-wrap:wrap;width:100%}.lobby-user div{flex:1;min-width:0}.lobby-user strong{overflow-wrap:anywhere}.lobby-logout{margin-left:0}.game-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.game-tab{justify-content:flex-start;min-height:46px;padding:.58rem}.game-start-panel{grid-template-columns:1fr;gap:1.25rem}.bet-row{flex-wrap:wrap}.bet-row input{flex-basis:calc(100% - 2rem)}.bet-row .btn{justify-content:center;width:100%}.blackjack-table{min-height:calc(100vh - 2rem)}.blackjack-topbar{flex-direction:column;align-items:flex-start}.table-links{width:100%}.table-links .btn{flex:1;justify-content:center}.blackjack-card{width:64px;font-size:1.25rem}.deck-shoe{opacity:.64;width:54px;height:76px;top:98px}.bet-chip{width:48px;height:48px;font-size:.75rem;bottom:5.25rem}.blackjack-cards{min-height:102px}.blackjack-summary{grid-template-columns:1fr auto}.instant-table{min-height:calc(100vh - 2rem)}.instant-stage{min-height:170px}.coin-face,.dice-cube{border-radius:16px;width:96px}.coin-face{border-radius:50%}.coin-front,.coin-back{font-size:2.35rem}.dice-cube,.dice-face{padding:14px}.dice-face.front{transform:translateZ(48px)}.dice-face.back{transform:rotateY(180deg)translateZ(48px)}.dice-face.right{transform:rotateY(90deg)translateZ(48px)}.dice-face.left{transform:rotateY(-90deg)translateZ(48px)}.dice-face.top{transform:rotateX(90deg)translateZ(48px)}.dice-face.bottom{transform:rotateX(-90deg)translateZ(48px)}.dice-face{gap:6px}.slot-reels{gap:.45rem;padding:.5rem}.slot-reel-window{--slot-size:76px;width:min(30vw,92px);height:var(--slot-size)}.slot-symbol{font-size:.72rem}.symbol-seven{font-size:1.75rem}.repeat-bet .bet-row input{max-width:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.instant-stage.is-flipping .coin-face{animation:1.05s cubic-bezier(.2,.8,.2,1) infinite coinFlip!important}.instant-stage.is-rolling .dice-cube{animation:.9s cubic-bezier(.2,.7,.15,1) infinite diceRoll!important}.instant-stage.is-rolling .dice-tray{animation:.45s ease-in-out infinite diceTrayShake!important}.instant-stage.is-spinning .slot-strip{animation:.62s linear infinite slotSpin!important}}.app{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--card-border);z-index:50;flex-direction:column;width:220px;min-height:100vh;padding:1rem 0;display:flex;position:fixed}.sidebar .logo{background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1rem;padding:0 1rem;font-size:1.1rem;font-weight:800}.nav-section{color:var(--text-sub);text-transform:uppercase;letter-spacing:1.5px;margin-top:1rem;margin-bottom:.4rem;padding:0 1rem;font-size:.6rem}.nav-item{cursor:pointer;color:var(--text-sub);border-left:3px solid #0000;align-items:center;gap:.5rem;padding:.4rem 1rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{color:var(--text);background:#ffffff0a}.nav-item.active{color:var(--accent);border-left-color:var(--accent);background:#5865f21a}.nav-item svg{flex-shrink:0;width:15px;height:15px}.sidebar-footer{border-top:1px solid var(--card-border);margin-top:auto;padding:.75rem 1rem}.install-btn{width:100%;min-height:34px;color:var(--text);cursor:pointer;background:#5865f224;border:1px solid #5865f28c;border-radius:6px;justify-content:center;align-items:center;gap:.4rem;margin-bottom:.65rem;font-size:.75rem;font-weight:700;transition:background .2s,border-color .2s;display:flex}.install-btn:hover{border-color:var(--accent);background:#5865f238}.user-info{align-items:center;gap:.5rem;display:flex}.user-avatar{object-fit:cover;border-radius:50%;width:28px;height:28px}.user-name{font-size:.75rem;font-weight:600}.logout-btn{color:var(--danger);opacity:.7;margin-top:.4rem;font-size:.7rem;font-weight:600;transition:opacity .2s;display:block}.logout-btn:hover{opacity:1}.main{flex:1;max-width:1400px;margin-left:220px;padding:1.5rem 2rem}.page-title{margin-bottom:.25rem;font-size:1.3rem;font-weight:800}.page-sub{color:var(--text-sub);margin-bottom:1.25rem;font-size:.8rem}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;padding:.85rem}.card-title{text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.stat-title{color:var(--text-sub);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.2rem;font-size:.65rem;font-weight:600}.stat-value{font-size:1.3rem;font-weight:800}.stat-label{color:var(--accent);margin-top:.1rem;font-size:.6rem}.form-group{flex-direction:column;gap:.2rem;margin-bottom:.6rem;display:flex}.form-label{color:var(--text-sub);font-size:.7rem;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--input-bg);border:1px solid var(--card-border);width:100%;color:var(--text);border-radius:6px;outline:none;padding:.45rem .65rem;font-size:.8rem;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent)}.form-select option{background:#1e1f22}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{opacity:.9}.btn-danger{background:var(--danger);color:#fff}.btn-outline{color:var(--accent);border:1px dashed var(--accent);background:0 0}.btn:disabled{opacity:.55;cursor:not-allowed}.module-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin-bottom:1.5rem;display:grid}.module-item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;justify-content:space-between;align-items:center;padding:.6rem .85rem;display:flex}.module-name{font-size:.8rem;font-weight:600}.switch{width:36px;height:18px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background:#ffffff1a;border-radius:18px;transition:all .3s;position:absolute;inset:0}.slider:before{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:all .3s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background:var(--success)}input:checked+.slider:before{transform:translate(18px)}.server-list{flex-direction:column;gap:.5rem;display:flex}.server-item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;align-items:center;gap:.75rem;padding:.6rem .85rem;transition:all .15s;display:flex}.server-item:hover{background:#ffffff0a}.server-icon{background:#1e1f22;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.8rem;font-weight:800;display:flex;overflow:hidden}.server-icon img{object-fit:cover;width:100%;height:100%}.server-info{min-width:0;margin-right:auto}.server-name{font-size:.85rem;font-weight:700}.server-members{color:var(--text-sub);font-size:.7rem}.server-leave-btn{flex-shrink:0;justify-content:center;min-width:72px;padding:.38rem .75rem}.weao-grid{grid-template-columns:minmax(280px,420px) minmax(320px,1fr);gap:.75rem;display:grid}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;display:grid}.setting-note{color:var(--text-sub);margin-top:.6rem;font-size:.72rem;line-height:1.5}.setting-summary{flex-direction:column;gap:.45rem;margin-bottom:.75rem;display:flex}.setting-summary div{border-bottom:1px solid var(--card-border);justify-content:space-between;gap:.75rem;padding:.45rem 0;font-size:.75rem;display:flex}.setting-summary span{color:var(--text-sub)}.setting-summary strong{color:var(--text);text-align:right;overflow-wrap:anywhere;font-size:.72rem}.komerza-grid{grid-template-columns:minmax(280px,420px) minmax(320px,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}.komerza-subnav{flex-wrap:wrap;gap:.45rem;margin-bottom:1.25rem;display:flex}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.kpi-card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:8px;flex-direction:column;justify-content:space-between;min-height:96px;padding:.85rem;display:flex}.kpi-card span{color:var(--text-sub);text-transform:uppercase;letter-spacing:.4px;font-size:.68rem;font-weight:700}.kpi-card strong{color:var(--text);overflow-wrap:anywhere;font-size:1.45rem;line-height:1.15}.kpi-card small{color:var(--text-sub);overflow-wrap:anywhere;font-size:.68rem}.overview-section-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.tab-row,.search-row,.button-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.search-row{min-width:min(100%,420px)}.search-row .form-input{min-width:220px}.tab-btn{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-sub);cursor:pointer;border-radius:6px;padding:.42rem .7rem;font-size:.75rem;font-weight:700}.tab-btn.active{border-color:var(--accent);color:var(--text);background:#5865f22e}.data-table-wrap{border:1px solid var(--card-border);background:var(--card-bg);border-radius:8px;width:100%;margin-bottom:1.5rem;overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:680px}.data-table th,.data-table td{border-bottom:1px solid var(--card-border);text-align:left;overflow-wrap:anywhere;max-width:320px;padding:.55rem .7rem;font-size:.74rem}.data-table th{color:var(--text-sub);text-transform:uppercase;letter-spacing:.5px;background:#0000001f;font-size:.65rem}.data-table tr:last-child td{border-bottom:none}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#ffffff09}.action-cell{min-width:170px}.nowrap{flex-wrap:nowrap}.btn-mini{min-height:28px;padding:.32rem .5rem;font-size:.68rem}.muted-text{color:var(--text-sub);font-size:.7rem}.inline-action-stack{flex-direction:column;gap:.45rem;min-width:220px;display:flex}.inline-reply{grid-template-columns:minmax(160px,1fr) auto;align-items:start;gap:.45rem;display:grid}.detail-drawer-backdrop{z-index:900;background:#0000006b;justify-content:flex-end;display:flex;position:fixed;inset:0}.detail-drawer{background:var(--bg);border-left:1px solid var(--card-border);width:min(540px,100%);height:100%;padding:1rem;overflow:auto;box-shadow:-16px 0 36px #00000059}.drawer-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.drawer-title{color:var(--text);font-size:.95rem;font-weight:800}.drawer-subtitle{color:var(--text-sub);overflow-wrap:anywhere;font-size:.72rem}.icon-btn{border:1px solid var(--card-border);background:var(--card-bg);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:6px;font-size:1.1rem;line-height:1}.drawer-json{min-height:calc(100vh - 110px);max-height:none;margin:0}.empty-state{border:1px dashed var(--card-border);color:var(--text-sub);text-align:center;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem;font-size:.8rem}.console-layout{grid-template-columns:minmax(320px,460px) minmax(360px,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}.console-method-row{grid-template-columns:130px 1fr;gap:.6rem;display:grid}.code-area,.json-viewer{font-family:Cascadia Mono,Consolas,monospace;font-size:.72rem;line-height:1.45}.json-viewer{border:1px solid var(--card-border);min-height:430px;max-height:640px;color:var(--text-sub);white-space:pre-wrap;background:#00000047;border-radius:8px;padding:.75rem;overflow:auto}.confirm-row{color:var(--text-sub);align-items:center;gap:.45rem;margin:.5rem 0 .75rem;font-size:.72rem;line-height:1.4;display:flex}.coupon-create-card{margin-bottom:.75rem}.coupon-form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem;margin-bottom:.75rem;display:grid}.inventory-card{margin-bottom:.75rem}.inventory-layout{grid-template-columns:minmax(320px,1fr) minmax(360px,1.2fr);gap:.75rem;margin-bottom:.75rem;display:grid}.inventory-actions{flex-wrap:wrap;align-items:end;gap:.55rem;margin-bottom:.75rem;display:flex}.inventory-actions .form-group{min-width:min(100%,360px)}.compact-json{min-height:260px;max-height:360px}.danger-zone{margin-top:.8rem}.section-title{border-left:3px solid var(--accent);margin-bottom:.75rem;padding-left:.75rem;font-size:1rem;font-weight:800}.toast{color:#fff;z-index:1000;border-radius:6px;padding:.6rem 1rem;font-size:.8rem;font-weight:600;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(150%)}.toast.show{transform:translateY(0)}.toast-ok{background:var(--success)}.toast-err{background:var(--danger)}.dot{border-radius:50%;width:8px;height:8px;margin-right:.4rem;display:inline-block}.log-viewer{border:1px solid var(--card-border);max-height:500px;color:var(--text-sub);white-space:pre-wrap;background:#0006;border-radius:8px;padding:1rem;font-family:monospace;font-size:.7rem;line-height:1.6;overflow:auto}@media (width<=768px){.sidebar{width:50px;padding:.5rem 0}.sidebar .logo,.nav-section,.nav-item span,.sidebar-footer .user-name,.sidebar-footer .logout-btn,.install-btn span:last-child{display:none}.nav-item{border-left:none;justify-content:center;padding:.5rem}.install-btn{width:34px;margin:0 auto .65rem;padding:0}.main{margin-left:50px;padding:1rem}.weao-grid,.komerza-grid,.inventory-layout,.console-layout,.console-method-row{grid-template-columns:1fr}.search-row{width:100%}.search-row .form-input{flex:1;min-width:0}}
