*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--bg-gradient);color:#fff;min-height:100vh;overflow:hidden;--bg-gradient: linear-gradient(135deg, #1a5f2a 0%, #0d3d18 100%);--table-bg: rgba(0,0,0,.15);--panel-bg: rgba(0,0,0,.2);--accent-color: #f0c040;--accent-gradient: linear-gradient(135deg, #f0c040 0%, #d4a017 100%);--card-shadow: 0 2px 8px rgba(0,0,0,.3);--ddz-card-enter-stagger: 12;--ddz-hover-lift: 5px;--ddz-selected-lift: 8px}body[data-theme=redwood]{--bg-gradient: linear-gradient(135deg, #5c1a1a 0%, #3d0d0d 100%);--table-bg: rgba(0,0,0,.2);--panel-bg: rgba(0,0,0,.25);--accent-color: #e8a87c;--accent-gradient: linear-gradient(135deg, #e8a87c 0%, #c98a5e 100%);--card-shadow: 0 2px 8px rgba(0,0,0,.4)}body[data-theme=night]{--bg-gradient: linear-gradient(135deg, #1a1a3d 0%, #0d0d2a 100%);--table-bg: rgba(255,255,255,.05);--panel-bg: rgba(255,255,255,.08);--accent-color: #82b1ff;--accent-gradient: linear-gradient(135deg, #82b1ff 0%, #448aff 100%);--card-shadow: 0 2px 10px rgba(0,0,0,.5)}body[data-theme=ocean]{--bg-gradient: linear-gradient(135deg, #0d3d4d 0%, #062a35 100%);--table-bg: rgba(255,255,255,.05);--panel-bg: rgba(255,255,255,.08);--accent-color: #4dd0e1;--accent-gradient: linear-gradient(135deg, #4dd0e1 0%, #00acc1 100%);--card-shadow: 0 2px 10px rgba(0,0,0,.5)}body[data-theme=autumn]{--bg-gradient: linear-gradient(135deg, #5c3a1a 0%, #3d240d 100%);--table-bg: rgba(0,0,0,.15);--panel-bg: rgba(0,0,0,.2);--accent-color: #ffb74d;--accent-gradient: linear-gradient(135deg, #ffb74d 0%, #f57c00 100%);--card-shadow: 0 2px 8px rgba(0,0,0,.4)}body[data-theme=purple]{--bg-gradient: linear-gradient(135deg, #3d1a5c 0%, #240d3d 100%);--table-bg: rgba(255,255,255,.05);--panel-bg: rgba(255,255,255,.08);--accent-color: #ce93d8;--accent-gradient: linear-gradient(135deg, #ce93d8 0%, #ab47bc 100%);--card-shadow: 0 2px 10px rgba(0,0,0,.5)}.hidden{display:none!important}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.ui-icon{width:1em;height:1em;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chat-bubble,.commentary-bubble,#btn-toggle-chat,#chat-panel,#quick-phrases{display:none!important}.screen{width:100vw;height:100vh;display:flex;flex-direction:column}#menu-screen{justify-content:flex-start;align-items:center;overflow-y:auto;overflow-x:hidden;padding:clamp(18px,3.5vh,42px) clamp(14px,3vw,38px);scroll-padding-top:18px;position:relative}.menu-bg-decoration{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.menu-bg-decoration:before,.menu-bg-decoration:after{content:"";position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;animation:bgOrbFloat 12s ease-in-out infinite}.menu-bg-decoration:before{width:50vw;height:50vw;max-width:600px;max-height:600px;background:radial-gradient(circle,rgba(240,192,64,.18) 0%,transparent 70%);top:-10%;left:50%;transform:translate(-50%);animation-delay:0s}.menu-bg-decoration:after{width:40vw;height:40vw;max-width:500px;max-height:500px;background:radial-gradient(circle,rgba(76,175,80,.12) 0%,transparent 70%);bottom:-5%;left:20%;animation-delay:-6s;animation-duration:16s}@keyframes bgOrbFloat{0%,to{transform:translate(-50%) scale(1)}33%{transform:translate(-45%,20px) scale(1.05)}66%{transform:translate(-55%,-10px) scale(.95)}}.menu-container{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px;max-width:1080px;width:100%;min-height:min-content;margin:0 auto;padding-bottom:24px}.menu-header{text-align:center;padding:clamp(8px,2vh,20px) 0}.menu-title-wrap{display:flex;align-items:center;justify-content:center;gap:14px}.title-icon{font-size:clamp(1.3rem,2.2vw,1.7rem);opacity:.7;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg,#f0c0401f,#f0c04008);border:1px solid rgba(240,192,64,.18);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:titleIconFloat 3s ease-in-out infinite;-webkit-user-select:none;user-select:none;line-height:1}.title-icon--spade{color:#e0e0e0;text-shadow:0 1px 3px rgba(0,0,0,.4)}.title-icon--heart{color:#ff6b6b;text-shadow:0 1px 3px rgba(0,0,0,.3);animation-delay:-1.5s}@keyframes titleIconFloat{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}.game-title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:900;text-shadow:0 2px 0 rgba(0,0,0,.2),0 4px 20px rgba(0,0,0,.4),0 0 60px rgba(240,192,64,.15);margin:0;letter-spacing:2px;line-height:1.1;background:linear-gradient(180deg,#fff,#f0d080);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.game-subtitle{font-size:clamp(.9rem,1.6vw,1.15rem);opacity:.55;margin:6px 0 0;letter-spacing:4px;text-transform:uppercase;font-weight:400}.title-divider{width:80px;height:3px;background:linear-gradient(90deg,transparent,#f0c040,transparent);border-radius:2px;margin:14px auto 0;opacity:.5}.menu-body{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(300px,.9fr);gap:22px;align-items:start}.section-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;opacity:.35;margin-bottom:10px;padding-left:4px}.mode-cards{display:flex;flex-direction:column;gap:12px}.mode-card{display:flex;align-items:center;gap:14px;padding:0;border:none;border-radius:18px;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);text-align:left;position:relative;overflow:hidden;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.mode-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;opacity:0;transition:opacity .3s ease;pointer-events:none}.mode-card:hover{transform:translateY(-3px) scale(1.01)}.mode-card:active{transform:translateY(0) scale(.99)}.mode-card__icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:13px;background:#ffffff1a;font-size:1.45rem;flex-shrink:0;box-shadow:inset 0 1px #ffffff1f}.mode-card__content{flex:1;display:flex;flex-direction:column;gap:2px}.mode-card__title{font-size:1.05rem;font-weight:700}.mode-card__desc{font-size:.78rem;opacity:.55;font-weight:400}.mode-card__arrow{font-size:1.15rem;opacity:.4;transition:all .3s ease;padding-right:4px}.mode-card:hover .mode-card__arrow{opacity:.8;transform:translate(4px)}.mode-card--primary{background:linear-gradient(135deg,#f0c040f2,#d4a017f2);color:#2a1a00;padding:20px 22px;box-shadow:0 8px 32px #f0c04040,inset 0 1px #ffffff4d;position:relative}.mode-card--primary:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;background:linear-gradient(135deg,rgba(255,230,120,.5),transparent 50%,rgba(240,192,64,.3));opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:-1}.mode-card--primary:hover:after{opacity:1}.mode-card--primary:hover{box-shadow:0 12px 40px #f0c04066,inset 0 1px #fff6}.mode-card--primary .mode-card__icon{width:52px;height:52px;border-color:#2a1a001f;background:#ffffff38;font-size:1.75rem}.mode-card--primary .mode-card__title{font-size:1.25rem}.mode-card--primary .mode-card__desc{opacity:.6;color:#2a1a00}.mode-card--primary .mode-card__arrow{color:#2a1a00}.mode-card--tournament{margin-top:8px;background:linear-gradient(135deg,#d45050f5,#b42828f5);color:#fff;box-shadow:0 8px 32px #b428283d,inset 0 1px #ffffff3d}.mode-card--tournament:hover{box-shadow:0 12px 40px #b428285c,inset 0 1px #ffffff4d}.mode-card--tournament .mode-card__icon{border-color:#ffffff2e;background:#ffffff1f}.mode-card--tournament .mode-card__desc,.mode-card--tournament .mode-card__arrow{color:#fff}.mode-card--secondary{background:#ffffff14;color:#fff;padding:16px 18px;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #00000026,inset 0 1px #ffffff0d;flex:1}.mode-card--secondary:hover{background:#ffffff24;border-color:#fff3;box-shadow:0 8px 28px #00000040,inset 0 1px #ffffff1a}.mode-card--secondary .mode-card__icon{width:42px;height:42px;font-size:1.3rem}.mode-card--accent{width:100%;padding:14px 18px;color:#fff;background:linear-gradient(135deg,#ffffff1c,#ffffff0e);border:1px solid rgba(240,192,64,.2);box-shadow:0 4px 16px #0000001f,inset 3px 0 #f0c040b8}.mode-card--accent:hover{background:linear-gradient(135deg,#ffffff29,#ffffff14);border-color:#f0c0405c}.mode-card--accent .mode-card__icon{width:42px;height:42px;color:#f4cb5a;font-size:1.3rem}.mode-card--ghost{background:#ffffff0a;color:#fff;padding:12px 14px;border:1px solid rgba(255,255,255,.06);flex-direction:column;align-items:center;gap:6px;flex:1;min-width:0;box-shadow:inset 0 1px #ffffff08}.mode-card--ghost:hover{background:#ffffff1a;border-color:#ffffff26}.mode-card--ghost .mode-card__icon{width:36px;height:36px;border-radius:11px;color:#f3ca5a;font-size:1.15rem}.mode-card--ghost .mode-card__title{font-size:.82rem;font-weight:600}.mode-card-row{display:flex;gap:12px}.mode-card-row--small{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.mode-card{opacity:0;animation:modeCardEnter .5s cubic-bezier(.175,.885,.32,1.275) forwards}.mode-card:nth-child(1){animation-delay:.05s}.mode-card-row:nth-child(2) .mode-card:nth-child(1){animation-delay:.12s}.mode-card-row:nth-child(2) .mode-card:nth-child(2){animation-delay:.18s}.mode-card-row:nth-child(3) .mode-card:nth-child(1){animation-delay:.24s}.mode-card-row:nth-child(3) .mode-card:nth-child(2){animation-delay:.3s}.mode-card-row:nth-child(3) .mode-card:nth-child(3){animation-delay:.36s}@keyframes modeCardEnter{0%{transform:translateY(24px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.stats-panel-wrap{height:100%}.stats-panel{background:#0000002e;border-radius:20px;padding:20px;border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 32px #00000026,inset 0 1px #ffffff0d;height:100%;display:flex;flex-direction:column}.level-bar{margin-bottom:16px;padding:14px 16px;background:#0003;border-radius:14px;border:1px solid rgba(255,255,255,.05)}.level-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.level-badge{background:linear-gradient(135deg,#f0c040,#d4a017);color:#2a1a00;padding:3px 12px;border-radius:20px;font-weight:800;font-size:.85rem;box-shadow:0 2px 8px #f0c0404d}.exp-text{font-size:.78rem;opacity:.6;font-weight:500}.exp-bar{height:8px;background:#ffffff14;border-radius:4px;overflow:hidden;box-shadow:inset 0 1px 2px #0003}.exp-fill{height:100%;background:linear-gradient(90deg,#f0c040,gold,#f0c040);background-size:200% 100%;border-radius:4px;transition:width .6s cubic-bezier(.175,.885,.32,1.275);animation:expShimmer 2.5s ease-in-out infinite}@keyframes expShimmer{0%,to{background-position:200% 0}50%{background-position:0% 0}}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;flex:1}.stat-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 8px;background:#ffffff0a;border-radius:14px;border:1px solid rgba(255,255,255,.04);transition:all .2s ease}.stat-item:hover{background:#ffffff14;border-color:#ffffff1a;transform:translateY(-2px)}.stat-value{font-size:1.5rem;font-weight:800;color:#f0c040;line-height:1.2}.stat-label{font-size:.72rem;opacity:.5;margin-top:4px;font-weight:500;letter-spacing:.5px}.btn-clear-stats{margin-top:14px;padding:8px 16px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0d;color:#ffffff80;font-size:.72rem;cursor:pointer;transition:all .2s;align-self:center}.btn-clear-stats:hover{background:#ffffff1a;color:#fffc;border-color:#fff3}.menu-footer{display:flex;justify-content:space-between;align-items:center;padding-top:4px}.btn-settings-float{display:flex;align-items:center;gap:6px;padding:10px 18px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#ffffff0f;color:#ffffffb3;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .25s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn-settings-float .ui-icon,.btn-changelog-float .ui-icon{width:18px;height:18px;color:var(--accent-color)}.btn-settings-float:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff;transform:translateY(-2px);box-shadow:0 4px 16px #0003}.version-info{font-size:.75rem;opacity:.35;font-weight:500}.settings-panel{background:#0003;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;grid-area:settings;max-height:min(48vh,500px);overflow-y:auto;scrollbar-width:thin}@media(max-height:820px)and (min-width:901px){#menu-screen{padding-top:16px;padding-bottom:20px}.menu-container{gap:10px 18px}.game-title{font-size:clamp(2rem,4.2vw,3.2rem)}.game-subtitle{margin:-6px 0 2px;font-size:1rem}.btn-primary{padding:12px 18px;min-height:58px}.settings-panel{max-height:42vh}}.settings-panel label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.95rem}.settings-panel select,.settings-panel input[type=text]{padding:6px 12px;border-radius:6px;border:none;background:#ffffffe6;color:#333;font-size:.9rem}.settings-section-title{font-size:.78rem;color:var(--accent-color);font-weight:800;text-align:left;opacity:.9}.settings-panel label.setting-locked{opacity:.5;cursor:not-allowed}.settings-panel label.setting-locked input,.settings-panel label.setting-locked select{pointer-events:none;filter:grayscale(.6)}.settings-panel label.setting-locked .setting-value-output{opacity:.5}.setting-row{min-width:0;padding:8px 10px;border-radius:10px;background:#ffffff0f}.setting-row select,.setting-row input[type=text]{width:min(150px,52%)}.advanced-settings{padding:10px;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.advanced-settings summary{cursor:pointer;color:var(--accent-color);font-weight:800;margin-bottom:10px}.settings-slider-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:10px}.setting-slider{align-items:stretch!important;flex-direction:column;gap:6px!important;padding:8px 10px;border-radius:10px;background:#0000001f}.setting-slider span{color:var(--accent-color);font-weight:800;float:right}.setting-slider input[type=range]{width:100%;accent-color:var(--accent-color)}.settings-toggles{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.settings-toggles label{justify-content:flex-start;padding:6px 10px;border-radius:999px;background:#ffffff12;font-size:.82rem}.overlay-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(1);width:90%;max-width:440px;max-height:80vh;background:#0f190fe6;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:24px;padding:24px;display:flex;flex-direction:column;gap:14px;z-index:300;opacity:1;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 64px #00000080,inset 0 1px #ffffff0a;transition:opacity .25s ease-in,transform .25s ease-in;animation:overlayPanelEnter .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes overlayPanelEnter{0%{transform:translate(-50%,-50%) scale(.95);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.overlay-panel.panel-exit{opacity:0;transform:translate(-50%,-50%) scale(.96);pointer-events:none}.overlay-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.overlay-header h3{font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:8px;margin:0}#season-quest-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:16px}.season-quest-modal{background:var(--panel-bg);border-radius:20px;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 60px #0006;width:100%;max-width:520px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.season-quest-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06)}.season-quest-header h2{font-size:1.15rem;font-weight:700;margin:0;display:flex;align-items:center;gap:8px}.season-quest-body{flex:1;overflow-y:auto;padding:16px 20px}.season-quest-footer{padding:12px 20px 16px;border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:center;gap:10px}.sq-tabs{display:flex;gap:6px;margin-bottom:14px}.sq-tab{flex:1;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.06);background:#ffffff08;color:#fff9;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.sq-tab:hover{background:#ffffff0f}.sq-tab.active{background:var(--accent-gradient);color:#1a1a1a;border-color:transparent}.sq-overview{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:#ffffff0a;margin-bottom:14px}.sq-exp-circle{width:56px;height:56px;border-radius:50%;background:var(--accent-gradient);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;color:#1a1a1a;font-weight:800;font-size:.85rem;line-height:1}.sq-exp-circle small{font-size:.6rem;font-weight:600;opacity:.8}.sq-overview-info{flex:1}.sq-overview-title{font-size:.9rem;font-weight:700;margin-bottom:4px}.sq-overview-desc{font-size:.75rem;opacity:.55}.sq-quest-list{display:flex;flex-direction:column;gap:8px}.sq-quest-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.04);transition:all .2s ease}.sq-quest-item:hover{background:#ffffff0d}.sq-quest-item.completed{border-color:#4caf5033}.sq-quest-item.claimed{opacity:.5}.sq-quest-icon{width:40px;height:40px;border-radius:12px;background:#ffffff0f;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}.sq-quest-item.completed .sq-quest-icon{background:#4caf5026}.sq-quest-info{flex:1;min-width:0}.sq-quest-name{font-size:.88rem;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sq-quest-desc{font-size:.72rem;opacity:.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sq-quest-progress-wrap{margin-top:6px}.sq-quest-progress-bar{height:6px;border-radius:3px;background:#ffffff0f;overflow:hidden}.sq-quest-progress-fill{height:100%;border-radius:3px;background:var(--accent-gradient);transition:width .4s ease;min-width:0}.sq-quest-progress-text{font-size:.7rem;opacity:.5;margin-top:2px;text-align:right}.sq-quest-reward{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--accent-color);font-weight:600;flex-shrink:0}.sq-quest-action{flex-shrink:0}.sq-quest-action button{padding:6px 12px;border-radius:8px;border:none;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.sq-btn-claim{background:var(--accent-gradient);color:#1a1a1a}.sq-btn-claim:hover{transform:scale(1.05)}.sq-btn-claimed{background:#ffffff0f;color:#fff6;cursor:default}.quest-toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-20px);z-index:500;background:#1e1e1eeb;border:1px solid rgba(240,192,64,.3);border-radius:16px;padding:14px 20px;display:flex;align-items:center;gap:14px;box-shadow:0 10px 40px #0006;animation:questToastIn .5s cubic-bezier(.175,.885,.32,1.275) forwards;min-width:260px;max-width:90vw}@keyframes questToastIn{to{transform:translate(-50%) translateY(0)}}.quest-toast-exit{animation:questToastOut .4s ease-in forwards}@keyframes questToastOut{to{transform:translate(-50%) translateY(-30px);opacity:0}}.quest-toast-icon{font-size:2rem;flex-shrink:0}.quest-toast-body{flex:1}.quest-toast-title{font-size:.85rem;font-weight:700;color:var(--accent-color);margin-bottom:2px}.quest-toast-name{font-size:.95rem;font-weight:700;margin-bottom:2px}.quest-toast-reward{font-size:.8rem;opacity:.7}.quest-badge{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:#f44;box-shadow:0 0 0 2px var(--bg-gradient);animation:questBadgePulse 1.5s ease-in-out infinite}@keyframes questBadgePulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.8}}.sq-badges-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.sq-badge-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:#ffffff0a;font-size:.8rem}.sq-badge-emoji{font-size:1.1rem}.sq-badge-name{font-weight:600}.achievement-list{overflow-y:auto;display:flex;flex-direction:column;gap:8px;max-height:60vh;padding-right:4px}.achievement-summary{text-align:center;font-size:.85rem;opacity:.6;padding:4px 0;font-weight:500}.achievement-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.04);transition:all .2s ease}.achievement-item:hover{background:#ffffff12;transform:translate(2px)}.achievement-item.unlocked{background:#f0c04014;border-color:#f0c04026}.achievement-item.locked{opacity:.45}.ach-item-icon{font-size:1.6rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#ffffff0f;flex-shrink:0}.achievement-item.unlocked .ach-item-icon{background:#f0c04026}.ach-item-body{flex:1;display:flex;flex-direction:column;gap:2px}.ach-item-name{font-weight:700;font-size:.9rem}.ach-item-desc{font-size:.78rem;opacity:.6}.ach-item-status{font-size:1.1rem;flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#4caf5026}.achievement-item.locked .ach-item-status{background:#ffffff0f}#game-screen{position:relative}.game-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;z-index:30}.game-header h2{font-size:1.2rem;font-weight:600}.header-right{display:flex;align-items:center;gap:10px}.mode-badge{padding:4px 12px;border-radius:20px;background:#f0c04033;border:1px solid rgba(240,192,64,.4);font-size:.8rem}#btn-sound-toggle{color:inherit}#ddz-table{position:relative;flex:1;display:grid;grid-template-rows:160px 1fr 220px;grid-template-columns:200px 1fr 200px;gap:8px;padding:16px;max-width:1200px;margin:0 auto;width:100%;transition:transform .2s ease}.player-area{position:relative;display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:12px;transition:all .3s}.player-area.active-turn{background:#f0c04024;box-shadow:0 0 28px #f0c04038,inset 0 0 12px #f0c04014;border-color:#f0c0404d}#player-right{grid-column:1 / 4;grid-row:3;padding-bottom:4px;gap:6px;flex-direction:column-reverse}#player-right .player-info{order:3;margin-bottom:0;margin-top:4px}#player-right .hand-front{order:1;min-height:140px;padding:8px 20px}#player-right .played-area{order:2}.player-info{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:8px;position:relative}.thinking-indicator{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;background:#64646499;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;transition:opacity .2s ease;pointer-events:none;z-index:20}.thinking-indicator:after{content:"...";animation:thinkingDots 1.2s infinite}.thinking-indicator.has-hint:after{content:attr(data-hint);animation:none;font-size:.65rem}.ai-hint{position:absolute;bottom:4px;left:50%;transform:translate(-50%);display:flex;gap:2px;padding:4px 8px;background:#000000b3;border-radius:8px;transition:opacity .3s ease;z-index:30;pointer-events:none}.ai-hint-card{font-size:.65rem;padding:1px 4px;background:#ffffff26;border-radius:3px;white-space:nowrap}@keyframes thinkingDots{0%{content:"."}33%{content:".."}66%{content:"..."}}.countdown-timer{position:absolute;top:-10px;right:-10px;min-width:42px;height:42px;border-radius:50%;background:#000000bf;border:2.5px solid rgba(240,192,64,.75);color:#f0c040;font-size:.9rem;font-weight:800;display:flex;align-items:center;justify-content:center;transition:all .3s;opacity:0;pointer-events:none;z-index:25;box-shadow:0 3px 12px #0006;letter-spacing:-.3px}.countdown-timer.urgent{border-color:#ff9800;color:#ff9800;animation:countdownPulse .6s ease-in-out infinite;background:#000c}.countdown-timer.critical{border-color:#f44336;color:#f44336;animation:countdownPulse .3s ease-in-out infinite;background:#000000d9}@keyframes countdownPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.player-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#4a90d9,#357abd);display:flex;align-items:center;justify-content:center;font-size:1.6rem;box-shadow:0 3px 12px #00000040,inset 0 1px #ffffff26;border:2px solid rgba(255,255,255,.12)}.player-name{font-size:.88rem;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.3)}.player-tooltip{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%) scale(.9);background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;padding:6px 12px;border-radius:8px;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s ease;z-index:50}.player-info:hover .player-tooltip{opacity:1;transform:translate(-50%) scale(1)}.player-badge{font-size:.7rem;padding:2px 8px;border-radius:10px;background:#ffffff1a}.player-badge.landlord{background:#d4a017;color:#2a1a00;font-weight:600}.hand-front,.hand-back{position:relative;display:flex;justify-content:center;min-height:100px;padding:8px}.hand-front{display:flex;justify-content:center;align-items:flex-end;min-height:120px;padding:8px 20px;transition:transform .1s}.hand-front.shake{animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.hand-back-inner{display:flex;justify-content:center}.hand-hint{text-align:center;font-size:.85rem;min-height:20px;margin-bottom:4px;font-weight:600;color:#fff9;padding:2px 12px;border-radius:10px;transition:all .2s ease;display:inline-block;width:100%}.hand-hint.valid{color:#c8e6c9;background:#4caf5033;animation:hintPulse .3s ease}.hand-hint.invalid{color:#ffcdd2;background:#f4433633;animation:hintShake .3s ease}.hand-hint.info{color:#9ed2ff;background:#64b5f629}.hand-hint.smart{color:#d8ffdf;background:linear-gradient(90deg,#4caf503d,#2196f333);border:1px solid rgba(129,220,140,.28)}@keyframes hintPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes hintShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.hand-back{gap:2px}.card-count{position:absolute;bottom:-8px;right:0;background:#0009;padding:2px 8px;border-radius:10px;font-size:.75rem}.played-area{position:relative;display:flex;justify-content:center;align-items:center;min-height:48px;margin-top:10px;z-index:5}#bottom-cards{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 16px;background:#0003;border-radius:12px}#bottom-cards .label{font-size:.75rem;opacity:.7}#bottom-cards .cards{display:flex;gap:6px}.card{width:82px;height:114px;position:relative;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}@media(hover:hover){.hand-front .card:hover{transform:translateY(-8px) scale(1.05);z-index:10}.hand-front .card.selected:hover{transform:translateY(-20px) scale(1.05);z-index:10}}.card-inner{width:100%;height:100%;background:linear-gradient(145deg,#fff,#f0f0f0);border-radius:8px;box-shadow:0 3px 10px #00000038,inset 0 1px #ffffffd9;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.card:hover .card-inner{transform:translateY(-14px);box-shadow:0 8px 22px #00000047;z-index:10}.card.selected .card-inner{transform:translateY(-18px);box-shadow:0 10px 26px #00000052;border:2.5px solid #f0c040}.card.hint .card-inner{border:2.5px solid #4caf50;box-shadow:0 0 16px #4caf5073}.card-back .card-inner{background:linear-gradient(145deg,#c41e3a,#8b0000);border:2px solid #fff}.card-back .card-inner:before{content:"🃏";font-size:1.5rem;opacity:.5}.red{color:#c41e3a}.black{color:#1a1a1a}.card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1}.card-corner .rank{font-size:1.15rem;font-weight:800}.card-corner .suit{font-size:1rem}.top-left{top:5px;left:5px}.bottom-right{bottom:5px;right:5px;transform:rotate(180deg)}.card-center{font-size:2.8rem}.card.joker .card-inner{background:linear-gradient(145deg,#f8f8f8,#e8e8e8)}.joker-text{font-size:1.4rem;font-weight:800;writing-mode:vertical-rl;letter-spacing:3px}.card.joker.joker_big .joker-text{color:#c41e3a}.card.joker.joker_small .joker-text{color:#1a1a1a}#controls-area{position:fixed;bottom:auto;top:calc(100% - 440px);left:0;right:0;padding:8px 20px 10px;background:transparent;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:20;pointer-events:none}#call-controls,#play-controls{pointer-events:auto}#call-controls,#play-controls{display:flex;gap:12px}#call-controls button,#play-controls button{padding:10px 24px;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}#call-controls button{background:linear-gradient(135deg,#f0c040,#d4a017);color:#2a1a00;box-shadow:inset 0 1px #ffffff40,0 4px 12px #f0c04040}#call-controls button:hover{background:linear-gradient(135deg,#f5ca4e,#dbab1f);transform:translateY(-2px);box-shadow:inset 0 1px #ffffff4d,0 6px 16px #f0c04059}#call-controls button:active{transform:translateY(0) scale(.98)}#call-controls button:disabled{opacity:.35;cursor:not-allowed;transform:none!important;box-shadow:none}#play-controls button{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.22);position:relative;box-shadow:inset 0 1px #ffffff1a,0 3px 10px #00000026}#play-controls button:hover{background:#ffffff47;transform:translateY(-2px);box-shadow:inset 0 1px #ffffff26,0 5px 14px #00000038}#play-controls button:active{transform:translateY(0) scale(.98)}#play-controls button kbd{font-size:.68rem;background:#00000059;padding:2px 5px;border-radius:4px;margin-left:5px;border:1px solid rgba(255,255,255,.1)}#play-controls button#btn-play{background:linear-gradient(135deg,#4caf50,#388e3c);border:none;box-shadow:inset 0 1px #fff3,0 4px 12px #4caf504d}#play-controls button#btn-play:hover{background:linear-gradient(135deg,#5cbf60,#439e46);box-shadow:inset 0 1px #ffffff40,0 6px 16px #4caf5066}#play-controls button#btn-pass{background:linear-gradient(135deg,#f44336,#d32f2f);border:none;box-shadow:inset 0 1px #ffffff26,0 4px 12px #f4433640}#play-controls button#btn-pass:hover{background:linear-gradient(135deg,#f55a4e,#e0443f);box-shadow:inset 0 1px #fff3,0 6px 16px #f4433659}#play-controls button#btn-hint{background:linear-gradient(135deg,#2196f3,#1976d2);border:none;box-shadow:inset 0 1px #ffffff26,0 4px 12px #2196f340}#play-controls button#btn-hint:hover{background:linear-gradient(135deg,#42a5f5,#2088d8);box-shadow:inset 0 1px #fff3,0 6px 16px #2196f359}.btn-auto{background:linear-gradient(135deg,#9c27b0,#7b1fa2)!important;border:none!important;box-shadow:inset 0 1px #ffffff26,0 4px 12px #9c27b040!important}#btn-cancel-auto{pointer-events:auto;min-height:44px;padding:10px 20px}.btn-auto:hover{background:linear-gradient(135deg,#ab47bc,#8e24aa)!important;box-shadow:inset 0 1px #fff3,0 6px 16px #9c27b059!important}.btn-auto.active{background:linear-gradient(135deg,#ff9800,#f57c00)!important;box-shadow:inset 0 1px #fff3,0 4px 12px #ff98004d!important}#game-info{display:flex;gap:20px;font-size:.88rem;opacity:.85;flex-wrap:wrap;justify-content:center;font-weight:500}#shortcut-hint{opacity:.5;font-size:.75rem;cursor:pointer;transition:opacity .2s ease;padding:2px 8px;border-radius:6px}@media(hover:none)and (pointer:coarse){#shortcut-hint{display:none}}#shortcut-hint:hover,#shortcut-hint:focus-visible{opacity:.9;background:#ffffff14}#shortcut-hint:focus-visible{outline:2px solid var(--gold, #f0c040);outline-offset:2px}#last-play-type{display:none}.center-countdown{width:80px;height:80px;border-radius:50%;background:#000000a6;border:3px solid rgba(240,192,64,.6);color:#f0c040;font-size:1.8rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 40px #f0c04033,0 8px 24px #0006;transition:all .3s ease;animation:centerCdAppear .4s cubic-bezier(.175,.885,.32,1.275);position:relative;z-index:30}.center-countdown.hidden{display:none}.center-countdown.urgent{border-color:#ff9800;color:#ff9800;box-shadow:0 0 50px #ff98004d,0 8px 24px #0006;animation:centerCdAppear .4s cubic-bezier(.175,.885,.32,1.275),countdownPulse .6s ease-in-out infinite}.center-countdown.critical{border-color:#f44336;color:#f44336;box-shadow:0 0 60px #f4433659,0 8px 24px #0006;animation:centerCdAppear .4s cubic-bezier(.175,.885,.32,1.275),countdownPulse .3s ease-in-out infinite}@keyframes centerCdAppear{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.call-bubble,.pass-bubble{position:absolute;top:18px;left:50%;transform:translate(-50%);padding:8px 18px;border-radius:20px;background:#000000c7;font-size:.95rem;font-weight:700;animation:bubbleIn .3s ease;z-index:15;white-space:nowrap;border:1px solid rgba(255,255,255,.12);box-shadow:0 6px 20px #0000004d}@keyframes bubbleIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-message{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:500;padding:12px 28px;border-radius:12px;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.95rem;animation:toastIn .3s ease;z-index:2100}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.achievement-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:500;display:flex;align-items:center;gap:14px;padding:14px 24px;border-radius:16px;background:linear-gradient(135deg,#d4a017e6,#b4820ae6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;box-shadow:0 8px 32px #d4a01766;animation:achPop .5s cubic-bezier(.175,.885,.32,1.275);z-index:2100;min-width:240px}.achievement-toast .ach-icon{font-size:2rem;line-height:1;animation:achIconBounce .6s ease}.achievement-toast .ach-body{display:flex;flex-direction:column;gap:2px}.achievement-toast .ach-title{font-size:.75rem;opacity:.85;text-transform:uppercase;letter-spacing:1px}.achievement-toast .ach-name{font-size:1.1rem;font-weight:700}.achievement-toast .ach-desc{font-size:.8rem;opacity:.8}@keyframes achPop{0%{opacity:0;transform:translate(-50%) translateY(-30px) scale(.8)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes achIconBounce{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}#modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;opacity:1;transition:opacity .25s ease}#modal-overlay.modal-exit{opacity:0;pointer-events:none}#modal-content{background:linear-gradient(145deg,#1e2d26f5,#101c16fa);padding:40px;border-radius:20px;text-align:center;max-width:400px;width:90%;box-shadow:0 20px 60px #0006;border:1px solid rgba(255,255,255,.1);opacity:1;transform:scale(1);transition:opacity .2s ease,transform .2s ease}#modal-content.modal-exit{opacity:0;transform:scale(.96)}#modal-content h2{font-size:1.8rem;margin-bottom:16px;color:var(--accent-color)}#modal-content p{margin-bottom:24px;opacity:.8}.spring-badge{padding:6px 16px;border-radius:20px;background:linear-gradient(135deg,#ff6b9d,#c44569);color:#fff;font-size:.9rem;font-weight:600;margin-bottom:12px;display:inline-block}.spring-badge.anti{background:linear-gradient(135deg,#4facfe,#00f2fe)}.multiplier-text{font-size:.85rem;color:#f0c040;margin-bottom:8px}.score-board{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.score-item{display:flex;justify-content:space-between;padding:10px 16px;background:#ffffff0d;border-radius:8px}.score-item.landlord{background:#f0c0401a;border:1px solid rgba(240,192,64,.2)}.round-stats{margin:16px 0;padding:12px;background:#0003;border-radius:12px;text-align:left}.round-stats h4{text-align:center;margin-bottom:10px;color:#f0c040;font-size:.95rem}.stat-row{display:flex;justify-content:space-between;padding:4px 0;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.05)}.stat-row:last-child{border-bottom:none}#modal-content button{margin:8px;padding:12px 32px;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}#btn-next-round{background:linear-gradient(135deg,#f0c040,#d4a017);color:#2a1a00}#btn-back-menu{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:8px 16px;border-radius:10px;font-size:.85rem;font-weight:600;transition:all .2s ease;cursor:pointer}#btn-back-menu:hover{background:#ffffff24;border-color:#fff3;transform:translateY(-1px)}.header-controls{display:flex;align-items:center;gap:8px}.header-controls .btn-small{width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:10px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#ffffffd1;font-size:1.15rem;transition:all .2s ease;cursor:pointer}.header-controls .btn-small:hover{background:#ffffff24;border-color:#fff3;transform:translateY(-1px);color:#fff}.screen-bg-decoration{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.screen-bg-decoration:before,.screen-bg-decoration:after{content:"";position:absolute;border-radius:50%;filter:blur(100px);opacity:.35}.screen-bg-decoration:before{width:60vw;height:60vw;max-width:700px;max-height:700px;background:radial-gradient(circle,rgba(240,192,64,.15) 0%,transparent 70%);top:-15%;left:50%;transform:translate(-50%)}.screen-bg-decoration:after{width:45vw;height:45vw;max-width:550px;max-height:550px;background:radial-gradient(circle,rgba(76,175,80,.1) 0%,transparent 70%);bottom:-10%;right:10%}.screen-header{text-align:center;margin-bottom:28px}.screen-header__icon{font-size:2.2rem;margin-bottom:8px;display:inline-block;animation:titleIconFloat 3s ease-in-out infinite;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.screen-header__title{font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:800;margin:0 0 6px;background:linear-gradient(180deg,#fff,#f0d080);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none}.screen-header__subtitle{font-size:.9rem;opacity:.5;margin:0;font-weight:400}.screen-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:14px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.175,.885,.32,1.275);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.screen-btn:hover{transform:translateY(-2px)}.screen-btn:active{transform:translateY(0)}.screen-btn--primary{background:linear-gradient(135deg,#f0c040eb,#d4a017eb);color:#2a1a00;box-shadow:0 6px 24px #f0c04040,inset 0 1px #ffffff4d}.screen-btn--primary:hover{box-shadow:0 10px 32px #f0c04066,inset 0 1px #fff6}.screen-btn--accent{background:linear-gradient(135deg,#4caf50d9,#2e7d32d9);color:#fff;box-shadow:0 6px 24px #4caf5040,inset 0 1px #fff3}.screen-btn--accent:hover{box-shadow:0 10px 32px #4caf5059,inset 0 1px #ffffff4d}.screen-btn--secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.15);box-shadow:inset 0 1px #ffffff0d}.screen-btn--secondary:hover{background:#ffffff29;border-color:#ffffff40}.screen-btn--danger{background:#f4433626;color:#ff8a80;border:1px solid rgba(244,67,54,.25)}.screen-btn--danger:hover{background:#f4433640;border-color:#f4433666}.screen-btn--ghost{background:transparent;color:#fff9;border:1px solid rgba(255,255,255,.1);font-size:.85rem;padding:8px 16px}.screen-btn--ghost:hover{background:#ffffff0f;color:#ffffffd9;border-color:#ffffff2e}.screen-btn--large{padding:14px 28px;font-size:1rem;width:100%;max-width:260px}.screen-btn--back{margin-top:16px}.form-group{margin-bottom:16px;text-align:left}.form-label{display:block;font-size:.82rem;font-weight:600;opacity:.65;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-input-wrap{position:relative;display:flex;align-items:center}.form-input-icon{position:absolute;left:14px;font-size:1rem;opacity:.5;pointer-events:none;z-index:1}.form-input{width:100%;padding:12px 14px 12px 42px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#0003;color:#fff;font-size:.95rem;outline:none;transition:all .2s ease;box-sizing:border-box;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.form-input:focus{border-color:#f0c04066;background:#0000004d;box-shadow:0 0 0 3px #f0c0401a}.form-input::placeholder{color:#fff6}.form-input-wrap--readonly .form-input{padding-right:48px;padding-left:14px}.form-select{padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#00000040;color:#fff;font-size:.9rem;outline:none;cursor:pointer;min-width:120px;transition:all .2s ease}.form-select:focus{border-color:#f0c04066;box-shadow:0 0 0 3px #f0c0401a}.form-select option{background:#1a3a1a;color:#fff}.btn-copy{position:absolute;right:6px;padding:6px 10px;border:none;border-radius:8px;background:#ffffff1a;color:#fff;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-copy:hover{background:#fff3}#lan-screen,#custom-screen{justify-content:center;align-items:center;position:relative}.lan-container,.custom-container{position:relative;z-index:1;background:#00000038;border-radius:24px;padding:36px 32px;max-width:460px;width:92%;text-align:center;border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 16px 48px #0000004d,inset 0 1px #ffffff0d;animation:screenContainerEnter .5s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes screenContainerEnter{0%{transform:translateY(20px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.lan-tabs{display:flex;gap:8px;margin-bottom:24px;background:#0003;border-radius:14px;padding:4px}.lan-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:#ffffff80;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.lan-tab.active{background:#ffffff1a;color:#fff;box-shadow:0 2px 8px #00000026}.lan-tab:hover:not(.active){color:#ffffffbf}.lan-tab__icon{font-size:1rem}.lan-body{text-align:left}.lan-panel{animation:panelFadeIn .3s ease forwards}@keyframes panelFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lan-status-card{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ffffff0a;border-radius:12px;border:1px solid rgba(255,255,255,.06);margin-bottom:16px}.lan-status-dot{width:8px;height:8px;border-radius:50%;background:#ffffff4d;flex-shrink:0}.lan-status-dot.online{background:#4caf50;box-shadow:0 0 6px #4caf5080}.lan-status-dot.offline{background:#ff9800;box-shadow:0 0 6px #ff980066}.lan-status-text{margin:0;font-size:.85rem;color:#ffffffa6;line-height:1.4}.screen-btn:disabled{cursor:not-allowed;opacity:.45}.lan-room-info{margin-bottom:16px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.info-label{font-size:.8rem;opacity:.5;font-weight:500}.info-value{font-size:.9rem;font-weight:600}.info-value--code{font-family:SF Mono,Monaco,monospace;background:#f0c0401f;color:#f0c040;padding:2px 10px;border-radius:6px;font-size:1rem;letter-spacing:1px}.lan-url-row{margin-bottom:16px}.lan-url-row .form-label{text-align:left}.lan-player-list{display:flex;flex-direction:column;gap:8px;margin:16px 0;min-height:40px}.player-list-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.06);font-size:.85rem;transition:all .2s ease}.player-list-item:hover{background:#ffffff14}.player-list-item .player-avatar-small{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#f0c0404d,#f0c0401a);display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}.player-list-item.host{border-color:#f0c04033;background:#f0c0400f}.player-list-item.host .player-role{font-size:.7rem;color:#f0c040;margin-left:auto}.lan-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.lan-actions .screen-btn{width:100%}.custom-body{text-align:left}.config-group{margin-bottom:20px;padding:18px;background:#ffffff0a;border-radius:16px;border:1px solid rgba(255,255,255,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.config-group__title{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;margin:0 0 14px;color:var(--accent-color);text-transform:uppercase;letter-spacing:1px}.config-group__icon{font-size:1.1rem}.config-items{display:flex;flex-direction:column;gap:4px}.config-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;transition:all .15s ease;cursor:pointer;min-height:44px}.config-item:hover{background:#ffffff0a}.config-item__label{font-size:.88rem;font-weight:500;opacity:.85;flex:1}.config-item__control{flex-shrink:0}.config-item--toggle .config-item__control .toggle-switch-wrap{padding:0}.custom-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.custom-actions .screen-btn{width:100%}#loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#1a5f2a,#0d3d18);display:flex;justify-content:center;align-items:center;z-index:1000;transition:opacity .5s ease}#loading-screen.hidden{opacity:0;pointer-events:none}.loading-container{text-align:center}.loading-spinner{font-size:4rem;animation:spinCard 1.5s ease-in-out infinite;margin-bottom:20px}@keyframes spinCard{0%,to{transform:rotateY(0) scale(1)}50%{transform:rotateY(180deg) scale(1.2)}}.loading-container h2{font-size:2rem;margin-bottom:8px;letter-spacing:6px}.loading-container p{opacity:.6;font-size:.9rem}#side-panels{position:fixed;top:60px;right:12px;display:flex;flex-direction:column;gap:8px;z-index:30}.btn-panel-toggle{padding:8px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#00000059;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#ffffffd9;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff0d}.btn-panel-toggle:hover{background:#00000080;border-color:#fff3;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #00000040,inset 0 1px #ffffff14}.btn-panel-toggle.active{background:#f0c04026;border-color:#f0c0404d;color:#f0c040}.side-panel{position:fixed;top:60px;right:120px;width:280px;max-height:70vh;overflow-y:auto;background:#0f190fd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;border:1px solid rgba(255,255,255,.08);padding:18px;z-index:25;animation:panelIn .25s cubic-bezier(.175,.885,.32,1.275);transition:opacity .2s ease-in,transform .2s ease-in;box-shadow:0 16px 48px #0006,inset 0 1px #ffffff0a}.side-panel.panel-exit{opacity:0;transform:translate(10px);pointer-events:none}@keyframes panelIn{0%{opacity:0;transform:translate(12px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}.side-panel h4{font-size:.85rem;font-weight:700;margin:0 0 14px;color:var(--accent-color);text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:6px}.tracker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.tracker-cell{padding:6px 4px;border-radius:6px;background:#ffffff0d;text-align:center;font-size:.75rem;position:relative;transition:all .2s}.tracker-cell.red{color:#ff8a8a}.tracker-cell.black{color:#ccc}.tracker-cell.played{opacity:.25;text-decoration:line-through}.tracker-count{display:block;font-size:.65rem;opacity:.6}.history-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.history-entry{padding:6px 10px;border-radius:6px;background:#ffffff0d;font-size:.8rem;word-break:break-all;border-left:3px solid transparent}.history-entry.history-bomb{background:#f443361f;border-left-color:#f44336}.history-entry.history-rocket{background:#ffd70026;border-left-color:gold;color:#ffe082}.history-entry.history-pass{opacity:.6;font-style:italic}.history-time{display:inline-block;min-width:36px;font-size:.7rem;opacity:.5;margin-right:6px;font-family:monospace}.chat-list{display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow-y:auto;margin-bottom:12px}.chat-message{padding:6px 10px;border-radius:8px;background:#ffffff14;font-size:.8rem;word-break:break-all}.chat-message .chat-sender{font-weight:600;color:#f0c040;margin-right:6px}.chat-input-area{display:flex;gap:6px}.chat-input-area input{flex:1;padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#ffffff14;color:#fff;font-size:.8rem}.chat-input-area input::placeholder{color:#fff6}.chat-input-area button{padding:6px 12px;border-radius:6px;border:none;background:linear-gradient(135deg,#f0c040,#d4a017);color:#2a1a00;font-size:.8rem;font-weight:600;cursor:pointer}.particle{position:fixed;border-radius:50%;pointer-events:none;z-index:300;animation:particleFly .8s ease-out forwards}@keyframes particleFly{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}.shockwave{position:fixed;width:150px;height:150px;border-radius:50%;border:3px solid rgba(255,100,50,.6);pointer-events:none;z-index:299;animation:shockwaveExpand .6s ease-out forwards}@keyframes shockwaveExpand{0%{transform:scale(0);opacity:1}to{transform:scale(2.5);opacity:0}}.rocket-anim{position:fixed;font-size:2rem;pointer-events:none;z-index:300;animation:rocketFly 1s ease-in forwards}@keyframes rocketFly{0%{transform:translate(0) scale(.5) rotate(-45deg);opacity:0}20%{opacity:1}to{transform:translate(var(--end-x),var(--end-y)) scale(1.2) rotate(-45deg);opacity:0}}.flame-particle{position:fixed;width:8px;height:8px;border-radius:50%;background:linear-gradient(orange,red);pointer-events:none;z-index:299;animation:flameFade .4s ease-out forwards}@keyframes flameFade{0%{transform:scale(1);opacity:.8}to{transform:scale(0);opacity:0}}.floating-text{position:fixed;font-size:1.5rem;font-weight:800;pointer-events:none;z-index:300;text-shadow:0 2px 8px rgba(0,0,0,.5);animation:floatUp 1.2s ease-out forwards}@keyframes floatUp{0%{transform:translateY(0);opacity:1}to{transform:translateY(var(--float-y, -50px));opacity:0}}.landlord-crown{position:fixed;font-size:2.5rem;pointer-events:none;z-index:300;animation:crownPop 2s ease-out forwards}@keyframes crownPop{0%{transform:scale(0) rotate(-20deg);opacity:0}30%{transform:scale(1.3) rotate(10deg);opacity:1}60%{transform:scale(1) rotate(0);opacity:1}to{transform:scale(1) translateY(-30px);opacity:0}}.quick-phrases{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.quick-phrases button{padding:5px 10px;border:none;border-radius:14px;background:#ffffff1a;color:#fff;font-size:.85rem;cursor:pointer;transition:all .2s}.quick-phrases button:hover{background:#f0c04066;transform:scale(1.05)}.chat-bubble{position:absolute;top:-32px;left:50%;transform:translate(-50%);background:#000000d1;color:#fff;padding:5px 14px;border-radius:12px;font-size:.85rem;white-space:nowrap;z-index:50;pointer-events:none;animation:chatPop .3s ease-out;border:1px solid rgba(255,255,255,.1);font-weight:500}@keyframes chatPop{0%{transform:translate(-50%) scale(.5);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}#tracker-content{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.tracker-rank{display:flex;flex-direction:column;align-items:center;padding:6px 4px;border-radius:8px;background:#ffffff14;transition:all .3s;cursor:default}.tracker-rank-label{font-size:.85rem;font-weight:600;margin-bottom:2px}.tracker-rank-count{font-size:.9rem;font-weight:700;padding:1px 8px;border-radius:10px;background:#4caf504d;color:#fff}.tracker-rank.full .tracker-rank-count{background:#4caf504d}.tracker-rank.low .tracker-rank-count{background:#ff980066}.tracker-rank.empty{opacity:.3}.tracker-rank.empty .tracker-rank-count{background:#ffffff1a;text-decoration:line-through}.card.laizi{border:2px solid #ffeb3b;box-shadow:0 0 8px #ffeb3b80,inset 0 0 4px #ffeb3b4d;animation:laiziGlow 2s ease-in-out infinite}@keyframes laiziGlow{0%,to{box-shadow:0 0 8px #ffeb3b80,inset 0 0 4px #ffeb3b4d}50%{box-shadow:0 0 16px #ffeb3bcc,inset 0 0 8px #ffeb3b80}}.card.laizi:after{content:"癞";position:absolute;top:2px;right:2px;font-size:.55rem;color:#ffeb3b;background:#0009;padding:1px 3px;border-radius:3px;font-weight:700}.match-round{font-size:.9rem;color:var(--accent-color);font-weight:600;margin-bottom:8px;padding:4px 12px;background:#ffffff1a;border-radius:12px;display:inline-block}.match-round.match-end{font-size:1.2rem;color:#f0c040;background:#f0c04026}.match-scores{margin:12px 0;padding:12px;background:#00000026;border-radius:10px}.match-scores h4{margin-bottom:8px;font-size:.85rem;opacity:.7}.match-score-item{display:flex;justify-content:space-between;padding:4px 8px;font-size:.9rem}.match-score-item.first{color:#f0c040;font-weight:700;background:#f0c0401a;border-radius:6px}.tour-round-info{margin-top:12px;padding:12px;background:#00000026;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.tour-round-title{font-size:.85rem;font-weight:600;margin-bottom:8px;opacity:.9}.tour-deltas{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.tour-delta{font-size:.78rem;padding:2px 8px;border-radius:6px;background:#ffffff0d}.tour-delta.positive{color:#4caf50;background:#4caf501a}.tour-delta.negative{color:#ef5350;background:#ef53501a}.tour-ranks{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.tour-rank{font-size:.78rem;padding:2px 8px;border-radius:6px;background:#ffffff0d}.tour-rank.up{color:#4caf50}.tour-rank.down{color:#ef5350}.tour-rank.same{opacity:.6}.tour-mvp{font-size:.85rem;color:#f0c040;font-weight:600;padding:4px 0}.tour-podium{display:flex;justify-content:center;align-items:flex-end;gap:12px;margin:16px 0 20px;padding:12px;background:#00000026;border-radius:12px}.tour-podium-item{display:flex;flex-direction:column;align-items:center;padding:10px 14px;border-radius:10px;background:#ffffff0a;min-width:80px;text-align:center}.tour-podium-item.rank-1{background:linear-gradient(135deg,#f0c04033,#d4a01726);border:1px solid rgba(240,192,64,.3);transform:scale(1.08);padding:14px 18px}.tour-podium-item.rank-2{background:#c0c0c01a;border:1px solid rgba(192,192,192,.2)}.tour-podium-item.rank-3{background:#cd7f321a;border:1px solid rgba(205,127,50,.2)}.tour-podium-item.is-human{box-shadow:0 0 12px #f0c04033}.tour-podium-rank{font-size:1.6rem;margin-bottom:4px}.tour-podium-name{font-size:.85rem;font-weight:600;margin-bottom:2px}.tour-podium-score{font-size:.8rem;opacity:.8}.tour-player-summary{margin:12px 0;padding:14px;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.tour-summary-title{font-size:.9rem;font-weight:600;margin-bottom:10px;text-align:center}.tour-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.tour-summary-grid>div{display:flex;flex-direction:column;align-items:center;padding:8px;background:#0000001a;border-radius:8px}.tour-summary-grid>div span{font-size:.72rem;opacity:.7}.tour-summary-grid>div strong{font-size:1rem;color:#f0c040;margin-top:2px}.tour-history{margin:12px 0;max-height:200px;overflow-y:auto}.tour-history-title{font-size:.85rem;font-weight:600;margin-bottom:8px;opacity:.9}.tour-history-list{display:flex;flex-direction:column;gap:6px}.tour-history-round{padding:8px 10px;background:#ffffff08;border-radius:8px;font-size:.8rem}.tour-history-header{font-weight:600;margin-bottom:4px;font-size:.82rem}.tour-history-scores{display:flex;gap:10px;margin-bottom:2px}.tour-history-scores .human{color:#f0c040;font-weight:600}.tour-history-meta{font-size:.75rem;opacity:.7;display:flex;gap:10px}#tournament-setup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;transition:opacity .25s ease}#tournament-setup-overlay.hidden{display:none}.tournament-setup-modal{background:linear-gradient(145deg,#1e2d26f5,#101c16fa);padding:28px;border-radius:20px;max-width:420px;width:90%;max-height:85vh;overflow-y:auto;border:1px solid rgba(255,255,255,.1);animation:modalScaleIn .35s cubic-bezier(.175,.885,.32,1.275) forwards}.tournament-setup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.tournament-setup-header h2{font-size:1.15rem;margin:0}.tour-config-group{margin-bottom:18px}.tour-config-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:8px;opacity:.85}.tour-round-options{display:flex;gap:8px}.tour-round-btn{flex:1;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#fff;border-radius:10px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.tour-round-btn:hover{background:#ffffff1a}.tour-round-btn.active{background:linear-gradient(135deg,#f0c0404d,#d4a0174d);border-color:#f0c04066;font-weight:600}.tour-custom-rounds{margin-top:10px;font-size:.82rem;opacity:.8}.tour-custom-rounds input{width:60px;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#0003;color:#fff;text-align:center;font-size:.85rem}.tour-select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#0003;color:#fff;font-size:.9rem;cursor:pointer}.tour-desc-text{font-size:.78rem;line-height:1.6;opacity:.7;padding:10px;background:#ffffff08;border-radius:8px}.tour-stats-preview{margin-top:12px;padding:12px;background:#ffffff08;border-radius:10px;font-size:.8rem}.tour-stats-preview-title{font-weight:600;margin-bottom:6px;opacity:.9}.tour-stats-preview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.tour-stats-preview-grid>div{display:flex;justify-content:space-between;padding:4px 6px;background:#0000001a;border-radius:6px}.tournament-setup-footer{margin-top:20px;display:flex;justify-content:center}.tournament-setup-footer .btn-primary{padding:12px 32px;font-size:1rem;border-radius:12px}#replay-screen{overflow-y:auto;position:relative}#replay-container{padding:32px 20px;max-width:900px;margin:0 auto;width:100%}.replay-container h2{text-align:center;margin-bottom:6px;font-size:clamp(1.4rem,3vw,1.8rem);font-weight:800;background:linear-gradient(180deg,#fff,#f0d080);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.replay-subtitle{text-align:center;opacity:.5;margin-bottom:28px;font-size:.9rem;font-weight:400}.replay-empty{text-align:center;padding:80px 20px;opacity:.4;font-size:1rem;display:flex;flex-direction:column;align-items:center;gap:12px}.replay-empty:before{content:"📹";font-size:3rem;opacity:.5;display:block;margin-bottom:8px}.replay-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.replay-item{background:#00000038;border-radius:16px;padding:18px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;border:1px solid rgba(255,255,255,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .2s ease}.replay-item:hover{background:#0000004d;border-color:#ffffff1a;transform:translateY(-2px);box-shadow:0 8px 24px #0003}.replay-info{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.replay-date{font-size:.8rem;opacity:.55;font-weight:500}.replay-mode{font-size:.72rem;padding:3px 10px;background:#f0c04026;border:1px solid rgba(240,192,64,.2);border-radius:20px;color:#f0c040;font-weight:600}.replay-result{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.replay-winner{font-weight:700;color:#81c784}.replay-mult{font-size:.8rem;opacity:.55}.replay-players{font-size:.85rem;opacity:.75;display:flex;gap:8px;flex-wrap:wrap}.landlord-tag{color:#f0c040;font-weight:700}.btn-replay-watch{padding:8px 18px;border:none;border-radius:10px;background:linear-gradient(135deg,#f0c040e6,#d4a017e6);color:#2a1a00;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #f0c04033}.btn-replay-watch:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 6px 18px #f0c0404d}.replay-board{display:flex;flex-direction:column;gap:16px}.replay-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0003;border-radius:12px}.replay-header h3{margin:0}.replay-step-info{display:flex;gap:16px;align-items:center;font-size:.9rem}.replay-table{background:#00000026;border-radius:12px;padding:16px;min-height:200px}.replay-players-area{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.replay-player{background:#ffffff0d;border-radius:10px;padding:12px;border-left:3px solid transparent;transition:all .3s}.replay-player.landlord{border-left-color:#f0c040;background:#f0c04014}.replay-player.active{background:#4caf501a;border-left-color:#4caf50}.replay-player-name{font-weight:600;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}.replay-card-count{font-size:.8rem;opacity:.6;font-weight:400}.replay-player-hand{display:flex;flex-wrap:nowrap;align-items:flex-end;min-height:48px;max-width:100%;overflow-x:auto;overflow-y:visible;padding:4px 4px 8px;scrollbar-width:thin;scrollbar-color:rgba(240,192,64,.55) rgba(255,255,255,.08)}.replay-card{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:50px;margin-left:-8px;background:linear-gradient(145deg,#fff,#f5f1e8);border-radius:6px;font-size:.85rem;font-weight:800;border:1px solid rgba(0,0,0,.14);position:relative;box-shadow:0 5px 12px #0000003d,inset 0 1px #ffffffe6;color:#222;line-height:1}.replay-card:first-child{margin-left:0}.replay-card-rank{position:absolute;top:5px;left:5px;font-size:.78rem}.replay-card-suit{font-size:1.25rem;margin-top:8px}.replay-joker-text{writing-mode:vertical-rl;letter-spacing:0;font-size:.75rem;line-height:1}.replay-card.red{color:#d32f2f!important}.replay-card.black{color:#222!important}.replay-bottom-area{display:flex;flex-wrap:wrap;gap:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.replay-bottom-cards{display:flex;align-items:center;gap:8px;min-height:54px}.replay-bottom-cards .replay-card,.replay-last-cards .replay-card{margin-left:-6px}.replay-bottom-label{font-size:.8rem;opacity:.7}.replay-last-play{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.replay-last-label{font-size:.8rem;opacity:.6}.replay-last-player{font-weight:600}.replay-last-type{font-size:.8rem;color:#f0c040}.replay-last-cards{display:flex;align-items:flex-end;min-height:54px;overflow-x:auto;padding:4px 2px 6px}.replay-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;background:#0003;border-radius:12px;flex-wrap:wrap}.replay-controls button{padding:8px 14px;border:none;border-radius:8px;background:#ffffff1a;color:#fff;cursor:pointer;font-size:1rem;transition:all .2s}.replay-controls button:hover{background:#fff3}#replay-slider{flex:1;min-width:120px;max-width:300px}#replay-speed{font-size:.8rem!important;font-weight:600;min-width:40px}.replay-meta-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;background:#00000026;border-radius:10px}#replay-copy-report{padding:6px 14px;border:none;border-radius:8px;background:#4caf5033;color:#81c784;cursor:pointer;font-size:.85rem;transition:all .2s}#replay-copy-report:hover{background:#4caf5059}.replay-key-moments{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.replay-key-moments span{font-size:.8rem;opacity:.6}.replay-moment-btn{padding:4px 8px;border:none;border-radius:6px;background:#ffffff14;color:#fff;cursor:pointer;font-size:1rem;transition:all .2s}.replay-moment-btn:hover{background:#fff3;transform:scale(1.1)}.replay-shortcut-hint{text-align:center;font-size:.75rem;opacity:.35;padding:4px 0}.replay-card.laizi{border:2px solid #ff9800!important;box-shadow:0 0 8px #ff98004d}.laizi-badge{position:absolute;top:-2px;right:-2px;font-size:.6rem;background:#ff9800;color:#000;padding:1px 4px;border-radius:4px;font-weight:700;z-index:2}.replay-bomb-badge{font-size:1.2rem;margin-left:6px}.replay-spring-badge{background:#81c78426;color:#81c784;padding:6px 14px;border-radius:8px;font-weight:600;font-size:.9rem}.replay-spring-badge.anti{background:#ef535026;color:#ef5350}@media(max-width:768px){.game-title{font-size:2.2rem}.menu-buttons{gap:12px}.btn-primary{padding:12px 18px;font-size:1rem}.btn-primary .icon{font-size:1.5rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.player-avatar{width:36px;height:36px;font-size:1.2rem}.player-name{font-size:.75rem}.card{width:52px;height:74px}#player-right .hand-front .card{margin-left:-34px}.card-corner .rank{font-size:.95rem}.card-corner .suit{font-size:.8rem}.card-center{font-size:1.8rem}.joker-text{font-size:1.1rem}.hand-front{min-height:90px;padding:4px 8px}#controls-area{padding:10px 12px 16px}#play-controls button{padding:8px 16px;font-size:.9rem}#call-controls button{padding:8px 14px;font-size:.85rem}.side-panel{right:8px;width:220px;padding:12px}.btn-panel-toggle{padding:6px 10px;font-size:.75rem}.game-header h2{font-size:1rem}.mode-badge{font-size:.7rem;padding:2px 8px}}.screen-shake{animation:screenShake .4s ease-in-out}@keyframes screenShake{0%,to{transform:translate(0)}10%{transform:translate(-4px,3px)}20%{transform:translate(4px,-3px)}30%{transform:translate(-3px,2px)}40%{transform:translate(3px,-2px)}50%{transform:translate(-2px,1px)}60%{transform:translate(2px,-1px)}70%{transform:translate(-1px)}80%{transform:translate(1px)}}.screen-flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000;animation:screenFlash .3s ease-out forwards}@keyframes screenFlash{0%{opacity:.6}to{opacity:0}}.deal-fly-card{position:fixed;width:50px;height:70px;border-radius:6px;background:linear-gradient(145deg,#c41e3a,#8b0000);border:2px solid rgba(255,255,255,.3);pointer-events:none;z-index:400;box-shadow:0 4px 12px #0006}.deal-fly-card:after{content:"🃏";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;opacity:.6}.card-flip-3d{transform-style:preserve-3d;animation:cardFlip3D .6s ease-in-out}@keyframes cardFlip3D{0%{transform:rotateY(0) scale(1)}50%{transform:rotateY(90deg) scale(1.1)}to{transform:rotateY(0) scale(1)}}.pop-in{animation:popIn .4s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes popIn{0%{transform:scale(0) translate(-50%,-50%);opacity:0}60%{transform:scale(1.15) translate(-50%,-50%);opacity:1}to{transform:scale(1) translate(-50%,-50%);opacity:1}}.pop-out{animation:popOut .25s ease-in forwards}@keyframes popOut{0%{transform:scale(1) translate(-50%,-50%);opacity:1}to{transform:scale(0) translate(-50%,-50%);opacity:0}}.pulse-ring{position:fixed;border-radius:50%;pointer-events:none;z-index:250;animation:pulseRingExpand 1s ease-out forwards}@keyframes pulseRingExpand{0%{transform:translate(-50%,-50%) scale(0);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.confetti-piece{position:fixed;pointer-events:none;z-index:500;animation:confettiFall 2s ease-out forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(400px) rotate(720deg) scale(.5);opacity:0}}.sparkle-piece{position:fixed;pointer-events:none;z-index:500;font-size:1.2rem;animation:sparkleFly 1s ease-out forwards}@keyframes sparkleFly{0%{transform:translate(0) scale(0) rotate(0);opacity:1}50%{transform:translate(var(--sx),var(--sy)) scale(1.2) rotate(180deg);opacity:1}to{transform:translate(calc(var(--sx) * 1.5),calc(var(--sy) * 1.5)) scale(0) rotate(360deg);opacity:0}}.glow-burst{position:fixed;border-radius:50%;pointer-events:none;z-index:250;animation:glowBurstExpand .8s ease-out forwards}@keyframes glowBurstExpand{0%{transform:translate(-50%,-50%) scale(0);opacity:.7}to{transform:translate(-50%,-50%) scale(3);opacity:0}}.trail-dot{position:fixed;border-radius:50%;pointer-events:none;z-index:300;animation:trailFade .5s ease-out forwards}@keyframes trailFade{0%{transform:scale(1);opacity:.8}to{transform:scale(0);opacity:0}}.count-jump{animation:countJump .3s ease-out}@keyframes countJump{0%{transform:scale(1)}50%{transform:scale(1.4);color:#ffeb3b}to{transform:scale(1)}}.bounce-text{position:fixed;pointer-events:none;z-index:400;font-size:1.4rem;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.5);animation:bounceTextAnim 1.2s ease-out forwards}@keyframes bounceTextAnim{0%{transform:translate(-50%) scale(.3);opacity:0}40%{transform:translate(-50%,-30px) scale(1.2);opacity:1}60%{transform:translate(-50%,-20px) scale(1);opacity:1}to{transform:translate(-50%,-80px) scale(.8);opacity:0}}.slide-in-bottom{animation:slideInBottom .4s ease-out forwards}.slide-in-top{animation:slideInTop .4s ease-out forwards}.slide-in-left{animation:slideInLeft .4s ease-out forwards}.slide-in-right{animation:slideInRight .4s ease-out forwards}@keyframes slideInBottom{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInTop{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}.rotate-out{animation:rotateOutAnim .35s ease-in forwards}@keyframes rotateOutAnim{0%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}to{transform:translate(-50%,-50%) scale(0) rotate(180deg);opacity:0}}.ripple-effect{position:fixed;border-radius:50%;pointer-events:none;z-index:200;animation:rippleExpand .8s ease-out forwards}@keyframes rippleExpand{0%{transform:translate(-50%,-50%) scale(0);opacity:.5}to{transform:translate(-50%,-50%) scale(4);opacity:0}}.orbit-emoji{position:fixed;pointer-events:none;z-index:300;font-size:1.5rem;animation:orbitAnim var(--orbit-duration, 2s) linear forwards}@keyframes orbitAnim{0%{transform:rotate(0) translate(var(--orbit-radius, 60px)) rotate(0);opacity:1}to{transform:rotate(360deg) translate(var(--orbit-radius, 60px)) rotate(-360deg);opacity:0}}.petal{position:fixed;pointer-events:none;z-index:500;font-size:1.5rem;animation:petalFall 3s ease-in-out forwards}@keyframes petalFall{0%{transform:translateY(-50px) rotate(0) translate(0);opacity:1}25%{transform:translateY(100px) rotate(90deg) translate(30px);opacity:.9}50%{transform:translateY(250px) rotate(180deg) translate(-20px);opacity:.7}75%{transform:translateY(400px) rotate(270deg) translate(25px);opacity:.4}to{transform:translateY(600px) rotate(360deg) translate(0);opacity:0}}.win-big-text{position:fixed;top:35%;left:50%;transform:translate(-50%,-50%);font-size:4rem;font-weight:900;pointer-events:none;z-index:600;text-shadow:0 4px 20px rgba(0,0,0,.5);animation:winTextAnim 2s ease-out forwards;white-space:nowrap}@keyframes winTextAnim{0%{transform:translate(-50%,-50%) scale(0) rotate(-10deg);opacity:0}30%{transform:translate(-50%,-50%) scale(1.3) rotate(3deg);opacity:1}50%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}80%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}to{transform:translate(-50%,-50%) scale(.9) rotate(0);opacity:0}}.modal-scale-in{animation:modalScaleIn .35s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes modalScaleIn{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.bottom-reveal-card{animation:bottomReveal .5s ease-out forwards}@keyframes bottomReveal{0%{transform:rotateY(90deg) scale(.8);opacity:0}to{transform:rotateY(0) scale(1);opacity:1}}.robot-icon{position:absolute;top:-8px;right:-8px;font-size:1.2rem;background:#000000b3;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;animation:robotSpin 2s linear infinite;z-index:10}@keyframes robotSpin{0%{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}to{transform:rotate(0)}}.turn-pulse:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:16px;border:2px solid rgba(240,192,64,.4);animation:turnPulseRing 1.5s ease-in-out infinite;pointer-events:none}@keyframes turnPulseRing{0%{transform:scale(1);opacity:.6}50%{transform:scale(1.05);opacity:.2}to{transform:scale(1);opacity:.6}}.toast-bounce{animation:toastBounce .5s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes toastBounce{0%{transform:translate(-50%) translateY(-30px) scale(.8);opacity:0}60%{transform:translate(-50%) translateY(5px) scale(1.05);opacity:1}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}.card-play-flyin{animation:cardPlayFlyIn .35s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes cardPlayFlyIn{0%{transform:translate(var(--fly-from-x, 0),var(--fly-from-y, 0)) scale(.5);opacity:0}to{transform:translate(0) scale(var(--play-scale, .9));opacity:1}}.star-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:550;overflow:hidden}.star-bg .star{position:absolute;font-size:1rem;animation:starTwinkle 2s ease-in-out infinite}@keyframes starTwinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.countdown-bar{position:absolute;bottom:0;left:0;height:3px;background:linear-gradient(90deg,#f0c040,#ff5722);border-radius:2px;animation:countdownShrink linear forwards}@keyframes countdownShrink{0%{width:100%}to{width:0%}}.score-glow{animation:scoreGlow .5s ease-out}@keyframes scoreGlow{0%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 20px rgba(240,192,64,.8)}to{text-shadow:0 0 0 transparent}}.hand-card-enter{animation:handCardEnter .3s ease-out forwards}@keyframes handCardEnter{0%{transform:translateY(40px) rotate(5deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}.menu-btn-enter{animation:menuBtnEnter .5s cubic-bezier(.175,.885,.32,1.275) forwards;opacity:0}@keyframes menuBtnEnter{0%{transform:translateY(30px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.loading-enhanced{animation:loadingPulse 1.5s ease-in-out infinite}@keyframes loadingPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}.phrase-bounce{animation:phraseBounce .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes phraseBounce{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}#pause-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;z-index:9998;flex-direction:column}.pause-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.pause-card{position:relative;z-index:1;background:#141e14d9;border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:40px 48px;text-align:center;box-shadow:0 24px 64px #00000080,inset 0 1px #ffffff0f;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-width:340px;width:90%;animation:pauseCardEnter .4s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes pauseCardEnter{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.pause-card__icon{font-size:3rem;margin-bottom:8px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3));animation:pauseIconPulse 2s ease-in-out infinite}@keyframes pauseIconPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}.pause-card__title{font-size:1.6rem;font-weight:800;margin:0 0 10px;background:linear-gradient(180deg,#fff,#f0d080);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pause-card__hint{font-size:.85rem;color:#ffffff73;margin:0 0 24px}.pause-kbd{display:inline-block;padding:2px 8px;border-radius:6px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);font-family:inherit;font-size:.8rem;color:#fff9}.pause-card__actions{display:flex;flex-direction:column;gap:10px;align-items:center}#help-panel{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9997}.help-content{background:var(--panel-bg);border:1px solid rgba(240,192,64,.3);border-radius:16px;padding:28px 36px;max-width:420px;width:90%;box-shadow:0 8px 32px #0006}.help-content h3{text-align:center;margin-bottom:16px;color:#f0c040}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-bottom:20px}.help-item{display:flex;align-items:center;gap:10px;font-size:.9rem}.help-item kbd{min-width:36px;text-align:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:2px 6px;font-size:.8rem;font-family:monospace}.help-content .btn-small{display:block;margin:0 auto}.rules-grid .help-item{padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05)}.rules-grid .help-item:last-child{border-bottom:none}.rule-name{font-weight:600;color:#f0c040;min-width:70px}.help-tip{text-align:center;font-size:.8rem;opacity:.7;margin:8px 0 16px}.tutorial-content{display:flex;flex-direction:column;gap:10px}.tutorial-step{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff0d;border-radius:10px}.tut-icon{font-size:1.6rem;width:36px;text-align:center;flex-shrink:0}.tutorial-step p{font-size:.85rem;line-height:1.4;margin:0}.tutorial-step strong{color:#f0c040}.tutorial-skip{display:flex;align-items:center;gap:6px;font-size:.85rem;opacity:.8;margin-top:4px;cursor:pointer}.tutorial-skip input{cursor:pointer}.volume-control{display:flex;align-items:center;gap:8px;margin:6px 0}.volume-control label{display:block;font-size:.85rem;min-width:50px;color:#fffc}.volume-control input[type=range]{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff26;border-radius:2px;outline:none}.volume-control input[type=range]:focus-visible{outline:2px solid rgba(240,192,64,.5);outline-offset:4px}.volume-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#f0c040;cursor:pointer}.volume-control input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#f0c040;cursor:pointer;border:none}.volume-value{font-size:.8rem;min-width:32px;text-align:right;color:#fff9}:root{--surface-line: rgba(255,255,255,.12);--surface-soft: rgba(255,255,255,.08);--shadow-heavy: 0 18px 48px rgba(0,0,0,.34);--shadow-card: 0 10px 24px rgba(0,0,0,.28)}body{background:radial-gradient(circle at 18% 18%,rgba(240,192,64,.16),transparent 26vw),radial-gradient(circle at 82% 12%,rgba(220,55,50,.13),transparent 24vw),radial-gradient(circle at 50% 115%,rgba(80,190,135,.12),transparent 36vw),var(--bg-gradient);letter-spacing:0}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(circle at center,rgba(0,0,0,.72),transparent 78%);mask-image:radial-gradient(circle at center,rgba(0,0,0,.72),transparent 78%);opacity:.55}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-color);outline-offset:3px}.game-title,.game-subtitle{letter-spacing:0}#game-table{position:relative;flex:1;min-height:0;overflow:hidden}.game-header{border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px #00000029}#ddz-table{grid-template-rows:140px 1fr 430px;grid-template-columns:200px 1fr 200px;max-width:1280px;height:100%;padding:18px 18px 60px;isolation:isolate;transform:scale(var(--ddz-table-scale, 1))}#ddz-table:before{content:"";position:absolute;top:18px;right:18px;bottom:60px;left:18px;z-index:-2;border-radius:32px;background:radial-gradient(ellipse at center,rgba(255,255,255,.08),transparent 52%),linear-gradient(145deg,#0000002e,#ffffff09);border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 0 90px #0003,var(--shadow-heavy)}#ddz-table:after{content:"";position:absolute;top:34px;right:50px;bottom:160px;left:50px;z-index:-1;border-radius:50%;border:1px solid rgba(240,192,64,.12);box-shadow:inset 0 0 30px #f0c0400f}.table-aura{position:absolute;top:18%;right:18%;bottom:28%;left:18%;z-index:-1;border-radius:999px;background:radial-gradient(ellipse at center,rgba(240,192,64,.16),transparent 64%);filter:blur(10px);opacity:.7;animation:none}@keyframes tableBreath{0%,to{transform:scale(.98);opacity:.48}50%{transform:scale(1.04);opacity:.78}}#player-top{grid-column:1;grid-row:1}#player-left{grid-column:3;grid-row:1}#player-right{grid-column:1 / 4;grid-row:3;justify-content:flex-end;padding-bottom:4px;gap:6px}#table-center{grid-column:2;grid-row:1 / 3;align-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.player-area{border:1px solid transparent}.player-area.active-turn{background:radial-gradient(circle at center,rgba(240,192,64,.16),transparent 70%),#0000001f;border-color:#f0c04033;box-shadow:0 0 28px #f0c04029,inset 0 0 18px #f0c0400f}.player-area.low-cards .card-count{background:#ff9800db;color:#1d1000;animation:cardCountPulse 1.1s ease-in-out infinite}.player-area.danger-cards .card-count{background:#f44336eb;color:#fff}@keyframes cardCountPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.player-avatar{border:1px solid rgba(255,255,255,.24);box-shadow:0 8px 22px #00000047,inset 0 1px #ffffff38}.player-badge{min-height:20px;border:1px solid rgba(255,255,255,.12)}.player-badge.peasant{background:#ffffff1a;color:#ffffffd1}.player-badge.landlord{background:linear-gradient(135deg,#ffde73,#d49c12);box-shadow:0 0 18px #f0c04047}.hand-front,.hand-back{filter:drop-shadow(0 12px 22px rgba(0,0,0,.22))}.hand-back{min-height:78px;align-items:center}.opponent-hand-summary{position:relative;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:#00000047;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px #ffffff14,0 10px 22px #00000038}.opponent-card-stack{position:relative;width:92px;height:48px}body[data-opponent-cards=spread] .opponent-card-stack{width:160px}body[data-opponent-cards=count] .opponent-hand-summary{min-width:74px;justify-content:center}.mini-card-back{position:absolute;top:0;left:var(--offset);width:34px;height:48px;border-radius:6px;border:2px solid rgba(255,255,255,.82);background:repeating-linear-gradient(45deg,rgba(255,255,255,.13) 0 4px,transparent 4px 9px),linear-gradient(145deg,#cf2e48,#85101d);box-shadow:0 6px 14px #00000042,inset 0 1px #ffffff2e;transform:rotate(var(--tilt))}.mini-card-back:after{content:"";position:absolute;top:12px;right:9px;bottom:12px;left:9px;border-radius:3px;border:1px solid rgba(255,255,255,.18)}.opponent-count-badge{position:static;min-width:42px;padding:4px 9px;border-radius:999px;background:#0000008f;color:#fff;font-size:.78rem;font-weight:800;text-align:center;box-shadow:inset 0 1px #ffffff1f}#player-left .opponent-hand-summary{flex-direction:column;gap:6px;padding:9px 10px}#player-left .opponent-card-stack{width:72px;transform:rotate(-3deg)}body[data-opponent-cards=spread] #player-left .opponent-card-stack{width:112px}#player-left .mini-card-back{left:var(--side-offset)}#player-top .played-area,#player-left .played-area{margin-top:12px}#player-right .player-info{order:1;margin-bottom:4px}#player-right .played-area{order:2;min-height:34px;margin:0 0 2px;z-index:1;pointer-events:none}#player-right .hand-hint{order:3}#player-right .hand-front{order:4;min-height:240px;width:min(98vw,1840px);margin-top:8px;z-index:12;overflow-x:clip;overflow-y:visible;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center}#player-right .hand-front:before{content:"";position:absolute;top:28px;right:6px;bottom:0;left:6px;border:1px solid rgba(240,192,64,.24);border-radius:28px 28px 14px 14px;background:radial-gradient(ellipse at 50% 100%,rgba(240,192,64,.12),transparent 58%),linear-gradient(180deg,#072b140f,#04180d52);box-shadow:inset 0 1px #ffffff14,inset 0 -18px 32px #0000001f,0 14px 34px #0000001f;pointer-events:none}#player-right .hand-front.range-selecting{cursor:grabbing}#player-right .hand-front.selection-disabled{cursor:default;opacity:.78}#player-right .hand-front.selection-disabled .card{pointer-events:auto;filter:saturate(.82)}#player-right .hand-front .card.smart-play{outline:2px solid rgba(129,220,140,.78);box-shadow:0 0 0 4px #4caf5029,0 16px 30px #0000004d}#player-right .hand-front .card.smart-drop{opacity:.56;transform:translateY(calc(-1 * var(--ddz-selected-lift, 28px) + 10px)) scale(.96);filter:grayscale(.35) saturate(.75)}.played-area.has-cards{--table-play-overlap: var(--ddz-play-overlap, 16px);min-height:calc(110px * var(--ddz-played-card-scale, 1));min-width:132px;max-width:min(88vw,800px);padding:12px 24px 14px;border-radius:16px;background:#080c1c8c;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 24px #ffffff0f,0 12px 32px #0000004d;display:flex;align-items:flex-end;justify-content:center;overflow-x:visible;overflow-y:visible}.played-area .table-play-card{flex:0 0 calc(72px * var(--ddz-played-card-scale, 1));width:calc(72px * var(--ddz-played-card-scale, 1));height:calc(100px * var(--ddz-played-card-scale, 1));margin-left:calc(-1 * var(--table-play-overlap));cursor:default;pointer-events:none;transform-origin:center bottom;will-change:transform,opacity;box-shadow:0 12px 26px #00000059,inset 0 1px #ffffffe6}.played-area .table-play-card:first-child{margin-left:0}.played-area .table-play-card .card-corner .rank{font-size:1.2rem}.played-area .table-play-card .card-corner .suit{font-size:1.05rem}.played-area .table-play-card .card-center{font-size:2.8rem}.played-area .table-play-card.joker .joker-text{font-size:1.3rem}.played-area.has-pass:after{content:"不出";padding:8px 22px;border-radius:999px;background:#00000080;color:#ffffffd9;font-weight:700;font-size:.95rem;animation:passFade .24s ease both;border:1px solid rgba(255,255,255,.1)}.low-card-reminder{position:absolute;left:50%;top:60px;z-index:34;max-width:min(220px,70vw);padding:6px 12px;border-radius:999px;background:#121812d1;border:1px solid rgba(240,192,64,.38);color:#ffe28a;font-size:.82rem;font-weight:800;line-height:1.2;text-align:center;white-space:nowrap;box-shadow:0 8px 22px #0000003d;pointer-events:none}@keyframes passFade{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}#bottom-cards{border:1px solid rgba(240,192,64,.18);box-shadow:0 10px 24px #0000002e,inset 0 1px #ffffff14}#last-play-info{min-height:28px}#turn-indicator{padding:8px 18px;border-radius:999px;background:#00000059;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px #ffffff14,0 4px 14px #0003;min-height:38px;color:var(--accent-color);font-weight:800;text-align:center;font-size:1rem;letter-spacing:.5px}.turn-indicator-pop,.info-pop{animation:infoPop .35s ease both}@keyframes infoPop{0%{transform:translateY(6px) scale(.94);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.card{transform-origin:center bottom;transition:transform .12s ease,filter .12s ease;will-change:transform;z-index:var(--hand-index, 1)}@media(min-width:901px){#game-table{--desktop-card-width: clamp(72px, calc(72vh - 458px) , 144px);--desktop-card-height: clamp(100px, calc(100vh - 636px) , 200px);--desktop-player-row: clamp(180px, calc(50vh - 120px) , 300px)}#ddz-table{grid-template-rows:140px minmax(60px,1fr) var(--desktop-player-row)}#player-top .played-area,#player-left .played-area{position:absolute;top:calc(100% - 52px);margin-top:0}#player-top .played-area{left:clamp(56px,calc(25vw - 169px),151px)}#player-left .played-area{right:clamp(56px,calc(25vw - 169px),151px)}#player-right .hand-front{position:absolute;right:0;bottom:0;left:0;width:auto;min-height:calc(var(--desktop-card-height) + 40px);margin:0}#player-right .player-info{position:absolute;bottom:8px;left:8px;z-index:24;margin:0}#game-table #controls-area{top:clamp(250px,calc(82.5vh - 245px),646px);bottom:auto}#side-panels{top:50%}#player-right .hand-front .card{width:calc(var(--desktop-card-width) * var(--ddz-card-scale, 1));height:calc(var(--desktop-card-height) * var(--ddz-card-scale, 1));margin-left:calc(-1 * clamp(46px,calc(46vh - 293px),92px) * var(--ddz-card-scale, 1));flex-shrink:0}#player-right .hand-front .card:first-child{margin-left:0}}@media(min-width:901px)and (max-width:1024px){#player-top .played-area,#player-left .played-area{--ddz-played-card-scale: .75}}@media(min-width:901px)and (max-height:720px){#player-top .played-area,#player-left .played-area{--ddz-played-card-scale: .75}#game-info{display:none}}.card-inner{border:1px solid rgba(0,0,0,.1);background:linear-gradient(145deg,#fff,#f8f6ef 44%,#ece8dd);box-shadow:var(--shadow-card),inset 0 1px #fffffff2,inset 0 -10px 18px #00000009}.card:hover .card-inner{transform:none}.hand-front .card:hover{transform:translateY(calc(-1 * var(--ddz-hover-lift, 5px))) scale(1.012);filter:brightness(1.04);z-index:var(--hand-index, 1)}.hand-front .card:focus-visible{outline:3px solid #ffe078;outline-offset:3px;filter:brightness(1.06);z-index:var(--hand-index, 1)}#player-right .hand-front .card.selected,#player-right .hand-front .card.selected:hover{transform:translateY(calc(-1 * var(--ddz-selected-lift, 8px)));z-index:var(--hand-index, 1)}.card.selected .card-inner{transform:none!important;border:2px solid var(--accent-color);box-shadow:0 8px 18px #00000038,0 0 0 2px #f0c0401f,inset 0 1px #fffffff2}.card.selected:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:12px;border:1px solid rgba(240,192,64,.38);pointer-events:none}.card.hint .card-inner{border-color:#62d084;box-shadow:0 0 0 4px #62d08438,0 8px 20px #4caf5033,var(--shadow-card)}.selection-pop{animation:selectionPop .24s ease}@keyframes selectionPop{0%{transform:translateY(0)}55%{transform:translateY(calc(-1 * var(--ddz-selected-lift, 12px) - 4px))}to{transform:translateY(calc(-1 * var(--ddz-selected-lift, 12px)))}}.replay-card{flex-basis:calc(38px * var(--ddz-replay-card-scale, 1));width:calc(38px * var(--ddz-replay-card-scale, 1));height:calc(50px * var(--ddz-replay-card-scale, 1))}body[data-show-shortcuts=false] #shortcut-hint,body[data-show-shortcuts=false] kbd{display:none!important}body[data-table-aura=false] .table-aura,body[data-table-aura=false] #ddz-table:after{display:none}body[data-chat=false] #btn-toggle-chat,body[data-chat=false] #chat-panel,body[data-emoji=false] #quick-phrases,body[data-card-tracker=false] #btn-toggle-card-tracker,body[data-card-tracker=false] #card-tracker,body[data-auto-hint=false] #btn-hint{display:none!important}body[data-dark-mode=true] #ddz-table,body[data-dark-mode=true] .game-header,body[data-dark-mode=true] #menu-screen{filter:brightness(.85) contrast(1.1)}body[data-high-contrast=true] #ddz-table,body[data-high-contrast=true] .game-header,body[data-high-contrast=true] #menu-screen{filter:contrast(1.4)}body[data-colorblind-mode=true] .card-suit-red{color:#06c!important}body[data-colorblind-type=deuteranopia] .card-suit-red,body[data-colorblind-type=deuteranopia] .suit-heart,body[data-colorblind-type=deuteranopia] .suit-diamond{color:#8b6914!important}body[data-colorblind-type=tritanopia] .card-suit-red{color:#c60!important}body[data-colorblind-type=achromatopsia] .card-suit-red,body[data-colorblind-type=achromatopsia] .card-suit-black{color:#666!important}body[data-shadow-intensity=none] .card{box-shadow:none!important}body[data-shadow-intensity=low] .card{box-shadow:0 1px 3px #00000026!important}body[data-shadow-intensity=high] .card{box-shadow:0 4px 12px #00000059!important}body[data-glow-intensity=none] .card.selected{box-shadow:none!important}body[data-glow-intensity=high] .card.selected{box-shadow:0 0 16px 4px #ffd70080!important}body[data-reduce-motion=true] *,body[data-reduce-motion=true] *:before,body[data-reduce-motion=true] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}body[data-large-targets=true] .card{min-width:52px;min-height:72px}body[data-large-targets=true] button,body[data-large-targets=true] .btn-panel-toggle{min-height:40px;padding:10px 16px}body[data-high-visibility=true] .card{border-width:2px!important}body[data-high-visibility=true] .player-avatar{border-width:3px!important}body[data-show-remaining=false] .opponent-count-badge,body[data-show-pattern-name=false] #last-play-type{display:none!important}body[data-highlight-playable=false] .card.playable{filter:none!important}body[data-lazy-render=true] .side-panel{will-change:auto}body[data-played-arrangement=arc] .played-area{justify-content:center}body[data-played-arrangement=fan] .played-area{justify-content:center;gap:2px}body[data-hand-arrangement=straight] #player-right .hand-front{justify-content:center}body[data-hand-arrangement=stack] #player-right .hand-front{justify-content:center;gap:4px}body[data-hand-arrangement] #player-right .hand-front{justify-content:center}body[data-density=compact] #ddz-table{gap:4px;padding-bottom:104px}body[data-density=compact] #controls-area{padding-bottom:10px;gap:8px}body[data-density=spacious] #ddz-table{gap:14px;padding-bottom:142px}body[data-density=spacious] #controls-area{padding-bottom:28px}body[data-motion=none] *,body[data-motion=none] *:before,body[data-motion=none] *:after{animation:none!important;transition:none!important}body[data-motion=reduced] *,body[data-motion=reduced] *:before,body[data-motion=reduced] *:after{animation-duration:.12s!important;transition-duration:.12s!important}body[data-motion=fancy] .table-aura{animation-duration:3.2s;opacity:.9}.card-back .card-inner{background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.16),transparent 34%),repeating-linear-gradient(45deg,rgba(255,255,255,.12) 0 4px,transparent 4px 10px),linear-gradient(145deg,#cf2e48,#86101e);border:2px solid rgba(255,255,255,.82)}#controls-area{top:calc(100% - 570px);padding:10px 20px 14px;background:transparent}#call-controls,#play-controls{padding:8px;border-radius:16px;background:#00000080;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 32px #00000047}#call-controls button,#play-controls button{min-width:92px;min-height:42px;border-radius:12px;box-shadow:inset 0 1px #ffffff2e,0 7px 16px #0000002e}#call-controls button:hover,#play-controls button:hover{transform:translateY(-2px)}#call-controls button:active,#play-controls button:active{transform:translateY(0) scale(.98)}#call-controls button:disabled,#play-controls button:disabled{opacity:.38!important;cursor:not-allowed;filter:grayscale(.5)}#game-info{padding:6px 12px;border-radius:999px;background:#0000002e;border:1px solid rgba(255,255,255,.06)}#phase-text{color:var(--accent-color);font-weight:700}.btn-panel-toggle,.btn-small,.btn-primary{border-radius:10px}.btn-panel-toggle{box-shadow:0 8px 20px #0003}.side-panel,.overlay-panel,.lan-container,.custom-container,#modal-content,.help-content{border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-heavy)}.side-panel,.overlay-panel,.help-content{background-color:rgba(0,0,0,var(--ddz-panel-alpha, .8))}.toast-message{border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 28px #0000003d}@media(max-width:900px){#menu-screen{padding:18px 12px 28px}.menu-container{max-width:560px;gap:14px}.menu-body{grid-template-columns:1fr}.game-subtitle{margin:-6px 0 4px}.stats-panel{max-height:none}.settings-grid,.settings-slider-list{grid-template-columns:1fr}.settings-panel{max-height:none}#ddz-table{grid-template-columns:90px 1fr 90px;grid-template-rows:86px minmax(190px,1fr) 178px;padding:8px 8px 118px}#ddz-table:before{top:8px;right:8px;bottom:118px;left:8px;border-radius:22px}#ddz-table:after,.table-aura{display:none}#player-top{grid-column:1;grid-row:1}#player-left{grid-column:3;grid-row:1}#player-right{grid-column:1 / 4;grid-row:3;justify-content:flex-end;padding-bottom:4px;gap:6px}#table-center{grid-column:2;grid-row:1 / 3}#controls-area{top:auto;bottom:0}#player-right .hand-front{min-height:96px;padding-inline:8px;margin-top:20px}#player-right .hand-front .card{margin-left:clamp(-58px,calc((98vw - 1640px) / 19),-41px)}#player-right .hand-front .card:first-child{margin-left:0}#player-right .played-area{min-height:58px}#player-top .player-info,#player-left .player-info{transform:scale(.88);margin-bottom:3px;gap:2px}#player-top .played-area,#player-left .played-area{margin-top:6px}#player-top .hand-back,#player-left .hand-back{min-height:56px;padding:4px}#player-top .opponent-hand-summary,#player-left .opponent-hand-summary{flex-direction:column;gap:6px;padding:9px 10px}#player-top .opponent-hand-summary{transform:translate(8px)}#player-left .opponent-hand-summary{transform:translate(-8px)}#player-top .opponent-card-stack,#player-left .opponent-card-stack,body[data-opponent-cards=spread] #player-top .opponent-card-stack,body[data-opponent-cards=spread] #player-left .opponent-card-stack{width:72px;transform:rotate(-3deg)}#player-top .mini-card-back,#player-left .mini-card-back{left:calc(var(--i) * 3px)}#call-controls,#play-controls{gap:7px;flex-wrap:wrap;justify-content:center}#call-controls button,#play-controls button{min-width:72px;min-height:38px;padding:8px 12px}#game-info{max-width:calc(100vw - 16px);gap:10px;font-size:.76rem}}@media(max-width:560px){.game-subtitle{margin:-4px 0 2px}.menu-container{gap:12px}.menu-title-wrap{gap:8px}.title-icon{font-size:1.3rem}.game-title{letter-spacing:1px}.mode-card--primary{padding:16px}.mode-card--primary .mode-card__icon{width:46px;height:46px;font-size:1.55rem}.mode-card--primary .mode-card__title{font-size:1.1rem}.mode-card-row{gap:8px}.mode-card--secondary{padding:12px}.mode-card--secondary .mode-card__icon{width:38px;height:38px;font-size:1.15rem}.mode-card--secondary .mode-card__title{font-size:.9rem}.mode-card--secondary .mode-card__desc{font-size:.7rem}.mode-card-row--small{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mode-card--ghost{min-height:72px;padding:9px 6px}.mode-card--ghost .mode-card__icon{width:32px;height:32px;font-size:1rem}.mode-card--ghost .mode-card__title{font-size:.76rem;line-height:1.2;white-space:nowrap}.stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stat-item{padding:10px 6px}.stat-value{font-size:1.2rem}.game-header{padding:8px 10px}.header-controls .btn-small{width:44px;height:44px}.header-right{gap:6px}#ddz-table{grid-template-columns:64px 1fr 64px;grid-template-rows:74px minmax(160px,1fr) 158px;gap:2px;padding:8px 8px 126px}#ddz-table:before{top:8px;right:8px;bottom:126px;left:8px}#controls-area{top:auto;bottom:0}#player-top{grid-column:1;grid-row:1}#player-left{grid-column:3;grid-row:1}#player-left .player-info,#player-top .player-info{transform:scale(.85);margin-bottom:2px;gap:2px}#player-top .played-area,#player-left .played-area{margin-top:4px}#player-top .hand-back,#player-left .hand-back{min-height:48px;padding:3px}#player-right .player-info{flex-direction:row}#player-right .hand-front{margin-top:8px;overflow-x:auto;overflow-y:visible;touch-action:pan-x pan-y}#player-right .hand-front .card{margin-left:-30px}#player-right .hand-front .card:first-child{margin-left:0}#player-right .player-badge,#player-right .player-tooltip{display:none}#bottom-cards{padding:8px 12px}#last-play-type,#turn-indicator{font-size:.76rem;padding:5px 10px}.side-panel{top:104px;right:8px;left:8px;width:auto;max-height:54vh}#side-panels{top:52px;right:8px;flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.btn-panel-toggle{padding:6px 8px}}@media(max-width:900px)and (max-height:500px)and (orientation:landscape){#side-panels{top:auto;right:calc(8px + env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));flex-direction:row;align-items:flex-end}#side-panels .side-panel{top:auto;right:calc(8px + env(safe-area-inset-right));bottom:calc(60px + env(safe-area-inset-bottom));max-height:calc(100vh - 132px - env(safe-area-inset-bottom))}#ddz-table{grid-template-rows:58px minmax(72px,1fr) 136px;padding:6px 8px 88px}#ddz-table:before{top:6px;right:8px;bottom:88px;left:8px}#player-right{gap:2px;padding-bottom:0}#player-right .player-info{position:absolute;left:8px;bottom:4px;z-index:24;flex-direction:row;gap:5px;margin:0;padding:4px 8px 4px 4px;border:1px solid rgba(240,192,64,.28);border-radius:999px;background:#051f10d1;box-shadow:0 6px 18px #0000003d,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#player-right .player-avatar{width:28px;height:28px;flex:0 0 28px;font-size:.92rem}#player-right .player-name{max-width:54px;overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}#player-right .player-badge{min-height:18px;padding:1px 6px;font-size:.6rem}#player-right .player-tooltip{display:none}#player-right .played-area{min-height:16px;margin:0}#player-right .hand-front{min-height:96px;margin-top:0;overflow-x:clip;justify-content:center}#player-right .hand-front .card{width:calc(74px * var(--ddz-card-scale, 1));height:calc(104px * var(--ddz-card-scale, 1));margin-left:calc(-50px * var(--ddz-card-scale, 1))}#controls-area{top:auto;bottom:148px;padding:6px 10px calc(10px + env(safe-area-inset-bottom))}#call-controls,#play-controls{padding:6px}#call-controls button,#play-controls button{min-height:36px;padding:7px 12px}#game-info{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.select-sparkle{position:fixed;width:4px;height:4px;border-radius:50%;background:#f0c040;box-shadow:0 0 6px 2px #f0c04099;pointer-events:none;z-index:9999;animation:selectSparkleAnim .5s ease-out forwards}@keyframes selectSparkleAnim{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}.hint-glow-sweep{position:fixed;border-radius:8px;pointer-events:none;z-index:100;overflow:hidden}.hint-glow-sweep:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(76,175,80,.35),transparent);animation:hintGlowSweepAnim .7s ease-out forwards}@keyframes hintGlowSweepAnim{0%{transform:translate(-100%)}to{transform:translate(100%)}}.turn-switch-glow{position:fixed;width:0;height:0;border-radius:50%;background:radial-gradient(circle,rgba(240,192,64,.25),transparent 70%);transform:translate(-50%,-50%);pointer-events:none;z-index:1;animation:turnSwitchGlowAnim .8s ease-out forwards}@keyframes turnSwitchGlowAnim{0%{width:0;height:0;opacity:1}to{width:400px;height:400px;opacity:0}}@keyframes countdownAppear{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.25);opacity:1}to{transform:scale(1);opacity:1}}.thinking-indicator.thinking-enhanced:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid rgba(240,192,64,.4);animation:thinkingRingRotate 1.5s linear infinite}@keyframes thinkingRingRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-press-anim{animation:btnPressAnim .2s ease-out}@keyframes btnPressAnim{0%{transform:scale(1)}40%{transform:scale(.92)}to{transform:scale(1)}}.combo-text{position:fixed;font-size:1.6rem;font-weight:800;color:#ff9800;text-shadow:0 2px 8px rgba(0,0,0,.5),0 0 20px rgba(255,152,0,.4);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);animation:comboTextAnim 1.5s ease-out forwards}@keyframes comboTextAnim{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}20%{transform:translate(-50%,-50%) scale(1.3);opacity:1}50%{transform:translate(-50%,-50%) scale(1.1) translateY(-20px);opacity:1}to{transform:translate(-50%,-50%) scale(1) translateY(-60px);opacity:0}}.score-popup{position:fixed;font-size:1.4rem;font-weight:700;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);animation:scorePopupAnim 1.2s ease-out forwards}@keyframes scorePopupAnim{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}30%{transform:translate(-50%,-50%) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) scale(1) translateY(-50px);opacity:0}}.bg-particle{position:fixed;width:3px;height:3px;border-radius:50%;background:#f0c04040;box-shadow:0 0 6px 1px #f0c04026;pointer-events:none;z-index:0;animation:bgParticleFloat linear infinite}@keyframes bgParticleFloat{0%{transform:translateY(0) translate(0);opacity:0}10%{opacity:.6}90%{opacity:.6}to{transform:translateY(-100vh) translate(30px);opacity:0}}@keyframes modalContentSwitch{0%{transform:scale(.95);opacity:.7}to{transform:scale(1);opacity:1}}.avatar-pulse-anim{animation:avatarPulseAnim .6s ease-out}@keyframes avatarPulseAnim{0%{transform:scale(1);box-shadow:0 0 #f0c04080}50%{transform:scale(1.15);box-shadow:0 0 0 12px #f0c04000}to{transform:scale(1);box-shadow:0 0 #f0c04000}}.card-deselect-anim{animation:cardDeselectAnim .2s ease-out}@keyframes cardDeselectAnim{0%{transform:translateY(-18px)}to{transform:translateY(0)}}.phrase-fly{position:fixed;font-size:1.2rem;pointer-events:none;z-index:9999;animation:phraseFlyAnim .6s ease-out forwards}@keyframes phraseFlyAnim{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--to-x),var(--to-y)) scale(.5);opacity:0}}.badge-bounce-anim{animation:badgeBounceAnim .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes badgeBounceAnim{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.auto-pulse-on{position:fixed;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,rgba(156,39,176,.3),transparent 70%);transform:translate(-50%,-50%);pointer-events:none;z-index:5;animation:autoPulseAnim .7s ease-out forwards}.auto-pulse-off{position:fixed;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,rgba(76,175,80,.3),transparent 70%);transform:translate(-50%,-50%);pointer-events:none;z-index:5;animation:autoPulseAnim .7s ease-out forwards}@keyframes autoPulseAnim{0%{width:0;height:0;opacity:1}to{width:120px;height:120px;opacity:0}}.gold-rain-drop{position:fixed;pointer-events:none;z-index:9998;color:gold;animation:goldRainFall linear forwards}@keyframes goldRainFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(360deg);opacity:0}}.new-record-banner{position:fixed;top:15%;left:50%;transform:translate(-50%);padding:12px 32px;border-radius:999px;background:linear-gradient(135deg,#ffd700e6,#ff8c00e6);color:#2a1a00;font-size:1.2rem;font-weight:700;box-shadow:0 8px 32px #ff980066;pointer-events:none;z-index:10000;animation:newRecordBannerAnim 2.5s ease-in-out forwards}@keyframes newRecordBannerAnim{0%{transform:translate(-50%) translateY(-40px) scale(.8);opacity:0}15%{transform:translate(-50%) translateY(0) scale(1.05);opacity:1}20%{transform:translate(-50%) translateY(0) scale(1);opacity:1}85%{transform:translate(-50%) translateY(0) scale(1);opacity:1}to{transform:translate(-50%) translateY(-20px) scale(.95);opacity:0}}.hand-front .card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 60%);opacity:0;transition:opacity .2s ease;pointer-events:none}.hand-front .card:hover:after{opacity:1}.hand-front .card.selected:after,.hand-front .card.selected:hover:after{content:"✓";inset:auto auto 8px 8px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.72);background:linear-gradient(145deg,#ffe078,#d59a12);color:#2a1a00;font-size:.82rem;font-weight:900;line-height:1;opacity:1;box-shadow:0 3px 10px #00000047}@media(max-width:900px){#player-right .hand-front:before{top:8px;right:2px;bottom:0;left:2px;border-radius:18px 18px 10px 10px}.hand-front .card.selected:after,.hand-front .card.selected:hover:after{width:18px;height:18px;bottom:5px;left:4px;font-size:.68rem}}.player-area.active-turn .player-avatar{animation:none}@keyframes activeTurnAvatar{0%,to{box-shadow:0 3px 12px #00000040,inset 0 1px #ffffff26,0 0 #f0c0404d}50%{box-shadow:0 3px 12px #00000040,inset 0 1px #ffffff26,0 0 16px 4px #f0c04033}}#call-controls button:hover,#play-controls button:hover{position:relative;overflow:hidden}#call-controls button:hover:after,#play-controls button:hover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 60%);pointer-events:none}.countdown-timer.urgent{animation:countdownPulse .6s ease-in-out infinite,countdownGlow .6s ease-in-out infinite}.countdown-timer.critical{animation:countdownPulse .3s ease-in-out infinite,countdownGlow .3s ease-in-out infinite}@keyframes countdownGlow{0%,to{box-shadow:0 3px 12px #0006}50%{box-shadow:0 3px 12px #0006,0 0 20px 4px #f0c04040}}.card.hint .card-inner:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:10px;border:2px solid rgba(76,175,80,.4);animation:hintBorderPulse 1.2s ease-in-out infinite;pointer-events:none}@keyframes hintBorderPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}.played-area.has-pass:after{animation:passFade .5s ease both,passGlow 2s ease-in-out infinite .5s}@keyframes passGlow{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 12px 2px #ffffff14}}.chat-bubble{animation:chatPop .3s ease-out,chatFloat 3s ease-in-out infinite .3s}@keyframes chatFloat{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-4px)}}.tracker-cell.highlight{animation:trackerHighlight .6s ease-out}@keyframes trackerHighlight{0%{background:#f0c04066}to{background:transparent}}.side-panel{transition:transform .35s cubic-bezier(.175,.885,.32,1.275),opacity .35s ease}.achievement-toast{animation:achPop .5s ease,achGlow 2s ease-in-out infinite .5s}@keyframes achGlow{0%,to{box-shadow:0 8px 32px #0000004d}50%{box-shadow:0 8px 32px #0000004d,0 0 20px 4px #f0c04026}}.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 24px #f0c04040,inset 0 1px #fff3}.btn-primary:active{transform:translateY(-1px) scale(.98);transition-duration:.1s}.game-title{animation:titleBreath 4s ease-in-out infinite}@keyframes titleBreath{0%,to{text-shadow:0 4px 20px rgba(0,0,0,.4)}50%{text-shadow:0 4px 30px rgba(0,0,0,.5),0 0 40px rgba(240,192,64,.08)}}.opponent-card-stack{transition:transform .2s ease,filter .2s ease}.opponent-hand-summary:hover .opponent-card-stack{transform:scale(1.05) rotate(0);filter:brightness(1.1)}#bottom-cards:hover{transform:scale(1.03);transition:transform .3s ease}.history-entry{transition:background .2s ease,transform .2s ease}.history-entry:hover{background:#ffffff0f;transform:translate(4px)}.setting-row{transition:background .2s ease,transform .2s ease}.setting-row:hover{background:#ffffff0a;transform:translate(2px)}.stat-value{transition:transform .2s ease,color .2s ease}.stat-value:hover{transform:scale(1.1);color:var(--accent-color)}.level-progress-fill{transition:width .8s cubic-bezier(.175,.885,.32,1.275)}body{transition:background .5s ease}.card-back:hover .card-inner{transform:translateY(-4px);box-shadow:0 6px 16px #0000004d}.hand-front.range-selecting{cursor:grabbing}.hand-front.range-selecting .card{transition:transform .1s ease}.card.smart-play{transition:outline .2s ease,box-shadow .2s ease}.played-area.has-cards:hover{transform:scale(1.02);transition:transform .3s ease}#btn-sound-toggle:hover{transform:scale(1.15) rotate(10deg);transition:transform .2s ease}#pause-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:pauseFadeIn .3s ease}@keyframes pauseFadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}#help-panel{animation:helpSlideIn .35s cubic-bezier(.175,.885,.32,1.275)}@keyframes helpSlideIn{0%{opacity:0}to{opacity:1}}#turn-indicator{animation:turnBreath 3s ease-in-out infinite}@keyframes turnBreath{0%,to{box-shadow:inset 0 1px #ffffff14,0 4px 14px #0003}50%{box-shadow:inset 0 1px #ffffff14,0 4px 14px #0003,0 0 16px 2px #f0c0401a}}#last-play-type{animation:lastTypeBreath 3s ease-in-out infinite 1s}@keyframes lastTypeBreath{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 8px 1px #ffffff0f}}.player-tooltip{animation:tooltipFadeIn .2s ease}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}#card-tracker,#play-history,#chat-panel{transition:transform .3s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease}.player-badge.landlord{animation:landlordBadgeGlow 2s ease-in-out infinite}@keyframes landlordBadgeGlow{0%,to{box-shadow:0 0 18px #f0c04047}50%{box-shadow:0 0 24px 4px #f0c04066}}.player-area.low-cards .player-avatar{animation:lowCardsWarn 1.5s ease-in-out infinite}@keyframes lowCardsWarn{0%,to{box-shadow:0 3px 12px #00000040,inset 0 1px #ffffff26}50%{box-shadow:0 3px 12px #00000040,inset 0 1px #ffffff26,0 0 12px 2px #ff98004d}}.player-area.danger-cards .player-avatar{animation:dangerCardsWarn 1s ease-in-out infinite}@keyframes dangerCardsWarn{0%,to{box-shadow:0 3px 12px #00000040,inset 0 1px #ffffff26}50%{box-shadow:0 3px 12px #00000040,inset 0 1px #ffffff26,0 0 16px 3px #f4433659}}.btn-auto.active{animation:autoActivePulse 2s ease-in-out infinite}@keyframes autoActivePulse{0%,to{box-shadow:inset 0 1px #fff3,0 4px 12px #ff98004d}50%{box-shadow:inset 0 1px #fff3,0 4px 12px #ff98004d,0 0 16px 4px #ff980033}}.mode-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.mode-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 32px #00000040;border-color:#f0c0404d}.mode-card:active{transform:translateY(-2px) scale(.98);transition-duration:.1s}input[type=range]::-webkit-slider-thumb{transition:box-shadow .2s ease,transform .2s ease}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 6px #f0c04033;transform:scale(1.15)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.25);box-shadow:0 0 0 8px #f0c0404d}input[type=checkbox]{transition:background .2s ease,border-color .2s ease,transform .15s ease}input[type=checkbox]:checked{transform:scale(1.1)}input[type=checkbox]:active{transform:scale(.9)}select:hover{border-color:#f0c04066;box-shadow:0 0 0 3px #f0c0401a;transition:all .2s ease}.toast-notification{animation:toastEnhanced .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes toastEnhanced{0%{transform:translate(-50%) translateY(20px) scale(.9);opacity:0}60%{transform:translate(-50%) translateY(-4px) scale(1.02);opacity:1}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}#modal-overlay.show{animation:modalShowEnhanced .4s ease}@keyframes modalShowEnhanced{0%{opacity:0}to{opacity:1}}#modal-content.show{animation:modalContentShowEnhanced .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes modalContentShowEnhanced{0%{transform:translate(-50%,-50%) scale(.8) rotateX(10deg);opacity:0}to{transform:translate(-50%,-50%) scale(1) rotateX(0);opacity:1}}.btn-copy-success{animation:copySuccessAnim .5s ease}@keyframes copySuccessAnim{0%{transform:scale(1)}30%{transform:scale(1.2);background:#4caf50}to{transform:scale(1)}}.hand-front.enter-watch{animation:handEnterWatch .4s ease}@keyframes handEnterWatch{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.xp-gain-glow{animation:xpGainGlow 1s ease-out}@keyframes xpGainGlow{0%{box-shadow:0 0 #f0c04080}to{box-shadow:0 0 20px 4px #f0c04000}}.tutorial-step-dot{transition:transform .2s ease,background .2s ease}.tutorial-step-dot.active{transform:scale(1.3);background:var(--accent-color)}body[data-speed] #ddz-table{transition:opacity .3s ease}body[data-density] .card{transition:margin .3s ease}body[data-opponent-cards] .opponent-card-stack{transition:width .3s ease,transform .3s ease}.emoji-btn:hover{transform:scale(1.25) rotate(5deg);transition:transform .15s ease}.quick-phrase-btn:hover{transform:translate(4px);background:#f0c04026;transition:all .2s ease}.leaderboard-item{transition:background .2s ease,transform .2s ease}.leaderboard-item:hover{background:#ffffff0d;transform:translate(4px)}.leaderboard-item.top3 .rank{animation:top3RankGlow 2s ease-in-out infinite}@keyframes top3RankGlow{0%,to{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 8px rgba(240,192,64,.4)}}#tutorial-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center}#tutorial-fullscreen.hidden{display:none!important}.tutorial-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0a1428f5,#050f1efa);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tutorial-container{position:relative;display:flex;width:92vw;max-width:1200px;height:88vh;max-height:800px;background:#141e32d9;border-radius:16px;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 80px #00000080,inset 0 1px #ffffff0d;overflow:hidden}.tutorial-nav{width:220px;min-width:220px;background:#00000040;border-right:1px solid rgba(255,255,255,.06);padding:20px 16px;display:flex;flex-direction:column;gap:12px}.tutorial-nav h3{font-size:1.05rem;color:var(--accent-color);margin:0 0 8px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.tutorial-chapters{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto}.tutorial-chapters li{padding:10px 12px;border-radius:8px;cursor:pointer;font-size:.88rem;color:#ffffffa6;transition:all .2s ease;display:flex;align-items:center;gap:8px}.tutorial-chapters li:hover{background:#ffffff0d;color:#ffffffe6}.tutorial-chapters li.active{background:#f0c0401f;color:#f0c040;font-weight:600}.tutorial-chapters li.completed{color:#64dc78cc}.tut-chap-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#ffffff1a;font-size:.75rem;flex-shrink:0}.tutorial-chapters li.active .tut-chap-num{background:#f0c04040}.tutorial-progress{padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.tutorial-progress-track{height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.tutorial-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--accent-color),#f0c040);border-radius:3px;transition:width .4s ease}.tutorial-progress-text{text-align:center;font-size:.75rem;color:#fff6;margin-top:6px}.tutorial-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.tutorial-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.06)}.tutorial-header-text h2{font-size:1.3rem;color:#fff;margin:0}.tutorial-header-text p{font-size:.85rem;color:#ffffff80;margin:4px 0 0}.tutorial-close{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#ffffffb3;font-size:1.1rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.tutorial-close:hover{background:#f4433633;border-color:#f4433666;color:#f44336}.tutorial-body{flex:1;padding:24px 28px;overflow-y:auto;color:#ffffffd9;font-size:.95rem;line-height:1.7}.tutorial-body::-webkit-scrollbar{width:6px}.tutorial-body::-webkit-scrollbar-track{background:transparent}.tutorial-body::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.tutorial-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-top:1px solid rgba(255,255,255,.06);gap:16px}.tutorial-prev,.tutorial-next{padding:10px 22px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#ffffffd9;font-size:.9rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tutorial-prev:hover:not(:disabled),.tutorial-next:hover{background:#ffffff1f;border-color:#ffffff40}.tutorial-prev:disabled{opacity:.3;cursor:not-allowed}.tutorial-next{background:linear-gradient(135deg,var(--accent-color),rgba(240,192,64,.8));border-color:transparent;color:#fff;font-weight:600}.tutorial-next:hover{filter:brightness(1.15);transform:translateY(-1px)}.tutorial-dots{display:flex;gap:8px;align-items:center;justify-content:center;flex:1}.tut-dot{width:8px;height:8px;border-radius:50%;background:#fff3;transition:all .3s ease}.tut-dot.active{background:var(--accent-color);transform:scale(1.3);box-shadow:0 0 8px #1a5f2a66}.tut-dot.completed{background:#64dc7899}.tut-body-enter{animation:tutBodyEnter .4s ease-out}@keyframes tutBodyEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.tut-welcome{text-align:center;padding:20px 0}.tut-welcome-emoji{font-size:4rem;margin-bottom:12px;animation:tutWelcomeBounce 2s ease-in-out infinite}@keyframes tutWelcomeBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.tut-welcome-title{font-size:2.4rem;color:#f0c040;margin:0 0 8px;text-shadow:0 2px 16px rgba(240,192,64,.3)}.tut-welcome-desc{font-size:1.05rem;color:#fff9;margin-bottom:32px}.tut-roles-showcase{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:32px}.tut-role-card{background:#ffffff0d;border-radius:16px;padding:24px 28px;border:1px solid rgba(255,255,255,.08);text-align:center;min-width:160px;transition:all .3s ease}.tut-role-card:hover{transform:translateY(-4px);border-color:#ffffff26}.tut-role-landlord{border-color:#f0c04033}.tut-role-landlord:hover{box-shadow:0 8px 32px #f0c0401a}.tut-role-peasant{border-color:#64c86433}.tut-role-peasant:hover{box-shadow:0 8px 32px #64c8641a}.tut-role-icon{font-size:2.5rem;margin-bottom:8px}.tut-role-name{font-size:1.2rem;font-weight:700;margin-bottom:4px}.tut-role-landlord .tut-role-name{color:#f0c040}.tut-role-peasant .tut-role-name{color:#64c864}.tut-role-desc{font-size:.8rem;color:#ffffff80}.tut-vs{font-size:1.5rem;font-weight:800;color:#ffffff4d}.tut-welcome-tip{display:inline-flex;align-items:center;gap:8px;background:#f0c04014;border:1px solid rgba(240,192,64,.15);border-radius:8px;padding:10px 18px;font-size:.85rem;color:#f0c040cc}.tut-tip-icon{font-size:1.1rem}.tut-patterns{padding:8px 0}.tut-intro{text-align:center;color:#ffffff80;margin-bottom:20px;font-size:.9rem}.tut-pattern-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.tut-pattern-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 12px;text-align:center;cursor:pointer;transition:all .25s ease}.tut-pattern-card:hover{background:#ffffff14;border-color:#f0c0404d;transform:translateY(-3px);box-shadow:0 8px 24px #0003}.tut-pattern-icon{font-size:1.8rem;margin-bottom:6px}.tut-pattern-name{font-weight:600;font-size:.92rem;margin-bottom:2px}.tut-pattern-desc{font-size:.75rem;color:#ffffff73;margin-bottom:4px}.tut-pattern-example{font-size:.72rem;color:#ffffff59}.tut-pattern-detail{background:#0000004d;border-radius:12px;padding:20px;border:1px solid rgba(255,255,255,.08);animation:tutDetailAppear .3s ease}@keyframes tutDetailAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tut-detail-name{font-size:1.2rem;font-weight:700;color:#f0c040;margin-bottom:8px}.tut-detail-valid{color:#64dc78cc;margin-bottom:8px}.tut-detail-example{color:#ffffffb3;margin-bottom:8px}.tut-detail-compare{color:#ffffff80;font-size:.9rem}.tut-ranking{padding:8px 0}.tut-rank-section{margin-bottom:28px}.tut-rank-section h4{font-size:1.05rem;color:#fffc;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.tut-pyramid{display:flex;flex-direction:column;align-items:center;gap:10px}.tut-pyramid-level{display:flex;align-items:center;gap:12px;padding:14px 24px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:all .25s ease;min-width:320px;justify-content:center}.tut-pyramid-level:hover{background:#ffffff14;transform:scale(1.03)}.tut-pyramid-pop{animation:tutPyramidPop .4s ease}@keyframes tutPyramidPop{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.tut-level-1{border-color:#f0c04040;background:#f0c0400f}.tut-level-2{border-color:#f4433633;background:#f443360a}.tut-level-3{border-color:#6496ff33;background:#6496ff0a}.tut-pyramid-icon{font-size:1.5rem}.tut-pyramid-desc{font-size:.8rem;color:#ffffff80}.tut-rank-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;padding:16px;background:#0003;border-radius:12px}.tut-rank-item{display:flex;align-items:center;gap:4px}.tut-rank-card{width:36px;height:48px;background:linear-gradient(135deg,#fff,#e8e8e8);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#333;box-shadow:0 2px 8px #00000026}.tut-rank-card.joker{background:linear-gradient(135deg,#f0c040,#e0a020);color:#fff}.tut-rank-arrow{color:#fff3;font-size:.8rem}.tut-rank-crown{font-size:1rem}.tut-rank-note{text-align:center;color:#fff6;font-size:.85rem;margin-top:12px}.tut-quiz{background:#0003;border-radius:12px;padding:20px}.tut-quiz-question{font-size:1.1rem;font-weight:600;margin-bottom:16px;text-align:center}.tut-quiz-options{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.tut-quiz-option{background:#ffffff0f;border:2px solid rgba(255,255,255,.1);border-radius:12px;padding:20px 28px;cursor:pointer;text-align:center;color:#ffffffd9;transition:all .25s ease;min-width:140px}.tut-quiz-option:hover{border-color:#f0c04066;background:#f0c0400f;transform:translateY(-2px)}.tut-mini-cards{font-size:1.6rem;margin-bottom:8px}.tut-quiz-result{margin-top:16px;text-align:center;padding:12px;border-radius:8px;animation:tutResultPop .3s ease}@keyframes tutResultPop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.tut-quiz-correct{color:#64dc78e6;font-weight:600}.tut-quiz-wrong{color:#f46464e6;font-weight:600}.tut-dealing{padding:8px 0}.tut-deal-stage{background:#0003;border-radius:16px;padding:24px;margin-bottom:20px;min-height:200px}.tut-deck-area{text-align:center;margin-bottom:20px}.tut-deck{display:inline-flex;flex-direction:column;align-items:center;gap:4px}.tut-deck-card{font-size:3rem}.tut-deck-count{font-size:.8rem;color:#fff6}.tut-deal-players{display:flex;justify-content:space-around;gap:16px;margin-bottom:20px}.tut-deal-player{text-align:center;flex:1}.tut-deal-avatar{font-size:1.8rem;margin-bottom:4px}.tut-deal-name{font-size:.85rem;color:#fff9;margin-bottom:8px}.tut-deal-hand{min-height:50px}.tut-deal-card-stack{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;min-height:30px}.tut-deal-mini{font-size:1.2rem;animation:tutDealMiniAppear .2s ease}@keyframes tutDealMiniAppear{0%{opacity:0;transform:translateY(-8px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.tut-deal-count{font-size:.75rem;color:#fff6;margin-top:4px}.tut-bottom-cards-area{text-align:center;padding-top:12px;border-top:1px dashed rgba(255,255,255,.1)}.tut-bottom-label{font-size:.8rem;color:#fff6;margin-bottom:8px}.tut-bottom-cards{display:flex;gap:8px;justify-content:center}.tut-bottom-card{font-size:2rem;animation:tutBottomAppear .3s ease}@keyframes tutBottomAppear{0%{opacity:0;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}.tut-deal-info{display:flex;flex-direction:column;gap:10px}.tut-info-item{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#ffffff0a;border-radius:8px;font-size:.9rem}.tut-info-icon{font-size:1.2rem}.tut-calling{padding:8px 0}.tut-call-tabs{display:flex;gap:8px;margin-bottom:20px}.tut-tab-btn{padding:10px 20px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#fff9;cursor:pointer;transition:all .2s ease;font-size:.9rem}.tut-tab-btn.active{background:#f0c0401f;border-color:#f0c0404d;color:#f0c040;font-weight:600}.tut-tab-btn:hover:not(.active){background:#ffffff14}.tut-call-content{position:relative}.tut-call-mode{display:none}.tut-call-mode.active{display:block;animation:tutModeSwitch .3s ease}@keyframes tutModeSwitch{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.tut-call-demo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.tut-call-player{text-align:center;padding:16px;background:#ffffff0a;border-radius:12px;min-width:100px}.tut-call-avatar{font-size:1.8rem;margin-bottom:4px}.tut-call-name{font-size:.85rem;color:#fff9;margin-bottom:8px}.tut-call-action{padding:8px 14px;background:#ffffff0f;border-radius:6px;font-size:.85rem;font-weight:600;transition:all .3s ease}.tut-call-highlight{background:#f0c04033!important;color:#f0c040;transform:scale(1.1);box-shadow:0 0 16px #f0c04033}.tut-action-call{background:#64c86426;color:#64dc78e6}.tut-action-grab{background:#f4433626;color:#f46464e6}.tut-call-arrow{color:#fff3;font-size:1.2rem}.tut-call-result{text-align:center;padding:16px;background:#f0c04014;border-radius:12px;margin-bottom:20px;opacity:0;transform:translateY(8px);transition:all .4s ease}.tut-call-show{opacity:1;transform:translateY(0)}.tut-call-winner{font-size:1.1rem;font-weight:700;color:#f0c040}.tut-call-rules{background:#0003;border-radius:12px;padding:16px 20px}.tut-call-rules h5{margin:0 0 10px;color:#fffc}.tut-call-rules ul{margin:0;padding-left:18px;color:#fff9;font-size:.88rem;line-height:1.8}.tut-playing{padding:8px 0}.tut-play-scenario{background:#00000040;border-radius:16px;padding:24px;margin-bottom:20px;min-height:240px}.tut-play-table{display:grid;grid-template-areas:". top ." "left center right";grid-template-columns:1fr 2fr 1fr;gap:16px;align-items:center;min-height:200px}.tut-play-top{grid-area:top;text-align:center}.tut-play-left{grid-area:left;text-align:center}.tut-play-right{grid-area:right;text-align:center}.tut-play-center-info{grid-area:center;text-align:center}.tut-play-avatar{font-size:.85rem;color:#fff9;margin-bottom:8px}.tut-play-cards{display:flex;gap:4px;justify-content:center;min-height:50px;align-items:center;padding:8px;border-radius:8px;transition:all .3s ease}.tut-play-active{background:#f0c0401a;box-shadow:0 0 16px #f0c0401a}.tut-pcard{width:28px;height:40px;background:linear-gradient(135deg,#fff,#e8e8e8);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#333;box-shadow:0 2px 6px #00000026}.tut-play-type{font-size:.75rem;color:#fff6;margin-top:4px;opacity:0;transition:opacity .3s ease}.tut-play-pass{color:#ffffff4d;font-style:italic}.tut-pass-text{font-size:.9rem}.tut-play-turn{font-size:.9rem;color:#f0c040cc;font-weight:600;padding:8px 16px;background:#f0c04014;border-radius:20px;display:inline-block}.tut-play-rules{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.tut-rule-card{display:flex;gap:12px;padding:14px 16px;background:#ffffff0a;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.tut-rule-num{width:28px;height:28px;border-radius:50%;background:#f0c04026;color:#f0c040;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.tut-rule-text{font-size:.85rem;color:#ffffffb3;line-height:1.5}.tut-rule-text strong{color:#ffffffe6}.tut-scoring{padding:8px 0}.tut-score-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.tut-score-card{text-align:center;padding:20px 16px;background:#ffffff0a;border-radius:14px;border:1px solid rgba(255,255,255,.08);transition:all .3s ease}.tut-score-card:hover{transform:translateY(-3px);border-color:#ffffff26}.tut-spring:hover{border-color:#ff96c84d}.tut-anti-spring:hover{border-color:#64c8644d}.tut-bomb:hover{border-color:#f443364d}.tut-score-icon{font-size:2.2rem;margin-bottom:8px}.tut-score-card h4{margin:0 0 6px;font-size:1rem}.tut-score-card p{font-size:.82rem;color:#ffffff8c;margin:0 0 10px;line-height:1.5}.tut-score-multiplier{font-size:1.3rem;font-weight:700;color:#f0c040;margin-bottom:6px}.tut-score-example{font-size:.75rem;color:#ffffff59}.tut-score-formula{background:#0003;border-radius:14px;padding:20px 24px}.tut-score-formula h4{margin:0 0 14px;color:#fffc}.tut-formula-box{background:#ffffff0a;border-radius:10px;padding:16px;margin-bottom:16px;overflow-x:auto}.tut-formula-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;font-size:.9rem}.tut-formula-item{padding:6px 12px;background:#6496ff1a;border-radius:6px;color:#96b4ffe6;white-space:nowrap}.tut-formula-result{padding:6px 14px;background:#f0c04026;border-radius:6px;color:#f0c040;font-weight:700;white-space:nowrap}.tut-example-title{font-weight:600;color:#ffffffb3;margin-bottom:8px}.tut-example-calc{background:#ffffff0a;border-radius:8px;padding:14px 18px;font-size:.9rem;line-height:1.8;color:#ffffffb3}.tut-example-eq{font-size:1.1rem;color:#f0c040;margin:4px 0}.tut-example-dist{margin-top:8px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.1);font-size:.85rem;color:#ffffff8c}.tut-practice{padding:8px 0}.tut-practice-stage{background:#0003;border-radius:16px;padding:24px;margin-bottom:20px;min-height:200px;text-align:center}.tut-practice-msg{font-size:1.1rem;color:#fff9;padding:40px 0}.tut-practice-table{display:grid;grid-template-areas:". top ." "left center right";grid-template-columns:1fr 2fr 1fr;gap:12px;align-items:start}.tut-prac-player{text-align:center;padding:12px;background:#ffffff0a;border-radius:12px}.tut-prac-top{grid-area:top}.tut-prac-left{grid-area:left}.tut-prac-right{grid-area:right}.tut-prac-center{grid-area:center}.tut-prac-avatar{font-size:1.6rem;margin-bottom:4px}.tut-prac-name{font-size:.8rem;color:#fff9;margin-bottom:6px}.tut-prac-cards{font-size:.9rem;letter-spacing:-2px;color:#fff6}.tut-prac-center{display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px}.tut-prac-bottom-cards{text-align:center}.tut-prac-label{font-size:.75rem;color:#ffffff59;margin-bottom:4px}.tut-prac-bcards{font-size:1.5rem;letter-spacing:4px}.tut-prac-played{min-height:40px;display:flex;align-items:center;justify-content:center;gap:4px}.tut-prac-comment{padding:8px 16px;background:#f0c04014;border-radius:20px;font-size:.88rem;color:#f0c040e6;font-weight:500;min-height:36px;display:flex;align-items:center;justify-content:center}.tut-practice-controls{text-align:center;margin-bottom:16px}.tut-practice-tips{text-align:center}.tut-practice-tip{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:#6496ff14;border-radius:8px;font-size:.85rem;color:#96b4ffcc}.tut-complete{text-align:center;padding:32px;animation:tutCompleteAppear .5s ease}@keyframes tutCompleteAppear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.tut-complete-icon{font-size:3.5rem;margin-bottom:12px;animation:tutCompleteBounce 1s ease infinite}@keyframes tutCompleteBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.tut-complete h3{font-size:1.4rem;color:#f0c040;margin:0 0 8px}.tut-complete p{color:#fff9;margin-bottom:20px}.tut-action-btn{padding:12px 28px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#ffffffd9;font-size:.95rem;cursor:pointer;transition:all .25s ease}.tut-action-btn:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff40;transform:translateY(-2px)}.tut-action-btn:disabled{opacity:.4;cursor:wait}.tut-btn-primary{background:linear-gradient(135deg,var(--accent-color),rgba(240,192,64,.8));border-color:transparent;color:#fff;font-weight:600}.tut-btn-primary:hover{filter:brightness(1.15)}@media(max-width:768px){.tutorial-container{flex-direction:column;width:96vw;height:92vh}.tutorial-nav{width:100%;min-width:auto;max-height:120px;padding:12px}.tutorial-chapters{flex-direction:row;flex-wrap:wrap;gap:4px}.tutorial-chapters li{padding:6px 10px;font-size:.78rem}.tut-chap-num,.tutorial-progress{display:none}.tutorial-body{padding:16px}.tut-pattern-grid{grid-template-columns:repeat(2,1fr)}.tut-roles-showcase{flex-direction:column}.tut-vs{transform:rotate(90deg)}.tut-score-sections,.tut-play-rules{grid-template-columns:1fr}.tut-rank-bar{gap:4px}.tut-rank-card{width:28px;height:38px;font-size:.7rem}.tut-rank-arrow{display:none}.tut-practice-table{grid-template-columns:1fr;grid-template-areas:"top" "center" "left" "right"}}@media(prefers-reduced-motion:reduce){.tut-welcome-emoji,.tut-complete-icon,.tut-body-enter,.tut-detail-appear,.tut-mode-switch{animation:none!important}}#welcome-guide-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:flex;align-items:center;justify-content:center}#welcome-guide-overlay.hidden{display:none!important}.welcome-guide-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#081020f5,#040a14fa);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.welcome-guide-modal{position:relative;text-align:center;padding:48px 40px 36px;background:#14233ce6;border-radius:24px;border:1px solid rgba(255,255,255,.1);box-shadow:0 32px 100px #0009,inset 0 1px #ffffff14;max-width:480px;width:90vw;animation:welcomeGuideAppear .6s cubic-bezier(.175,.885,.32,1.275)}@keyframes welcomeGuideAppear{0%{opacity:0;transform:translateY(40px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.welcome-guide-emoji{font-size:4.5rem;margin-bottom:16px;animation:welcomeEmojiFloat 3s ease-in-out infinite}@keyframes welcomeEmojiFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-14px) rotate(5deg)}}.welcome-guide-title{font-size:2rem;color:#fff;margin:0 0 8px;font-weight:700;letter-spacing:2px}.welcome-guide-desc{font-size:.95rem;color:#ffffff73;margin-bottom:32px}.welcome-guide-choices{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}.welcome-guide-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 24px;border-radius:16px;border:2px solid transparent;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);font-family:inherit;width:100%}.welcome-guide-btn:hover{transform:translateY(-3px) scale(1.02)}.welcome-guide-btn:active{transform:translateY(-1px) scale(.98)}.welcome-guide-btn-primary{background:linear-gradient(135deg,#1a5f2ae6,#144b20f2);border-color:#64dc784d;color:#fff;box-shadow:0 8px 32px #1a5f2a4d}.welcome-guide-btn-primary:hover{box-shadow:0 12px 40px #1a5f2a66;border-color:#64dc7880}.welcome-guide-btn-secondary{background:#ffffff0f;border-color:#ffffff1f;color:#ffffffb3}.welcome-guide-btn-secondary:hover{background:#ffffff1a;border-color:#fff3}.wgb-icon{font-size:2rem}.wgb-text{font-size:1.15rem;font-weight:700}.wgb-sub{font-size:.78rem;opacity:.6;font-weight:400}.welcome-guide-skip{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.82rem;color:#fff6;cursor:pointer}.welcome-guide-skip input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-color);cursor:pointer}.welcome-guide-modal:before{content:"🂡";position:absolute;top:-20px;left:-20px;font-size:5rem;opacity:.04;transform:rotate(-15deg);pointer-events:none}.welcome-guide-modal:after{content:"🃏";position:absolute;bottom:-16px;right:-16px;font-size:4rem;opacity:.04;transform:rotate(20deg);pointer-events:none}.tut-memory{padding:8px 0}.tut-mem-section{margin-bottom:28px}.tut-mem-section h4{font-size:1.05rem;color:#ffffffd9;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.tut-mem-desc{color:#ffffffa6;line-height:1.7}.tut-mem-desc strong{color:#ffffffe6}.tut-key-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tut-key-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;text-align:center;transition:all .25s ease}.tut-key-card:hover{transform:translateY(-3px);border-color:#f0c04033}.tut-kc-icon{font-size:2rem;margin-bottom:6px}.tut-kc-name{font-weight:700;font-size:.95rem;margin-bottom:4px;color:#ffffffd9}.tut-kc-desc{font-size:.78rem;color:#ffffff73;line-height:1.5}.tut-priority-list{display:flex;flex-direction:column;gap:8px}.tut-priority-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ffffff08;border-radius:10px;border-left:3px solid rgba(240,192,64,calc(1 - var(--p) * .15))}.tut-pri-num{width:28px;height:28px;border-radius:50%;background:#f0c04026;color:#f0c040;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.tut-tips-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tut-tip-card{background:#6496ff0f;border:1px solid rgba(100,150,255,.12);border-radius:12px;padding:16px}.tut-tip-title{font-weight:700;font-size:.9rem;color:#96b4ffe6;margin-bottom:6px}.tut-tip-body{font-size:.82rem;color:#ffffff8c;line-height:1.5}.tut-mem-note{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#f0c0400f;border:1px solid rgba(240,192,64,.12);border-radius:10px;font-size:.88rem;color:#f0c040b3}.tut-advanced{padding:8px 0}.tut-adv-section{margin-bottom:28px}.tut-adv-section h4{font-size:1.05rem;color:#ffffffd9;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.tut-adv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tut-adv-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;text-align:center;transition:all .25s ease}.tut-adv-card:hover{transform:translateY(-3px);border-color:#f0c04033}.tut-adv-icon{font-size:1.8rem;margin-bottom:6px}.tut-adv-name{font-weight:700;font-size:.92rem;margin-bottom:4px}.tut-adv-desc{font-size:.78rem;color:#ffffff73;line-height:1.5}.tut-adv-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.tut-adv-list li{padding:12px 16px;background:#ffffff08;border-radius:10px;color:#ffffffb3;font-size:.9rem;line-height:1.6}.tut-adv-list li strong{color:#ffffffe6}.tut-mistakes{display:flex;flex-direction:column;gap:12px}.tut-mistake{display:flex;gap:14px;padding:16px;background:#f443360a;border:1px solid rgba(244,67,54,.1);border-radius:12px;transition:all .25s ease}.tut-mistake:hover{background:#f443360f;border-color:#f4433626}.tut-mk-icon{font-size:1.4rem;flex-shrink:0}.tut-mk-content{flex:1}.tut-mk-title{font-weight:700;color:#f47878e6;margin-bottom:6px;font-size:.92rem}.tut-mk-fix{color:#fff9;font-size:.85rem;line-height:1.6}.tut-mk-fix strong{color:#64dc78e6}.tut-adv-complete{text-align:center;padding:28px;background:#f0c0400f;border:1px solid rgba(240,192,64,.12);border-radius:16px;margin-top:20px}.tut-adv-trophy{font-size:3rem;margin-bottom:8px;animation:tutTrophyPulse 2s ease-in-out infinite}@keyframes tutTrophyPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.tut-adv-complete p{color:#ffffffb3;margin:4px 0}.tut-pattern-filters{display:flex;gap:8px;margin-bottom:16px;justify-content:center}.tut-filter-btn{padding:8px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#ffffff8c;font-size:.82rem;cursor:pointer;transition:all .2s ease}.tut-filter-btn.active{background:#f0c04026;border-color:#f0c0404d;color:#f0c040;font-weight:600}.tut-filter-btn:hover:not(.active){background:#ffffff14}.tut-pattern-note{margin-top:16px}.tut-note-box{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f4b43c0f;border:1px solid rgba(244,180,60,.12);border-radius:10px;font-size:.88rem;color:#f4b43ccc}.tut-note-box strong{color:#f4b43cf2}#settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:400;opacity:0;pointer-events:none;transition:opacity .35s cubic-bezier(.4,0,.2,1)}#settings-overlay:not(.hidden){opacity:1;pointer-events:auto}#settings-overlay.hidden{opacity:0;pointer-events:none}.settings-modal{width:min(92vw,720px);max-height:min(88vh,680px);background:linear-gradient(160deg,#1e3228f7,#0f1e16fa);border-radius:20px;border:1px solid rgba(255,255,255,.08);box-shadow:0 28px 80px #00000080,inset 0 1px #ffffff0f;display:flex;flex-direction:column;overflow:hidden;transform:translateY(24px) scale(.96);opacity:0;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease}#settings-overlay:not(.hidden) .settings-modal{transform:translateY(0) scale(1);opacity:1}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;gap:12px}.settings-header h2{font-size:1.15rem;font-weight:800;color:#f0c040;display:flex;align-items:center;gap:8px;margin:0;letter-spacing:.5px}.settings-header h2:before{content:"⚙️";font-size:1.05em;filter:drop-shadow(0 0 6px rgba(240,192,64,.35))}.btn-close{width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:#ffffffb3;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.btn-close:hover{background:#f4433626;color:#f44336;border-color:#f443364d;transform:rotate(90deg)}.btn-close:active{transform:rotate(90deg) scale(.92)}.settings-search-wrap{padding:0 22px 12px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.04)}.settings-search{position:relative;display:flex;align-items:center}.settings-search-icon{position:absolute;left:12px;font-size:.95rem;opacity:.45;pointer-events:none;transition:opacity .2s}.settings-search input{width:100%;padding:9px 12px 9px 36px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#00000040;color:#fff;font-size:.9rem;outline:none;transition:all .2s ease}.settings-search input::placeholder{color:#fff9}.settings-search input:focus{border-color:#f0c04066;background:#00000059;box-shadow:0 0 0 3px #f0c04014}.settings-search:has(input:focus) .settings-search-icon{opacity:.8}.settings-search-clear{position:absolute;right:10px;width:22px;height:22px;border-radius:50%;border:none;background:#ffffff1a;color:#ffffff80;font-size:.75rem;cursor:pointer;display:none;align-items:center;justify-content:center;transition:all .15s}.settings-search:has(input:not(:placeholder-shown)) .settings-search-clear,.settings-search.has-value .settings-search-clear{display:flex}.settings-search-clear:hover{background:#f4433640;color:#f44336}.settings-search-match-count{font-size:.75rem;color:var(--accent-color);margin-left:8px;opacity:.85;white-space:nowrap}.settings-panel{padding:16px 22px 22px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(240,192,64,.25) transparent;flex:1;gap:6px;max-height:none!important}.settings-panel::-webkit-scrollbar{width:5px}.settings-panel::-webkit-scrollbar-track{background:transparent}.settings-panel::-webkit-scrollbar-thumb{background:#f0c04033;border-radius:10px}.settings-panel::-webkit-scrollbar-thumb:hover{background:#f0c04059}.settings-section-title{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:800;color:var(--accent-color);text-transform:uppercase;letter-spacing:1.2px;padding:14px 0 8px;margin-top:4px;position:relative}.settings-section-title:before{content:"";display:inline-block;width:3px;height:14px;background:var(--accent-color);border-radius:2px;opacity:.7}.settings-section-title:first-child{padding-top:0;margin-top:0}.settings-section-title[data-icon=basic]:after{content:"👤";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=audio]:after{content:"🔊";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=rules]:after{content:"⚖️";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=variants]:after{content:"🎲";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=ai]:after{content:"🤖";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=visual]:after{content:"👁️";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=layout]:after{content:"📐";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=animation]:after{content:"✨";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=interaction]:after{content:"🖱️";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=assist]:after{content:"💡";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=panels]:after{content:"📋";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=accessibility]:after{content:"♿";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=network]:after{content:"🌐";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=performance]:after{content:"⚡";margin-left:auto;font-size:.9rem;opacity:.4}.settings-section-title[data-icon=advanced]:after{content:"🔧";margin-left:auto;font-size:.9rem;opacity:.4}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.04);font-size:.88rem;transition:all .2s ease;min-width:0}.setting-row:hover{background:#ffffff12;border-color:#ffffff1a}.setting-row select,.setting-row input[type=text]{padding:5px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.1);background:#0000004d;color:#fff;font-size:.85rem;outline:none;transition:all .2s;width:min(140px,50%);cursor:pointer}.setting-row select:focus-visible,.setting-row input[type=text]:focus-visible{outline:2px solid rgba(240,192,64,.5);outline-offset:2px}.setting-row select:hover,.setting-row input[type=text]:hover{border-color:#f0c0404d}.setting-row select:focus,.setting-row input[type=text]:focus{border-color:#f0c04080;box-shadow:0 0 0 2px #f0c0401a}.setting-row select option{background:#1e2e24;color:#fff}.settings-panel label.setting-locked{opacity:.4;cursor:not-allowed}.settings-panel label.setting-locked .toggle-switch-track,.settings-panel label.setting-locked select,.settings-panel label.setting-locked input{pointer-events:none;filter:grayscale(.7)}.settings-panel label.setting-locked .setting-value-output{opacity:.4}.toggle-switch-wrap{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px 0}.toggle-switch-wrap input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.toggle-switch-track{width:40px;height:22px;border-radius:11px;background:#ffffff1f;position:relative;transition:background .3s cubic-bezier(.4,0,.2,1);flex-shrink:0;cursor:pointer}.toggle-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0000004d;transition:transform .3s cubic-bezier(.4,0,.2,1)}.toggle-switch-wrap input:checked+.toggle-switch-track{background:#4caf50b3}.toggle-switch-wrap input:checked+.toggle-switch-track:after{transform:translate(18px)}.toggle-switch-wrap:active .toggle-switch-track:after{width:22px}.toggle-switch-wrap input:checked:active+.toggle-switch-track:after{transform:translate(14px)}.toggle-switch-label{font-size:.85rem;color:#ffffffd9;transition:color .2s}.toggle-switch-wrap:hover .toggle-switch-label{color:#fff}.toggle-switch-wrap.setting-locked{cursor:not-allowed;pointer-events:none}.toggle-switch-wrap.setting-locked .toggle-switch-track{background:#ffffff0f}.settings-toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,max-content));gap:4px 6px;margin:6px 0 4px}.settings-toggles .toggle-switch-wrap{padding:7px 10px;border-radius:8px;background:#ffffff08;border:1px solid transparent;transition:all .2s}.settings-toggles .toggle-switch-wrap:hover{background:#ffffff0f;border-color:#ffffff0f}.settings-toggles .toggle-switch-label{font-size:.82rem}.volume-control{display:flex;align-items:center;gap:10px;padding:6px 0}.volume-control label{font-size:.82rem;min-width:44px;color:#ffffffb3;font-weight:600}.volume-value{font-size:.78rem;color:var(--accent-color);font-weight:700;min-width:38px;text-align:right}input[type=range].settings-slider-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:5px;border-radius:3px;background:linear-gradient(to right,var(--accent-color) 0 var(--range-progress, 50%),rgba(255,255,255,.12) var(--range-progress, 50%) 100%);outline:none;cursor:pointer;flex:1;transition:background .2s}input[type=range].settings-slider-input:focus-visible{outline:2px solid rgba(240,192,64,.5);outline-offset:4px}input[type=range].settings-slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(145deg,#f0c040,#d4a017);box-shadow:0 1px 6px #f0c04066,0 0 0 2px #f0c04026;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);margin-top:-5.5px}input[type=range].settings-slider-input::-webkit-slider-thumb:hover{transform:scale(1.25);box-shadow:0 2px 10px #f0c04080,0 0 0 3px #f0c04033}input[type=range].settings-slider-input::-webkit-slider-thumb:active{transform:scale(1.1)}input[type=range].settings-slider-input::-webkit-slider-runnable-track{height:5px;border-radius:3px}input[type=range].settings-slider-input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(145deg,#f0c040,#d4a017);box-shadow:0 1px 6px #f0c04066;cursor:pointer;border:none;transition:all .2s}input[type=range].settings-slider-input::-moz-range-thumb:hover{transform:scale(1.25)}input[type=range].settings-slider-input::-moz-range-track{height:5px;border-radius:3px;background:#ffffff1a}.settings-slider-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:6px}.setting-slider{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border-radius:10px;background:#00000026;border:1px solid rgba(255,255,255,.04);transition:all .2s}.setting-slider:hover{background:#0003;border-color:#ffffff14}.setting-slider .slider-label-row{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;color:#fffc}.setting-slider .slider-label-row .setting-value-output{color:var(--accent-color);font-weight:700;font-size:.78rem}.advanced-settings{padding:0;min-height:46px;border-radius:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);overflow:hidden;transition:all .3s ease}.advanced-settings+.advanced-settings{margin-top:6px}.advanced-settings[open]{background:#ffffff0a;border-color:#ffffff1a}.advanced-settings summary{cursor:pointer;color:#ffffffbf;font-weight:700;font-size:.85rem;padding:11px 14px;margin:0;display:flex;align-items:center;gap:8px;list-style:none;-webkit-user-select:none;user-select:none;transition:all .2s}.advanced-settings summary::-webkit-details-marker{display:none}.advanced-settings summary:before{content:"▶";font-size:.6rem;opacity:.5;transition:transform .25s ease;display:inline-block;width:14px;text-align:center}.advanced-settings[open] summary:before{transform:rotate(90deg)}.advanced-settings summary:hover{color:var(--accent-color);background:#ffffff08}.advanced-settings[open] summary{color:var(--accent-color);border-bottom:1px solid rgba(255,255,255,.05)}.advanced-settings>*:not(summary){padding:10px 14px 14px;animation:settingsExpand .25s ease forwards}@keyframes settingsExpand{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.settings-fairness-note{font-size:.75rem;color:#f4b43c99;margin-top:8px;padding:6px 10px;background:#f4b43c0a;border-radius:6px;border-left:2px solid rgba(244,180,60,.3)}.settings-reset-row{display:flex;gap:10px;padding:4px 0}.settings-reset-row .btn-small{flex:1;padding:8px 14px;font-size:.8rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#ffffffbf;cursor:pointer;transition:all .2s;font-weight:600}.settings-reset-row .btn-small:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-1px)}.settings-reset-row .btn-small.danger{color:#f44336d9;border-color:#f4433633}.settings-reset-row .btn-small.danger:hover{background:#f443361a;border-color:#f4433659}.setting-changed{animation:settingPulse .5s ease}@keyframes settingPulse{0%{box-shadow:inset 0 0 #f0c04000}30%{box-shadow:inset 0 0 0 2px #f0c0404d}to{box-shadow:inset 0 0 #f0c04000}}.setting-search-match{background:#f0c0401a!important;border-color:#f0c04040!important;animation:searchMatchPulse 1s ease}@keyframes searchMatchPulse{0%{box-shadow:0 0 #f0c0404d}50%{box-shadow:0 0 12px 2px #f0c04026}to{box-shadow:0 0 #f0c04000}}.settings-panel .setting-hidden{display:none!important}.setting-tooltip{position:relative}.setting-tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);background:#141e19f2;color:#ffffffd9;padding:6px 10px;border-radius:8px;font-size:.72rem;white-space:normal;max-width:min(280px,80vw);pointer-events:none;opacity:0;transition:all .2s ease;z-index:10;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 16px #0000004d}.setting-tooltip:hover:after{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:640px){.settings-modal{width:100vw;max-height:92vh;border-radius:16px 16px 0 0;position:fixed;bottom:0;top:auto;transform:translateY(100%)}#settings-overlay:not(.hidden) .settings-modal{transform:translateY(0)}.settings-header{padding:14px 16px 10px}.settings-header h2{font-size:1.05rem}.settings-search-wrap{padding:0 16px 10px}.settings-panel{padding:12px 16px 20px}.settings-grid,.settings-slider-list,.settings-toggles{grid-template-columns:1fr}.settings-section-title{font-size:.68rem}.setting-row{font-size:.85rem}.setting-row select,.setting-row input[type=text]{width:min(130px,48%)}.advanced-settings summary{font-size:.82rem;padding:10px 12px}.advanced-settings>*:not(summary){padding:8px 12px 12px}.settings-reset-row{flex-direction:column}}@media(max-width:640px)and (max-height:700px){.settings-modal{max-height:96vh;border-radius:12px 12px 0 0}}@media(min-width:641px)and (max-width:900px){.settings-modal{width:min(94vw,640px)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-slider-list{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){#settings-overlay,.settings-modal,.toggle-switch-track,.toggle-switch-track:after,.setting-row,.advanced-settings,.advanced-settings summary:before{transition:none!important;animation:none!important}.advanced-settings>*:not(summary){animation:none!important}}body[data-high-contrast=true] .toggle-switch-track{border:1px solid rgba(255,255,255,.3)}body[data-high-contrast=true] .toggle-switch-track:after{border:1px solid rgba(0,0,0,.5)}body[data-high-contrast=true] .setting-row,body[data-high-contrast=true] .setting-slider,body[data-high-contrast=true] .advanced-settings{border-color:#fff3}.settings-grid--spaced{margin-top:8px}.settings-grid--spaced-sm{margin-top:6px}.settings-toggles--spaced{margin-top:8px}.debug-counter{display:none;position:fixed;left:4px;background:#00000080;font-family:monospace;font-size:11px;padding:2px 6px;border-radius:4px;z-index:9999}.debug-counter--fps{top:4px;color:#0f0}.debug-counter--mem{top:24px;color:#0ff}.btn-back{margin-top:12px}.btn-back--fixed{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:100;margin-top:0;padding:8px 16px;border-radius:10px;background:#0000004d;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fffc;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-back--fixed:hover{background:#00000073;border-color:#ffffff2e;color:#fff;transform:translateY(-1px)}.btn-danger{color:#f44336!important}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);overscroll-behavior:none}#controls-area{padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}.settings-modal{padding-bottom:env(safe-area-inset-bottom)}@media(orientation:portrait)and (max-width:600px){#game-screen:before{content:"📱 请横屏游玩以获得最佳体验";position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:99999;display:flex;align-items:center;justify-content:center;font-size:1.2rem;text-align:center;padding:20px;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@media(max-width:380px){.card{width:40px!important;height:56px!important}.card-corner .rank{font-size:.8rem}.card-corner .suit{font-size:.65rem}.card-center{font-size:1.4rem}.joker-text{font-size:.9rem}#player-right .hand-front .card{margin-left:-28px!important}#player-right .hand-front .card:first-child{margin-left:0!important}#call-controls button,#play-controls button{min-width:60px;min-height:44px;padding:6px 8px;font-size:.82rem}.game-title{font-size:1.6rem!important}.game-subtitle{font-size:.85rem!important}.menu-container{grid-template-columns:1fr!important;padding:16px 12px!important}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-header h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(200px,40vw)}.empty-state{text-align:center;padding:24px 16px;color:#ffffff80;font-size:.9rem}.empty-state-icon{font-size:2rem;margin-bottom:8px;opacity:.4}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-small:focus-visible,.btn-panel-toggle:focus-visible,.btn-replay-watch:focus-visible,.tut-action-btn:focus-visible{outline:2px solid rgba(240,192,64,.6);outline-offset:3px}.btn-primary:disabled,.btn-secondary:disabled,.btn-small:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.6)}@media(max-width:900px){#call-controls button,#play-controls button{min-height:44px;min-width:76px}.btn-panel-toggle{min-height:44px;min-width:44px}#btn-back-menu{min-height:44px}.header-controls .btn-small{width:44px;height:44px}.tracker-cell{min-height:44px;display:flex;align-items:center;justify-content:center}.settings-panel select,.settings-panel input[type=text]{min-height:36px}}.screen{height:100dvh}@media(max-width:640px){#settings-overlay:not(.hidden){align-items:flex-start;padding-top:env(safe-area-inset-top)}.settings-modal{max-height:calc(92vh - env(safe-area-inset-bottom))}}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(min-width:769px)and (max-width:1024px){.card{width:60px;height:84px}#ddz-table{grid-template-columns:120px 1fr 120px!important}.player-avatar{width:44px;height:44px}}@media(orientation:portrait)and (max-width:600px){#menu-screen:before,#settings-overlay:before,#replay-screen:before{display:none!important}}.history-actions{display:flex;gap:6px;margin-top:8px}.history-actions .btn-small{flex:1}.commentary-bubble{font-size:1.4rem;font-weight:700;padding:10px 24px;border-radius:12px;background:linear-gradient(135deg,#000000bf,#1e1e1ed9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f0c040;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 20px rgba(240,192,64,.3);border:1px solid rgba(240,192,64,.25);box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff14;opacity:0;transition:transform .35s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease-out;will-change:transform,opacity;letter-spacing:.5px}.commentary-bomb{color:#f64;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 24px rgba(255,100,50,.5);border-color:#ff643259;background:linear-gradient(135deg,#280a05d9,#3c0f08e6);animation:commentaryShake .4s ease-in-out}.commentary-rocket{color:gold;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 28px rgba(255,215,0,.6);border-color:#ffd70066;background:linear-gradient(135deg,#281e00d9,#3c2d00e6);animation:commentaryGlow .6s ease-in-out}.commentary-spring{color:#ffb7c5;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 24px rgba(255,180,200,.4);border-color:#ffb4c859;background:linear-gradient(135deg,#280f19d9,#3c1423e6)}.commentary-antiSpring{color:#8cf;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 24px rgba(130,200,255,.4);border-color:#82c8ff59;background:linear-gradient(135deg,#051428d9,#081e3ce6)}.commentary-combo{color:#f84;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 28px rgba(255,130,50,.6);border-color:#ff823266;background:linear-gradient(135deg,#280f05d9,#3c1408e6);animation:commentaryPulse .5s ease-in-out 2}.commentary-straight{color:#6cf;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 20px rgba(100,200,255,.3);border-color:#64c8ff4d}.commentary-plane{color:#c9f;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 20px rgba(200,150,255,.3);border-color:#c896ff4d}.commentary-tense{color:#fa4;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 24px rgba(255,170,50,.4);border-color:#ffaa3259;animation:commentaryPulse .8s ease-in-out infinite}.commentary-callLandlord{color:#f0c040;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 20px rgba(240,192,64,.4)}.commentary-win{color:gold;text-shadow:0 2px 8px rgba(0,0,0,.6),0 0 28px rgba(255,215,0,.6);border-color:#ffd70066;background:linear-gradient(135deg,#281e00d9,#3c2d00e6);animation:commentaryGlow .8s ease-in-out}.commentary-lose{color:#aaa;text-shadow:0 2px 8px rgba(0,0,0,.6);border-color:#96969640;background:linear-gradient(135deg,#141414d9,#232323e6)}.commentary-pass{color:#abc;text-shadow:0 2px 6px rgba(0,0,0,.5);font-size:1.1rem;padding:8px 18px}.commentary-single{color:#ada;text-shadow:0 2px 6px rgba(0,0,0,.5);font-size:1.1rem;padding:8px 18px}.commentary-pair{color:#f9c;text-shadow:0 2px 6px rgba(0,0,0,.5);font-size:1.1rem;padding:8px 18px}.commentary-play{color:#e0d0a0;text-shadow:0 2px 6px rgba(0,0,0,.5);font-size:1.1rem;padding:8px 18px}body[data-commentary=false] .commentary-bubble{display:none!important}@keyframes commentaryShake{0%,to{transform:translate(-50%,-50%) scale(1)}20%{transform:translate(-52%,-50%) scale(1.05)}40%{transform:translate(-48%,-50%) scale(1.05)}60%{transform:translate(-51%,-50%) scale(1.02)}80%{transform:translate(-49%,-50%) scale(1.02)}}@keyframes commentaryGlow{0%,to{box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff14,0 0 #f0c04000}50%{box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff14,0 0 30px #f0c0404d}}@keyframes commentaryPulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.08)}}@media(max-width:560px){.commentary-bubble{font-size:1rem;padding:6px 14px}}#changelog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}.changelog-modal{background:linear-gradient(135deg,#142314f2,#0a190afa);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 24px 80px #00000080,inset 0 1px #ffffff0f;width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;color:#e8e8e8}.changelog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.changelog-header h2{margin:0;font-size:1.15rem;font-weight:700;color:#f0c040;text-shadow:0 2px 8px rgba(0,0,0,.4)}.changelog-body{flex:1;overflow-y:auto;padding:20px}.changelog-current{margin-bottom:20px}.changelog-current h3{margin:8px 0 12px;font-size:1.05rem;color:gold}.changelog-current ul,.changelog-version ul{margin:0;padding-left:18px;line-height:1.7;font-size:.9rem;color:#c8d4c8}.changelog-current li,.changelog-version li{margin-bottom:4px}.changelog-version-badge{display:inline-block;background:linear-gradient(135deg,#d4a01740,#b4820a33);border:1px solid rgba(212,160,23,.35);color:#f0c040;font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:20px;letter-spacing:.5px}.changelog-history{border-top:1px solid rgba(255,255,255,.06);padding-top:12px}.changelog-history summary{cursor:pointer;font-size:.9rem;font-weight:600;color:#a8b8a8;padding:8px 0;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}.changelog-history summary::-webkit-details-marker{display:none}.changelog-history-content{padding-top:8px}.changelog-version{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.04)}.changelog-version:last-child{border-bottom:none;margin-bottom:0}.changelog-version h4{margin:6px 0 8px;font-size:.95rem;color:#d4c8a8}.changelog-footer{padding:14px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:center}.changelog-footer .btn-primary{background:linear-gradient(135deg,#d4a017,#b8860b);border:none;color:#1a1a1a;font-weight:700;padding:10px 28px;border-radius:10px;cursor:pointer;font-size:.95rem;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 4px 16px #d4a0174d}.changelog-footer .btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #d4a01766}.menu-footer-left{display:flex;gap:10px;align-items:center}.btn-changelog-float{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;background:linear-gradient(135deg,#ffffff14,#ffffff0a);border:1px solid rgba(255,255,255,.1);color:#c8d4c8;font-size:.85rem;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-changelog-float:hover{background:linear-gradient(135deg,#ffffff24,#ffffff14);border-color:#fff3;transform:translateY(-1px);box-shadow:0 4px 12px #0003}@media(max-width:560px){.changelog-modal{max-height:90vh;border-radius:12px}.changelog-body{padding:14px}.changelog-current ul,.changelog-version ul{font-size:.85rem}.btn-changelog-float span:last-child{display:none}}#play-style-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2001;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}.play-style-modal{background:linear-gradient(135deg,#142314f2,#0a190afa);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 24px 80px #00000080,inset 0 1px #ffffff0f;width:100%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;color:#e8e8e8}.play-style-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.play-style-header h2{margin:0;font-size:1.15rem;font-weight:700;color:#f0c040;text-shadow:0 2px 8px rgba(0,0,0,.4)}.play-style-body{flex:1;overflow-y:auto;padding:20px}.play-style-empty{text-align:center;padding:40px 20px}.play-style-empty-icon{font-size:3rem;margin-bottom:16px;opacity:.7}.play-style-empty p{color:#c8d4c8;font-size:1rem;margin:0 0 8px}.play-style-empty-hint{color:#c8d4c880;font-size:.85rem}.play-style-content{display:flex;flex-direction:column;gap:20px}.play-style-hero{display:flex;flex-direction:column;align-items:center;gap:16px}.play-style-combo-badge{text-align:center;padding:12px 24px;background:linear-gradient(135deg,#d4a01726,#b4820a1a);border:1px solid rgba(212,160,23,.25);border-radius:12px;max-width:100%}.play-style-combo-label{font-size:1.3rem;font-weight:800;color:gold;text-shadow:0 2px 8px rgba(0,0,0,.4),0 0 20px rgba(255,215,0,.3);margin-bottom:4px}.play-style-combo-desc{font-size:.85rem;color:#ffd700b3}.play-style-radar-wrap{display:flex;justify-content:center;width:100%}.radar-chart-svg{max-width:260px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.play-style-bars{display:flex;flex-direction:column;gap:12px}.play-style-bar-row{display:grid;grid-template-columns:1fr 120px 36px;align-items:center;gap:10px}.play-style-bar-label{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#c8d4c8;white-space:nowrap;overflow:hidden}.play-style-bar-icon{font-size:.9rem;flex-shrink:0}.play-style-bar-name{font-weight:600;flex-shrink:0}.play-style-bar-tier{font-size:.75rem;opacity:.8;margin-left:4px;flex-shrink:0}.play-style-bar-track{height:8px;background:#ffffff14;border-radius:4px;overflow:hidden}.play-style-bar-fill{height:100%;border-radius:4px;transition:width .8s cubic-bezier(.175,.885,.32,1.275)}.play-style-bar-value{font-size:.85rem;font-weight:700;text-align:right;flex-shrink:0}.play-style-report{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:14px 16px}.play-style-report h4,.play-style-advice h4{margin:0 0 12px;font-size:.9rem;color:#f0c040;font-weight:700}.play-style-report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.report-cell{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px;background:#ffffff08;border-radius:8px}.report-value{font-size:1.1rem;font-weight:700;color:gold}.report-label{font-size:.7rem;color:#c8d4c899;margin-top:2px}.play-style-advice{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:14px 16px}.play-style-advice ul{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}.play-style-advice li{font-size:.85rem;color:#c8d4c8;line-height:1.5;padding-left:4px}@media(max-width:560px){.play-style-modal{max-height:92vh;border-radius:12px}.play-style-body{padding:14px}.play-style-bar-row{grid-template-columns:1fr 80px 32px;gap:6px}.play-style-bar-tier{display:none}.play-style-report-grid{grid-template-columns:repeat(3,1fr);gap:6px}.report-cell{padding:6px 4px}.report-value{font-size:.95rem}.radar-chart-svg{max-width:220px}}#challenge-result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:250;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease}#challenge-result-overlay:not(.hidden){opacity:1}.challenge-result-modal{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:20px;width:90%;max-width:420px;max-height:85vh;overflow-y:auto;box-shadow:0 24px 64px #00000080;transform:scale(.92);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}#challenge-result-overlay:not(.hidden) .challenge-result-modal{transform:scale(1)}.challenge-result-header{padding:20px 24px 12px;text-align:center;border-bottom:1px solid rgba(255,255,255,.12)}.challenge-result-header h2{font-size:1.35rem;font-weight:700;color:gold;margin:0}.challenge-result-body{padding:20px 24px;text-align:center}.challenge-stars{font-size:2.5rem;margin:8px 0 16px;letter-spacing:4px}.challenge-stars .star-empty{opacity:.25;filter:grayscale(1)}.challenge-result-date{font-size:.9rem;color:#fff9;margin-bottom:12px}.challenge-result-score{font-size:2rem;font-weight:800;color:gold;margin:8px 0}.challenge-result-score.negative{color:#ff6b6b}.challenge-result-label{font-size:.85rem;color:#fff9;margin-bottom:16px}.challenge-result-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.challenge-detail-cell{background:#ffffff0d;border-radius:10px;padding:10px 6px}.challenge-detail-cell .detail-value{font-size:1.1rem;font-weight:700;color:#fff}.challenge-detail-cell .detail-label{font-size:.7rem;color:#fff9;margin-top:2px}.challenge-result-footer{padding:12px 24px 20px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.challenge-result-footer button{flex:1;min-width:100px}#challenge-history-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:250;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.challenge-history-modal{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:20px;width:90%;max-width:480px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000080}.challenge-history-header{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.12)}.challenge-history-header h2{font-size:1.2rem;font-weight:700;color:gold;margin:0}.challenge-history-body{padding:12px 16px;overflow-y:auto;flex:1}.challenge-history-empty{text-align:center;color:#fff9;padding:40px 20px;font-size:.95rem}.challenge-history-list{display:flex;flex-direction:column;gap:8px}.challenge-history-item{display:grid;grid-template-columns:70px 1fr 60px;align-items:center;gap:10px;padding:10px 12px;background:#ffffff0a;border-radius:12px;transition:background .2s}.challenge-history-item:hover{background:#ffffff14}.challenge-history-item .hist-date{font-size:.75rem;color:#fff9;font-weight:500}.challenge-history-item .hist-stars{font-size:1rem;letter-spacing:1px}.challenge-history-item .hist-score{font-size:.9rem;font-weight:700;color:#fff;text-align:right}.challenge-history-item .hist-score.negative{color:#ff6b6b}.daily-badge{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;padding:2px 8px;border-radius:10px;background:#4caf5029;color:#d7f5d8;font-weight:600}.daily-badge.daily-badge-completed{background:#ffc10733;color:#ffe082}.daily-badge.daily-badge-three-star{background:#ffd70033;color:#ffec8b}#daily-challenge-desc{display:flex;align-items:center;gap:6px}@media(max-width:560px){.challenge-result-modal,.challenge-history-modal{width:94%;border-radius:16px}.challenge-result-body{padding:16px}.challenge-result-footer{padding:10px 16px 16px}.challenge-result-footer button{min-width:80px;font-size:.85rem}.challenge-result-detail{grid-template-columns:repeat(3,1fr);gap:6px}.challenge-detail-cell{padding:8px 4px}}#endgame-screen,#challenge-screen{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:clamp(20px,4vh,40px) clamp(16px,4vw,40px);overflow-y:auto}.endgame-container{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px;max-width:720px;width:100%}.endgame-progress-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0003;border-radius:14px;border:1px solid rgba(255,255,255,.06)}.endgame-progress-track{flex:1;height:10px;background:#ffffff14;border-radius:5px;overflow:hidden}.endgame-progress-fill{height:100%;background:linear-gradient(90deg,#f0c040,gold);border-radius:5px;transition:width .5s ease;width:0%}.endgame-progress-text{font-size:.85rem;font-weight:700;color:#f0c040;min-width:36px;text-align:right}.endgame-levels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.endgame-level-card{position:relative;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px 16px;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column;gap:6px;overflow:hidden}.endgame-level-card:hover{background:#ffffff1f;border-color:#f0c0404d;transform:translateY(-4px) scale(1.02);box-shadow:0 12px 32px #00000040}.endgame-level-card.locked{opacity:.4;cursor:not-allowed;filter:grayscale(.8)}.endgame-level-card.locked:hover{transform:none;background:#ffffff0f;border-color:#ffffff14}.endgame-level-card.completed{background:#f0c04014;border-color:#f0c04033}.endgame-level-id{position:absolute;top:10px;right:12px;font-size:1.4rem;font-weight:900;opacity:.15;line-height:1}.endgame-level-name{font-size:1.05rem;font-weight:700;color:#fff}.endgame-level-desc{font-size:.78rem;opacity:.55;line-height:1.4}.endgame-level-stars{font-size:1rem;margin-top:4px}.endgame-level-steps{font-size:.72rem;color:#f0c040;font-weight:600;margin-top:2px}.endgame-level-lock{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;opacity:.6}.endgame-actions{display:flex;justify-content:center;padding-top:8px}.endgame-info-bar{position:absolute;bottom:100%;display:flex;align-items:center;gap:8px;padding:6px 10px;max-width:calc(100% - 24px);pointer-events:auto;background:#f0c0401f;border:1px solid rgba(240,192,64,.2);border-radius:12px}.endgame-info-copy{flex:1;min-width:0}.endgame-info-bar .center-countdown{flex:0 0 44px;width:44px;height:44px;font-size:1.1rem}#game-table:has(.endgame-info-bar) #turn-indicator{visibility:hidden}@media(max-width:900px)and (max-height:500px)and (orientation:landscape){#game-table:has(.endgame-info-bar) #controls-area{bottom:156px}}.endgame-info-title{font-size:.9rem;font-weight:700;color:#f0c040}.endgame-info-obj{font-size:.8rem;opacity:.8;flex:1}.endgame-info-hint-btn{min-height:44px;flex-shrink:0;padding:4px 10px;border-radius:8px;border:1px solid rgba(240,192,64,.3);background:#f0c04026;color:#f0c040;font-size:.78rem;cursor:pointer;transition:all .2s}.endgame-info-hint-btn:hover{background:#f0c0404d}.endgame-result-level{font-size:1rem;font-weight:600;margin:6px 0}.endgame-result-steps{font-size:.9rem;opacity:.8;margin:4px 0}.endgame-result-progress{font-size:.85rem;opacity:.6;margin:8px 0 14px}@media(max-width:560px){.endgame-levels-grid{grid-template-columns:1fr}.endgame-info-bar{flex-direction:column;align-items:flex-start;gap:6px}}.coach-score{display:flex;flex-direction:column;align-items:center;margin:12px 0 20px;padding:12px;border-radius:12px;background:#ffffff0d}.coach-score-value{font-size:2.4rem;font-weight:800;line-height:1}.coach-score-label{font-size:.85rem;opacity:.7;margin-top:4px}.coach-score.score-good .coach-score-value{color:#4ade80}.coach-score.score-mid .coach-score-value{color:#facc15}.coach-score.score-bad .coach-score-value{color:#f87171}.coach-suggestions{max-height:320px;overflow-y:auto;margin-bottom:16px;padding-right:4px}.coach-suggestion{background:#ffffff0a;border-radius:10px;padding:12px;margin-bottom:10px;border-left:4px solid transparent;text-align:left}.coach-suggestion.severity-high{border-left-color:#f87171;background:#f871710f}.coach-suggestion.severity-medium{border-left-color:#facc15;background:#facc150f}.coach-suggestion.severity-low{border-left-color:#4ade80;background:#4ade800f}.coach-suggestion-header{display:flex;align-items:flex-start;gap:8px;font-size:.95rem;line-height:1.4}.coach-suggestion-icon{flex-shrink:0;font-size:1.1rem;margin-top:1px}.coach-suggestion-title{flex:1}.coach-suggestion-detail{font-size:.8rem;opacity:.65;margin-top:6px;margin-left:28px}.coach-jump-btn{display:inline-block;margin-top:8px;margin-left:28px;padding:4px 10px;font-size:.8rem;background:#6496ff26;border:1px solid rgba(100,150,255,.3);border-radius:6px;color:#93c5fd;cursor:pointer}.coach-jump-btn:hover{background:#6496ff40}#btn-coach-review{background:linear-gradient(135deg,#6450c8cc,#503cb4e6);border:1px solid rgba(150,130,255,.4)}#btn-coach-review:hover{background:linear-gradient(135deg,#7864dce6,#6450c8)}.challenge-container{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px;max-width:840px;width:100%}.challenge-progress-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0003;border-radius:14px;border:1px solid rgba(255,255,255,.06)}.challenge-progress-track{flex:1;height:10px;background:#ffffff14;border-radius:5px;overflow:hidden}.challenge-progress-fill{height:100%;background:linear-gradient(90deg,#e040f0,#ff6b9d);border-radius:5px;transition:width .5s ease;width:0%}.challenge-progress-text{font-size:.85rem;font-weight:700;color:#e040f0;min-width:42px;text-align:right}.challenge-levels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.challenge-level-card{position:relative;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px 16px;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column;gap:6px;overflow:hidden}.challenge-level-card:hover{background:#ffffff1f;border-color:#e040f04d;transform:translateY(-4px) scale(1.02);box-shadow:0 12px 32px #00000040}.challenge-level-card.locked{opacity:.4;cursor:not-allowed;filter:grayscale(.8)}.challenge-level-card.locked:hover{transform:none;background:#ffffff0f;border-color:#ffffff14}.challenge-level-card.completed{background:#e040f014;border-color:#e040f033}.challenge-level-card.diff-easy{border-left:3px solid #4ade80}.challenge-level-card.diff-normal{border-left:3px solid #facc15}.challenge-level-card.diff-hard{border-left:3px solid #f87171}.challenge-level-icon{font-size:1.6rem;line-height:1}.challenge-level-id{position:absolute;top:10px;right:12px;font-size:1.2rem;font-weight:900;opacity:.15;line-height:1}.challenge-level-name{font-size:1.05rem;font-weight:700;color:#fff}.challenge-level-desc{font-size:.78rem;opacity:.55;line-height:1.4}.challenge-level-diff{font-size:.72rem;font-weight:600;margin-top:2px;display:inline-block;padding:2px 8px;border-radius:6px;background:#ffffff14;width:fit-content}.challenge-level-stars{font-size:1rem;margin-top:4px}.challenge-level-lock{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;opacity:.6}.challenge-actions{display:flex;justify-content:center;padding-top:8px}.challenge-info-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#e040f01f;border:1px solid rgba(224,64,240,.2);border-radius:12px;margin-bottom:10px;flex-wrap:wrap}.challenge-info-title{font-size:.9rem;font-weight:700;color:#e040f0}.challenge-info-desc{font-size:.8rem;opacity:.8;flex:1}.challenge-result-name{font-size:1rem;font-weight:600;margin:6px 0}.challenge-result-progress{font-size:.85rem;opacity:.6;margin:8px 0 14px}@media(max-width:560px){.challenge-levels-grid{grid-template-columns:1fr}.challenge-info-bar{flex-direction:column;align-items:flex-start;gap:6px}}#workshop-screen{overflow-y:auto;position:relative}.workshop-container{padding:32px 20px;max-width:900px;margin:0 auto;width:100%}.workshop-container h2{text-align:center;margin-bottom:6px;font-size:clamp(1.4rem,3vw,1.8rem);font-weight:800;background:linear-gradient(180deg,#fff,#f0d080);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.workshop-subtitle{text-align:center;opacity:.5;margin-bottom:24px;font-size:.9rem;font-weight:400}.workshop-import-bar{display:flex;gap:10px;margin-bottom:20px;max-width:600px;margin-left:auto;margin-right:auto}.workshop-import-bar input{flex:1;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#00000040;color:#fff;font-size:.95rem;outline:none}.workshop-import-bar input::placeholder{color:#ffffff59}.workshop-import-bar input:focus{border-color:#f0d08080}.workshop-import-bar .btn-primary{padding:10px 18px;border-radius:12px;font-size:.9rem;white-space:nowrap}.workshop-stats{text-align:center;font-size:.85rem;opacity:.55;margin-bottom:18px}.workshop-empty{text-align:center;padding:80px 20px;opacity:.4;font-size:1rem;display:flex;flex-direction:column;align-items:center;gap:12px}.workshop-empty:before{content:"🎞️";font-size:3rem;opacity:.5;display:block}.workshop-records-grid{display:flex;flex-direction:column;gap:12px}.workshop-record-card{background:#00000038;border-radius:16px;padding:16px 18px;border:1px solid rgba(255,255,255,.06);transition:background .2s,transform .15s}.workshop-record-card:hover{background:#0000004d;transform:translateY(-1px)}.workshop-record-name{font-weight:700;font-size:1.05rem;margin-bottom:4px;color:#fff}.workshop-record-note{font-size:.88rem;opacity:.6;margin-bottom:6px;line-height:1.4}.workshop-record-date{font-size:.8rem;opacity:.4;margin-bottom:10px}.workshop-record-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-workshop-play,.btn-workshop-share{padding:7px 14px;border-radius:10px;border:none;font-size:.85rem;cursor:pointer;transition:filter .15s,transform .1s;font-family:inherit}.btn-workshop-play{background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff}.btn-workshop-share{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.btn-workshop-play:hover,.btn-workshop-share:hover{filter:brightness(1.15);transform:translateY(-1px)}.btn-workshop-play:active,.btn-workshop-share:active{transform:translateY(0)}.btn-workshop-delete{margin-left:auto;padding:7px 12px;border-radius:10px;border:none;font-size:.85rem;cursor:pointer;background:#f4433633;color:#f44336;transition:background .15s,transform .1s;font-family:inherit}.btn-workshop-delete:hover{background:#f4433659;transform:translateY(-1px)}.btn-workshop-delete:active{transform:translateY(0)}.btn-workshop-share:disabled{opacity:.35;cursor:not-allowed;filter:grayscale(.6)}@media(max-width:560px){.workshop-import-bar{flex-direction:column}.workshop-import-bar .btn-primary{width:100%}.workshop-record-actions{gap:6px}.btn-workshop-play,.btn-workshop-share,.btn-workshop-delete{padding:6px 10px;font-size:.8rem}}
