*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:#020b12;background-image:radial-gradient(circle at 50% 50%,#0a253a,#020b12);color:#e8f1f8;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif;overflow:hidden}button{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;background:linear-gradient(135deg,#2a6fa8,#1e4d73);color:#fff;font-size:14px;font-weight:600;box-shadow:0 4px 12px #0003;transition:all .2s cubic-bezier(.4,0,.2,1)}button:hover{background:linear-gradient(135deg,#3886c4,#256391);transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}button:active{transform:translateY(0) scale(.98)}button:disabled{background:#2a3a4a;color:#4a6a82;cursor:not-allowed;transform:none;box-shadow:none}.primary{background:linear-gradient(135deg,#d4a017,#a67c0d)}.primary:hover{background:linear-gradient(135deg,#eab21d,#c49112)}.danger{background:linear-gradient(135deg,#c43030,#912020)}.danger:hover{background:linear-gradient(135deg,#de4040,#b32a2a)}.mobile-warning{width:100vw;height:100vh;background:#020b12;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;padding:40px}.mobile-warning-icon{font-size:64px}.mobile-warning-title{margin:0;font-size:26px;font-weight:800;background:linear-gradient(90deg,#ffd54a,#d4a017);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.mobile-warning-desc{margin:0;font-size:16px;color:#8fb0c4;line-height:1.8;max-width:320px}.mobile-warning-devices{display:flex;gap:40px;justify-content:center;margin-top:8px}.mobile-warning-device{display:flex;flex-direction:column;align-items:center;gap:8px}.mobile-warning-device-icon{font-size:40px}.mobile-warning-device-label{font-size:14px;color:#5a9abf;font-weight:600}.mobile-warning-note{font-size:12px;color:#2a4a62;margin-top:8px;border:1px solid rgba(42,77,106,.3);border-radius:8px;padding:10px 20px}.lobby{display:flex;align-items:center;justify-content:center;height:100%;overflow-y:auto;padding:24px 16px}.lobby-card{background:#142a3e99;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:30px 40px;box-shadow:0 24px 60px #0009;width:100%;max-width:480px;text-align:center;margin:auto}.lobby-card h1{margin:0 0 8px;background:linear-gradient(90deg,#ffd54a,#d4a017);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:32px;letter-spacing:4px;font-weight:800}.lobby-card .sub{color:#8fb0c4;font-size:14px;margin-bottom:20px;letter-spacing:1px}.lobby-card label{display:block;font-size:12px;color:#8fb0c4;margin:16px 0 6px;text-align:left;text-transform:uppercase;font-weight:700}.lobby-card input{width:100%;padding:12px 16px;border-radius:8px;border:1px solid rgba(42,77,106,.5);background:#0a1b29cc;color:#fff;font-size:16px;transition:border-color .2s}.lobby-card input:focus{outline:none;border-color:#2a6fa8;background:#0a1b29}.lobby-card .actions{margin-top:32px;display:flex;flex-direction:column;gap:12px}.lobby-card .actions button{width:100%;padding:14px;font-size:16px}.scene{display:flex;flex-direction:column;width:100vw;height:100vh}.scene-top{height:9%;min-height:62px;background:#0c2334e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(28,61,87,.5);display:flex;align-items:stretch;gap:0;z-index:5}.scene-center{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:4px;min-height:0;overflow:hidden}.scene-bottom{height:34%;min-height:180px;background:#081420f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:2px solid rgba(15,155,140,.4);box-shadow:inset 0 10px 30px #0f9b8c0d,0 -8px 24px #0006;display:flex;gap:8px;padding:8px 10px}.top-left-status{flex:2.5;border-right:1px solid rgba(28,61,87,.3);display:flex;align-items:center;gap:16px;padding:6px 20px}.status-group{display:flex;align-items:center;gap:10px}.user-profile{display:flex;align-items:center;gap:10px;padding:6px 14px;border-radius:10px;box-shadow:0 4px 12px #00000040;font-size:16px;transition:all .2s ease}.user-profile.is-p1{background:#10b98126;border:2px solid rgba(16,185,129,.6);box-shadow:0 0 12px #10b9814d}.user-profile.is-p2{background:#ef444426;border:2px solid rgba(239,68,68,.6);box-shadow:0 0 12px #ef44444d}.user-name{font-size:16px;font-weight:800;color:#e8f1f8;letter-spacing:.5px}.top-center-status{flex:1.8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px}.round-number{font-size:16px;font-weight:800;color:#ffd54a;letter-spacing:2px;text-shadow:0 0 10px rgba(255,213,74,.3)}.top-right-opp{flex:3;border-left:1px solid rgba(28,61,87,.3);display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:6px 20px}.opp-profile{display:flex;align-items:center;gap:8px;padding:5px 12px;border-radius:8px;box-shadow:0 2px 8px #00000026;font-size:14px;transition:all .2s ease}.opp-profile.is-p1{background:#10b98114;border:1px solid rgba(16,185,129,.3)}.opp-profile.is-p2{background:#ef444414;border:1px solid rgba(239,68,68,.3)}.opp-name{font-size:14px;font-weight:700;color:#a0c0d8;letter-spacing:.5px}.user-side-label{font-size:11px;font-weight:900;color:#ffd54a;background:#ffd54a2e;padding:2px 6px;border-radius:4px;border:1px solid rgba(255,213,74,.45)}.opp-side-label{font-size:10px;font-weight:700;color:#8fb0c4;background:#ffffff0d;padding:2px 5px;border-radius:4px;border:1px solid rgba(255,255,255,.15)}.top-opp-track{display:flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:250px;min-height:20px}.track-label{font-size:10px;color:#5a7d95;font-weight:800}.track-empty{font-size:10px;color:#355368;font-style:italic}.timer-display{font-size:18px;font-weight:800;min-width:50px;text-align:left}.timer-urgent{color:#ff4a4a;text-shadow:0 0 8px rgba(255,74,74,.5)}.timer-normal{color:#ffd54a;text-shadow:0 0 8px rgba(255,213,74,.4)}.inline-bgm-controller{display:flex;align-items:center;gap:8px;background:#0c2334b3;border:1px solid rgba(28,61,87,.6);padding:4px 10px;border-radius:16px;margin-top:2px;box-shadow:0 4px 12px #0000004d}.inline-bgm-info{font-size:10px;color:#8fb0c4;font-weight:700;display:flex;align-items:center;gap:5px}.inline-bgm-btn{background:transparent;border:none;color:#fff;font-size:11px;cursor:pointer;padding:2px 4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;box-shadow:none!important}.inline-bgm-btn:hover{background:#ffffff1a;transform:scale(1.1)}.inline-bgm-volume{display:flex;align-items:center;gap:4px;border-left:1px solid rgba(28,61,87,.5);padding-left:6px}.inline-bgm-slider{width:44px;height:3px;accent-color:#ffd54a;cursor:pointer;background:#ffffff26;border:none;outline:none;border-radius:2px}.badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:800;letter-spacing:1px;box-shadow:0 3px 8px #0000004d;border:1px solid rgba(255,255,255,.08)}.badge.p1{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 0 10px #10b98133}.badge.p2{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 0 10px #ef444433}.badge.turn{background:linear-gradient(135deg,#fbbf24,#d97706);color:#1a0e00;box-shadow:0 0 12px #fbbf2466;animation:pulse 2s infinite;border-color:#fbbf244d}.badge.waiting{background:#ffffff0d;color:#5a7a90;border-color:#ffffff08}@keyframes pulse{0%{box-shadow:0 0 #ffd54a66}70%{box-shadow:0 0 0 10px #ffd54a00}to{box-shadow:0 0 #ffd54a00}}.opp-track-card{font-size:11px;padding:2px 7px;border-radius:4px;font-weight:600;background:#2864c84d;border:1px solid rgba(60,140,255,.4);color:#8fb0ea}.opp-track-card.magic{background:#8c50dc40;border-color:#a064ff66;color:#c0a0ff}.section-header{display:flex;align-items:center;gap:8px;min-height:30px;flex-shrink:0}.step-badge{background:#ffd54a;color:#1a0e00;font-size:12px;font-weight:800;padding:3px 10px;border-radius:12px;white-space:nowrap}.section-hint{font-size:11px;color:#4a8ab0}.clear-track-btn{margin-left:auto;padding:3px 10px;font-size:11px;font-weight:700;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#8fb0c4}.clear-track-btn:hover{background:#ff505026;border-color:#ff50504d;color:#ff8a8a;transform:none}.bottom-hand{flex:0 0 54%;display:flex;flex-direction:column;gap:6px;min-width:0;overflow:clip;border-right:1px solid rgba(28,61,87,.4);padding-right:8px}.hand-grid{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;padding:6px;overflow-y:auto;overflow-x:visible;flex:1}.hand-grid::-webkit-scrollbar{width:4px}.hand-grid::-webkit-scrollbar-track{background:transparent}.hand-grid::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.card-item{position:relative;width:clamp(72px,5.6vw,105px);background:#0b2e3e;border-radius:14px;border:3px solid #1d6480;display:flex;flex-direction:column;align-items:stretch;gap:0;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;box-shadow:0 4px 14px #0000008c,inset 0 1px #ffffff0f;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card-item:hover{transform:scale(1.06);box-shadow:0 8px 24px #000000a6,0 0 10px #50c8ff33;border-color:#78dcff99}.card-item.action{border-color:#1d6480}.card-item.magic{background:#1a0b38;border-color:#5a2a9e}.card-item.magic:hover{border-color:#b478ffb3}.card-icon{display:flex;align-items:center;justify-content:center;padding:5px 5px 2px;font-size:28px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.card-image{width:100%;height:auto;object-fit:contain;display:block}.card-label{font-size:clamp(9px,.78vw,11px);font-weight:800;color:#d0eaf8;text-shadow:0 1px 2px rgba(0,0,0,.6);text-align:center;padding:4px 3px 5px;background:#0006;border-top:1px solid rgba(255,255,255,.08)}.card-item.action:hover .card-label{color:#ffd54a}.card-item.magic:hover .card-label{color:#d0b0ff}.card-count-badge{position:absolute;top:4px;right:4px;width:22px;height:22px;padding:0;min-width:unset;font-size:13px;font-weight:900;line-height:22px;text-align:center;border-radius:50%;background:#1ec44a;color:#fff;border:2px solid rgba(0,0,0,.35);pointer-events:none}.card-item.magic .card-count-badge{background:#83c}.bottom-track{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0;border-right:1px solid rgba(28,61,87,.4);padding-right:8px}.track-slots-numbered{display:flex;gap:6px;flex:1;overflow-x:auto;overflow-y:hidden;background:#00000047;border-radius:10px;padding:28px 8px 24px;align-items:flex-start;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.track-slots-numbered::-webkit-scrollbar{height:4px}.track-slots-numbered::-webkit-scrollbar-track{background:transparent}.track-slots-numbered::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.track-slot-num{flex-shrink:0;width:clamp(58px,4.5vw,78px);height:clamp(76px,6vw,100px);border-radius:8px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#2a6fa8d9;border:1.5px solid #3886c4;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.track-slot-num:hover{border-color:#ff6b6b;background:#c83c3c66}.track-slot-num.magic-slot{background:#6a4d99d9;border-color:#7e57c2}.track-slot-num.active-slot{outline:2.5px solid #ffd54a;box-shadow:0 0 14px #ffd54a8c;transform:scale(1.1);cursor:default;border-color:#ffd54a}.track-slot-num.active-slot:hover{background:#2a6fa8d9}.track-slot-num.empty-slot{background:#ffffff08;border:1.5px dashed rgba(255,255,255,.12);cursor:default}.track-slot-num.empty-slot:hover{border-color:#ffffff1f;background:#ffffff08;transform:none}.slot-number{position:absolute;top:3px;left:5px;font-size:9px;font-weight:700;color:#ffffff73}.slot-cmd-icon{width:clamp(28px,2.2vw,40px);height:clamp(28px,2.2vw,40px);object-fit:contain}.slot-cmd-label{font-size:clamp(8px,.65vw,10px);font-weight:700;color:#c0d8ea;text-align:center}.slot-active-arrow{position:absolute;bottom:3px;right:5px;font-size:9px;color:#ffd54a;font-weight:800}.bottom-exec{flex:0 0 108px;display:flex;align-items:stretch}.exec-btn-big{width:100%;flex:1;background:linear-gradient(160deg,#d4a017,#8a6010);border:none;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:#1a0e00;font-family:inherit;box-shadow:0 4px 20px #d4a01759;transition:all .2s ease;padding:0}.exec-btn-big:hover:not(:disabled){background:linear-gradient(160deg,#eab21d,#a67c0d);box-shadow:0 6px 28px #d4a0178c;transform:scale(1.03)}.exec-btn-big:active:not(:disabled){transform:scale(.97)}.exec-btn-big:disabled{background:#1e3244cc;color:#2a4a5e;box-shadow:none;cursor:not-allowed}.exec-btn-icon{font-size:clamp(28px,2.8vw,44px)}.exec-btn-label{font-size:clamp(15px,1.3vw,20px);font-weight:800;letter-spacing:2px}.exec-btn-sub{font-size:10px;opacity:.6;letter-spacing:.5px}.hand-area{flex:0 0 60%;display:flex;flex-direction:column;min-width:0;border-right:1px solid rgba(28,61,87,.4);padding-right:12px}.track-area{flex:1;background:#0a1c2b66;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;border:1px solid rgba(255,255,255,.05);min-width:0}.exec-area{flex:0 0 180px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding-left:8px}.exec-area button{width:100%;height:100%;font-family:inherit;font-weight:800;font-size:16px;letter-spacing:1.5px;border-radius:12px;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 15px #10b98133}.exec-area button.primary{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:1.5px solid rgba(52,211,153,.2)}.exec-area button.primary:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98166;transform:scale(1.02)}.exec-area button:disabled{background:#1e3244cc;color:#2a4a5e;box-shadow:none;cursor:not-allowed;border:1.5px solid rgba(255,255,255,.02)}.setup-card-grid{display:flex;gap:10px;align-items:center;flex:1;overflow-x:auto;overflow-y:hidden;padding:8px 4px 12px}.setup-card-grid::-webkit-scrollbar{height:4px}.setup-card-grid::-webkit-scrollbar-track{background:transparent}.setup-card-grid::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.setup-card{position:relative;width:clamp(90px,7vw,120px);height:clamp(120px,9vw,150px);background:#ffffff0a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;border:1.5px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:10px 6px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .25s cubic-bezier(.175,.885,.32,1.25);box-shadow:0 4px 12px #0000004d}.setup-card:hover{transform:translateY(-6px) scale(1.05);border-color:#ffffff59;box-shadow:0 10px 24px #00000080;background:#ffffff14}.setup-card.active{background:linear-gradient(135deg,#ffd54a26,#0c2334b3);border-color:#ffd54a;box-shadow:0 0 16px #ffd54a73}.setup-card-image-wrap{flex:1;display:flex;align-items:center;justify-content:center;width:100%;margin-top:4px}.setup-card-image{width:clamp(40px,3.2vw,55px);height:clamp(40px,3.2vw,55px);object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4));transition:transform .2s ease}.setup-card:hover .setup-card-image{transform:scale(1.1)}.setup-card-icon{font-size:clamp(28px,2.4vw,36px);filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.setup-card-label{font-size:clamp(11px,.9vw,13px);font-weight:800;color:#c0d8ea;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);margin-bottom:2px}.setup-card.active .setup-card-label{color:#ffd54a}.setup-card-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;font-size:10px;font-weight:800;line-height:18px;text-align:center;border-radius:10px;background:#1d3a55e6;border:1px solid rgba(255,255,255,.2);color:#fff;z-index:2;box-shadow:0 2px 5px #0000004d;display:flex;align-items:center;justify-content:center}.setup-card-badge.full{background:linear-gradient(135deg,#10b981,#059669);border-color:#34d399;box-shadow:0 0 8px #10b98166}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#020b12e6;display:flex;align-items:center;justify-content:center;z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay .panel{background:#142a3ed9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:48px 64px;text-align:center;box-shadow:0 32px 80px #000c;max-width:90%}.overlay h2{margin:0 0 20px;font-size:36px;font-weight:800;color:#ffd54a}.overlay .dice{font-size:72px;font-weight:900;color:#fff;margin:24px 0;letter-spacing:32px;text-shadow:0 0 20px rgba(255,255,255,.3)}.pixi-wrap{background:#061626;border-radius:12px;box-shadow:0 0 0 2px #1c3d57cc,0 10px 40px #00000080;aspect-ratio:24 / 10;height:100%;max-width:100%;position:relative;overflow:hidden}.pixi-wrap canvas{position:absolute;top:0;left:0;transform-origin:top left;display:block}.event-toast{position:absolute;top:24px;left:50%;transform:translate(-50%);background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;padding:10px 24px;border-radius:30px;font-size:14px;z-index:15;pointer-events:none;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 15px #0006;animation:slideDown .3s ease-out;white-space:nowrap}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}.draw-overlay{z-index:100}.draw-panel{width:460px!important;text-align:center}.deck-visual{position:relative;width:120px;height:160px;margin:30px auto;cursor:pointer;transition:transform .2s}.deck-visual:hover{transform:translateY(-5px)}.deck-visual .card-back{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1e3d59,#122334);border:2px solid #8fb0c4;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:40px;box-shadow:0 4px 10px #00000080;transition:all .3s}.deck-visual .card-back:nth-child(2){transform:translate(4px,4px);z-index:-1}.deck-visual .card-back:nth-child(3){transform:translate(8px,8px);z-index:-2}.deck-visual:hover .card-back{border-color:#ffd54a;box-shadow:0 0 15px #ffd54a66}.card-front-anim{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#ffd54a,#d4a017);color:#000;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;z-index:10;box-shadow:0 10px 30px #00000080;border:2px solid #fff;animation:drawCardAnim .8s ease-out forwards}@keyframes drawCardAnim{0%{transform:translate(0) rotate(0);opacity:1}50%{transform:translate(150px,-200px) rotate(20deg);opacity:1}to{transform:translate(300px) scale(.5);opacity:0}}.deck-visual.drawing{pointer-events:none}.admin-card{text-align:left}.admin-form{margin:24px 0}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:#8fb0c4;margin-bottom:6px;font-weight:600}.form-group input{width:100%;padding:10px;background:#0a1b29cc;border:1px solid rgba(42,77,106,.5);border-radius:6px;color:#fff;font-size:14px}@media (max-width: 1100px){.bottom-exec{flex:0 0 90px}.step-badge{font-size:11px;padding:2px 8px}.top-opp{flex:2}.top-me{flex:2;gap:6px;padding:6px 10px}.round-number{font-size:15px}.timer-display{font-size:17px}}@media (max-width: 800px){.scene-bottom{height:37%;padding:6px 8px;gap:6px}.bottom-hand{flex:0 0 52%;padding-right:6px}.bottom-exec{flex:0 0 80px}.exec-btn-label{font-size:14px}.top-opp-track{display:none}}.wrap-setter{position:absolute;top:-24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;background:#1e3c5af2;border:1px solid rgba(255,255,255,.2);padding:2px 6px;border-radius:20px;box-shadow:0 4px 8px #0006;z-index:5}.wrap-btn{width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px;background:#2a6fa8;border-radius:4px}.wrap-btn:hover:not(:disabled){background:#3886c4}.wrap-btn:disabled{background:#1a2a3a;color:#4a5a6a}.wrap-val{font-size:10px;font-weight:800;color:#ffd54a;white-space:nowrap}.track-slot-wrapper{transition:all .2s ease}.wrap-bracket{position:absolute;top:-6px;left:-4px;height:calc(100% + 12px);border-radius:12px;pointer-events:none;display:flex;align-items:flex-start;justify-content:flex-end;padding:3px 5px 0 0;z-index:0}.bracket-label{font-size:9px;font-weight:800;background:#081624e0;padding:1px 5px;border-radius:4px}.track-connector{display:flex;align-items:center;justify-content:center;width:28px;height:clamp(76px,6vw,100px);flex-shrink:0;-webkit-user-select:none;user-select:none}.connector-arrow{font-size:14px;color:#00e5ff73;text-shadow:0 0 8px rgba(0,229,255,.3);font-weight:900;animation:pulseConnector 2.4s infinite ease-in-out}@keyframes pulseConnector{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.15);color:#00e5ff;text-shadow:0 0 12px #00e5ff,0 0 20px rgba(0,229,255,.4)}}.puzzle-card{transition:transform .18s ease,box-shadow .18s ease}.puzzle-card:hover{box-shadow:0 8px 28px #00000080!important}.pzl-track-slot{position:relative;width:72px;height:96px;border-radius:10px;background:#2a6fa8d9;border:1.5px solid #3886c4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease;margin-top:24px}.pzl-track-slot:hover{border-color:#ff6b6b;background:#c83c3c66}.pzl-track-slot.magic-slot{background:#6a4d99d9;border-color:#7e57c2}.pzl-slot-active{outline:2.5px solid #ffd54a;box-shadow:0 0 14px #ffd54a99;transform:scale(1.1);border-color:#ffd54a!important}.pzl-wrap-ctrl{position:absolute;top:-22px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:3px;background:#143250f2;border:1px solid rgba(255,255,255,.15);padding:1px 5px;border-radius:12px;white-space:nowrap;z-index:5}.pzl-wrap-btn{width:16px;height:16px;padding:0;display:flex;align-items:center;justify-content:center;font-size:13px;background:#2a6fa8;border-radius:3px;box-shadow:none}.pzl-wrap-btn:hover:not(:disabled){background:#3886c4;transform:none}.pzl-wrap-btn:disabled{background:#1a2a3a;color:#3a5a6a}@keyframes goalPulse{0%,to{box-shadow:0 0 #ffd54a66}50%{box-shadow:0 0 10px 4px #ffd54a40}}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(6px)}45%{transform:translate(-5px)}60%{transform:translate(5px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}.card-active{transform:scale(1.15) translateY(-8px);box-shadow:0 0 20px #00e5ff99;border-color:#00e5ff!important;z-index:10;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.card-executed{opacity:.6;filter:grayscale(.5)}@keyframes ship-move{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.ship-anim{animation:ship-move .3s ease-out}.repeat-iteration-badge{animation:pulse-glow-badge 1.5s infinite alternate}@keyframes pulse-glow-badge{0%{box-shadow:0 0 2px #ffb30066}to{box-shadow:0 0 10px #ffb300e6}}.bgm-controller{position:fixed;top:10px;right:140px;z-index:10000;display:flex;flex-direction:row-reverse;align-items:center;gap:12px;pointer-events:auto}.bgm-disc-container{width:44px;height:44px;border-radius:50%;background:conic-gradient(#111,#2b2b2b,#111,#3b3b3b,#111);box-shadow:0 4px 15px #00000080,0 0 0 2px #ffffff1a;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),box-shadow .3s}.bgm-disc-container:hover{transform:scale(1.1);box-shadow:0 6px 20px #2a6fa899,0 0 0 2px #2a6fa866}.bgm-disc{width:36px;height:36px;border-radius:50%;border:1px dashed rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#222 30%,#111 70%);position:relative}.bgm-disc-inner{font-size:14px;color:#ffd54a;text-shadow:0 0 5px rgba(255,213,74,.5);-webkit-user-select:none;user-select:none}.bgm-disc-container.playing .bgm-disc{animation:rotateRecord 8s linear infinite}@keyframes rotateRecord{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bgm-panel{background:#0a1c2ce6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 14px;width:220px;box-shadow:0 12px 36px #00000080;display:flex;flex-direction:column;gap:10px;animation:bgmSlideIn .3s cubic-bezier(.16,1,.3,1);font-family:inherit}@keyframes bgmSlideIn{0%{opacity:0;transform:translate(15px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.bgm-title{font-size:13px;font-weight:800;color:#ffd54a;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:6px;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.bgm-track-info{font-size:12px;color:#8fb0c4;font-weight:600;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.bgm-wave-anim{display:inline-flex;align-items:flex-end;gap:2px;width:12px;height:10px}.bgm-wave-anim span{width:2px;background-color:#ffd54a;border-radius:1px;height:2px}.bgm-disc-container.playing+.bgm-panel .bgm-wave-anim span:nth-child(1){animation:bgmWave .8s ease-in-out infinite alternate}.bgm-disc-container.playing+.bgm-panel .bgm-wave-anim span:nth-child(2){animation:bgmWave .5s ease-in-out infinite alternate .15s}.bgm-disc-container.playing+.bgm-panel .bgm-wave-anim span:nth-child(3){animation:bgmWave .7s ease-in-out infinite alternate .3s}@keyframes bgmWave{0%{height:2px}to{height:10px}}.bgm-controls{display:flex;gap:8px}.bgm-btn{flex:1;padding:6px 10px;font-size:12px;font-weight:700;border-radius:6px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#fff;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer}.bgm-btn:hover{background:#ffffff26;transform:translateY(-1px)}.bgm-btn:active{transform:translateY(0)}.bgm-btn.toggle-btn.active{background:linear-gradient(135deg,#1e63a8,#104169);border-color:#2a6fa866}.bgm-btn.toggle-btn.active:hover{background:linear-gradient(135deg,#2a7ac8,#154f80)}.bgm-volume-container{display:flex;align-items:center;gap:8px;font-size:12px;color:#8fb0c4}.bgm-volume-slider{flex:1;height:4px;border-radius:2px;background:#ffffff26;outline:none;border:none;cursor:pointer;accent-color:#ffd54a}.volume-icon{font-size:13px;-webkit-user-select:none;user-select:none}.volume-text{font-size:11px;min-width:32px;text-align:right;font-weight:700;color:#8fb0c4;-webkit-user-select:none;user-select:none}.custom-alert-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#01070ca6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:99999;animation:fadeInAlert .25s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeInAlert{0%{opacity:0}to{opacity:1}}.custom-alert-box{background:radial-gradient(circle at top left,#0e273b,#051421);border:1px solid rgba(255,213,74,.25);border-radius:16px;padding:24px 30px;width:90%;max-width:420px;box-shadow:0 15px 45px #000000b3,0 0 20px #ffd54a0d;text-align:center;transform:translateY(20px) scale(.95);animation:slideInAlert .3s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes slideInAlert{to{transform:translateY(0) scale(1)}}.custom-alert-header{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}.custom-alert-icon{font-size:24px}.custom-alert-title{font-size:18px;font-weight:800;color:#ffd54a;letter-spacing:1px}.custom-alert-body{font-size:15px;color:#c0d8ea;line-height:1.6;margin-bottom:24px;word-break:break-word;white-space:pre-line}.custom-alert-actions{display:flex;justify-content:center}.custom-alert-btn{background:linear-gradient(135deg,#ffd54a,#d4a017);color:#1a0e00;border:none;border-radius:8px;padding:12px 35px;font-size:15px;font-weight:800;box-shadow:0 4px 15px #ffd54a4d;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;outline:none}.custom-alert-btn:hover{background:linear-gradient(135deg,#ffe066,#e6af1b);transform:translateY(-2px);box-shadow:0 6px 20px #ffd54a66}.custom-alert-btn:active{transform:translateY(0) scale(.98)}.custom-alert-box.error{border-color:#ff4d4d59;box-shadow:0 15px 45px #000000b3,0 0 20px #ff4d4d0d}.custom-alert-box.error .custom-alert-title{color:#ff6b6b}.custom-alert-box.error .custom-alert-btn{background:linear-gradient(135deg,#ff6b6b,#d32f2f);color:#fff;box-shadow:0 4px 15px #ff4d4d4d}.custom-alert-box.error .custom-alert-btn:hover{background:linear-gradient(135deg,#ff8585,#e53935);box-shadow:0 6px 20px #ff4d4d66}.custom-alert-box.success{border-color:#10b98159;box-shadow:0 15px 45px #000000b3,0 0 20px #10b9810d}.custom-alert-box.success .custom-alert-title{color:#10b981}.custom-alert-box.success .custom-alert-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 15px #10b9814d}.custom-alert-box.success .custom-alert-btn:hover{background:linear-gradient(135deg,#34d399,#047857);box-shadow:0 6px 20px #10b98166}.card-discard-btn{position:absolute;top:4px;left:4px;width:22px;height:22px;border-radius:50%;background:#ef4444d9;color:#fff;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;z-index:10;transition:all .2s ease;box-shadow:0 2px 6px #0006;padding:0}.card-discard-btn:hover{background:#ef4444;transform:scale(1.15);box-shadow:0 2px 10px #ef444480}.confirm-loss-panel{max-width:440px!important;border-color:#ff6b6b4d!important;box-shadow:0 20px 50px #000c,0 0 30px #ff6b6b0d!important;transform:scale(.95);animation:slideInConfirm .3s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes slideInConfirm{to{transform:scale(1)}}.confirm-loss-btn-danger{background:linear-gradient(135deg,#ff6b6b,#d32f2f)!important;color:#fff!important;border:none!important;border-radius:10px!important;padding:12px 28px!important;font-size:15px!important;font-weight:800!important;box-shadow:0 4px 15px #ff6b6b4d!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;cursor:pointer!important;outline:none!important}.confirm-loss-btn-danger:hover{background:linear-gradient(135deg,#ff8585,#e53935)!important;transform:translateY(-2px)!important;box-shadow:0 6px 20px #ff6b6b66!important}.confirm-loss-btn-danger:active{transform:translateY(0) scale(.98)!important}.confirm-loss-btn-cancel{background:#ffffff14!important;color:#c0d8ea!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:10px!important;padding:12px 28px!important;font-size:15px!important;font-weight:800!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;cursor:pointer!important;outline:none!important}.confirm-loss-btn-cancel:hover{background:#ffffff26!important;color:#fff!important;border-color:#ffffff59!important;transform:translateY(-2px)!important}.confirm-loss-btn-cancel:active{transform:translateY(0) scale(.98)!important}.fake-treasure-panel{max-width:440px!important;border-color:#ffc32866!important;box-shadow:0 20px 50px #000c,0 0 30px #ffc3280d!important;transform:scale(.95);animation:slideInConfirm .3s cubic-bezier(.34,1.56,.64,1) forwards}.sticker-panel{position:absolute;bottom:16px;z-index:99;display:flex;flex-direction:column;gap:12px;pointer-events:auto}.sticker-panel.side-P1{left:12px;align-items:flex-start}.sticker-panel.side-P2{right:12px;align-items:flex-end}.sticker-bubble-container{position:relative;width:140px;background:#0a1c2bed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:10px;box-shadow:0 12px 32px #000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:fadeInOutSticker 3.1s cubic-bezier(.175,.885,.32,1.275) forwards;pointer-events:none;z-index:100}.sticker-bubble-container.type-positive{border:2px solid rgba(16,185,129,.75);box-shadow:0 12px 32px #000000b3,0 0 15px #10b98140}.sticker-bubble-container.type-positive .sticker-bubble-text{color:#a7f3d0;text-shadow:0 0 8px rgba(16,185,129,.6)}.sticker-bubble-container.type-negative{border:2px solid rgba(239,68,68,.75);box-shadow:0 12px 32px #000000b3,0 0 15px #ef444440}.sticker-bubble-container.type-negative .sticker-bubble-text{color:#fecaca;text-shadow:0 0 8px rgba(239,68,68,.6);animation:glitchMini 1s infinite alternate}.sticker-bubble-img{width:90px;height:90px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5))}.sticker-bubble-text{font-size:12px;font-weight:800;margin-top:6px;text-align:center;white-space:nowrap}.sticker-bubble-tail{position:absolute;bottom:-8px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;z-index:101}.side-P1 .sticker-bubble-tail{left:20px;border-top:8px solid rgba(16,185,129,.75)}.side-P1 .sticker-bubble-container.type-negative .sticker-bubble-tail{border-top-color:#ef4444bf}.side-P2 .sticker-bubble-tail{right:20px;border-top:8px solid rgba(16,185,129,.75)}.side-P2 .sticker-bubble-container.type-negative .sticker-bubble-tail{border-top-color:#ef4444bf}.sticker-selector-container{position:relative;display:inline-block}.sticker-trigger-btn{background:linear-gradient(135deg,#10b981,#059669);border:1.5px solid rgba(52,211,153,.35);color:#fff;font-size:13px;font-weight:800;padding:8px 16px;border-radius:20px;box-shadow:0 4px 12px #0006;transition:all .2s cubic-bezier(.4,0,.2,1)}.side-P2 .sticker-trigger-btn{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#f8717159}.sticker-trigger-btn:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 6px 18px #00000080;filter:brightness(1.1)}.sticker-trigger-btn.in-cooldown{background:#1e3244cc!important;border-color:#ffffff0d!important;color:#4a6a82!important;transform:none!important;box-shadow:none!important;cursor:not-allowed}.sticker-selector-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;z-index:1000}.sticker-selector-dropdown{position:absolute;bottom:44px;width:250px;background:#081420f5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1.5px solid rgba(255,255,255,.08);border-radius:14px;padding:12px;box-shadow:0 16px 40px #000c;z-index:1001;display:flex;flex-direction:column;gap:8px;animation:dropdownPop .22s cubic-bezier(.175,.885,.32,1.15) forwards}.side-P1 .sticker-selector-dropdown{left:0}.side-P2 .sticker-selector-dropdown{right:0}.sticker-dropdown-header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08);min-height:24px}.sticker-dropdown-title{font-size:12px;font-weight:800;color:#ffd54a;text-shadow:0 0 5px rgba(255,213,74,.3)}.sticker-back-btn{position:absolute;left:0;background:transparent;border:none;color:#8fb0c4;font-size:10px;font-weight:700;cursor:pointer;padding:3px 8px;border-radius:6px;box-shadow:none!important;transition:all .2s;display:flex;align-items:center;gap:2px}.sticker-back-btn:hover{color:#fff;background:#ffffff14;transform:none}.sticker-category-select{display:flex;flex-direction:column;gap:8px;width:100%}.sticker-category-btn{width:100%;padding:12px;font-size:13px;font-weight:800;border-radius:8px;cursor:pointer;text-align:center;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:none!important}.sticker-category-btn.btn-positive{background:#10b98114;border:1px solid rgba(16,185,129,.25);color:#34d399}.sticker-category-btn.btn-positive:hover{background:#10b9812e;border-color:#10b98199;transform:translateY(-2px);box-shadow:0 4px 12px #10b98133!important}.sticker-category-btn.btn-negative{background:#ef444414;border:1px solid rgba(239,68,68,.25);color:#f87171}.sticker-category-btn.btn-negative:hover{background:#ef44442e;border-color:#ef444499;transform:translateY(-2px);box-shadow:0 4px 12px #ef444433!important}.sticker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;max-height:250px;overflow-y:auto;padding-right:4px}.sticker-grid::-webkit-scrollbar{width:4px}.sticker-grid::-webkit-scrollbar-track{background:transparent}.sticker-grid::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.sticker-grid-item{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:all .18s ease;box-shadow:none!important}.sticker-grid-item:hover{background:#ffffff12;border-color:#fff3;transform:translateY(-2px) scale(1.03)}.sticker-grid-img{width:60px;height:60px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.sticker-grid-text{font-size:9px;font-weight:700;color:#c0d8ea;text-align:center;white-space:nowrap}@keyframes fadeInOutSticker{0%{opacity:0;transform:scale(.6) translateY(24px)}8%{opacity:1;transform:scale(1.08) translateY(0)}12%{opacity:1;transform:scale(1) translateY(0)}88%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.85) translateY(-24px)}}@keyframes dropdownPop{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes glitchMini{0%{transform:skew(0)}50%{transform:skew(.5deg)}to{transform:skew(-.5deg)}}
