:root{--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--card-width: 88px;--card-height: 124px;--card-radius: 7px;--hud-bg: rgba(15, 23, 42, .82);--hud-border: rgba(255, 255, 255, .12);--hud-text: #f8fafc;--hud-text-muted: #94a3b8;--btn-primary-bg: linear-gradient(180deg, #3b82f6 0%, #1d4ed8 100%);--btn-primary-hover: linear-gradient(180deg, #60a5fa 0%, #2563eb 100%);--btn-secondary-bg: rgba(255, 255, 255, .08);--btn-secondary-hover: rgba(255, 255, 255, .16);--card-shadow: 0 2px 4px rgba(0, 0, 0, .18), 0 6px 14px rgba(0, 0, 0, .16);--card-hover-shadow: 0 4px 8px rgba(0, 0, 0, .22), 0 10px 20px rgba(0, 0, 0, .2);--card-drag-shadow: 0 20px 36px rgba(0, 0, 0, .45), 0 8px 16px rgba(0, 0, 0, .35)}body.theme-classic-green{--table-bg: radial-gradient(ellipse at 50% 25%, #15803d 0%, #166534 50%, #14532d 85%, #052e16 100%);--slot-border: rgba(255, 255, 255, .2);--slot-bg: rgba(0, 0, 0, .22)}body.theme-midnight-navy{--table-bg: radial-gradient(ellipse at 50% 25%, #1e293b 0%, #0f172a 55%, #020617 100%);--slot-border: rgba(56, 189, 248, .24);--slot-bg: rgba(0, 0, 0, .32)}body.theme-crimson-velvet{--table-bg: radial-gradient(ellipse at 50% 25%, #9f1239 0%, #881337 50%, #4c0519 85%, #1a0209 100%);--slot-border: rgba(251, 113, 133, .24);--slot-bg: rgba(0, 0, 0, .28)}body.theme-carbon-dark{--table-bg: radial-gradient(ellipse at 50% 25%, #27272a 0%, #18181b 55%, #09090b 100%);--slot-border: rgba(255, 255, 255, .16);--slot-bg: rgba(255, 255, 255, .05)}body.theme-royal-amethyst{--table-bg: radial-gradient(ellipse at 50% 25%, #581c87 0%, #3b0764 50%, #2e1065 85%, #0f051d 100%);--slot-border: rgba(192, 132, 252, .25);--slot-bg: rgba(0, 0, 0, .28)}body.theme-ocean-teal{--table-bg: radial-gradient(ellipse at 50% 25%, #0f766e 0%, #115e59 50%, #134e4a 85%, #042f2e 100%);--slot-border: rgba(45, 212, 191, .25);--slot-bg: rgba(0, 0, 0, .25)}body.theme-warm-amber{--table-bg: radial-gradient(ellipse at 50% 25%, #78350f 0%, #451a03 50%, #291204 85%, #0c0501 100%);--slot-border: rgba(251, 191, 36, .22);--slot-bg: rgba(0, 0, 0, .3)}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none}html,body{width:100%;height:100%;overflow:hidden;font-family:var(--font-family);background:#0f172a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;height:100%;display:flex;flex-direction:column;background:var(--table-bg);color:var(--hud-text);touch-action:manipulation}.game-header{height:58px;background:var(--hud-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--hud-border);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;z-index:100;flex-shrink:0;box-shadow:0 2px 10px #00000040}.header-left{display:flex;align-items:center;gap:.75rem}.logo{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.15rem;letter-spacing:-.02em;text-shadow:0 1px 2px rgba(0,0,0,.3)}.logo-icon{font-size:1.35rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.difficulty-badge{font-size:.75rem;font-weight:600;background:#38bdf81f;border:1px solid rgba(56,189,248,.3);padding:.22rem .65rem;border-radius:9999px;color:#38bdf8;cursor:pointer;transition:all .15s ease}.difficulty-badge:hover{background:#38bdf838;border-color:#38bdf8;transform:translateY(-1px)}.game-seed-badge{font-size:.75rem;font-weight:600;background:#ffffff14;border:1px solid rgba(255,255,255,.15);padding:.22rem .65rem;border-radius:9999px;color:var(--hud-text-muted);cursor:pointer;transition:all .15s ease}.game-seed-badge:hover{background:#ffffff2e;color:#fff;border-color:#38bdf866;transform:translateY(-1px)}.header-stats{display:flex;align-items:center;gap:.85rem}.stat-box{display:flex;flex-direction:column;align-items:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.25rem .75rem;min-width:65px}.stat-label{font-size:.62rem;font-weight:700;letter-spacing:.08em;color:var(--hud-text-muted)}.stat-value{font-size:1.12rem;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.header-actions{display:flex;align-items:center;gap:.5rem}.btn{border:none;outline:none;font-family:inherit;font-size:.875rem;font-weight:600;padding:.45rem .9rem;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;transition:background .15s ease,transform .1s ease,opacity .15s ease,box-shadow .15s ease}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(.96)}.btn-primary{background:var(--btn-primary-bg);color:#fff;box-shadow:inset 0 1px #ffffff40,0 2px 6px #00000040}.btn-primary:not(:disabled):hover{background:var(--btn-primary-hover);box-shadow:inset 0 1px #ffffff59,0 4px 12px #2563eb66;transform:translateY(-1px)}.btn-secondary{background:var(--btn-secondary-bg);color:#fff;border:1px solid rgba(255,255,255,.12)}.btn-secondary:not(:disabled):hover{background:var(--btn-secondary-hover);border-color:#ffffff3d;transform:translateY(-1px)}.btn-icon{background:var(--btn-secondary-bg);color:var(--hud-text);padding:.48rem;border-radius:7px;border:1px solid rgba(255,255,255,.1)}.btn-icon:not(:disabled):hover{background:var(--btn-secondary-hover);border-color:#fff3;color:#fff;transform:translateY(-1px)}.btn-large{padding:.75rem 1.6rem;font-size:1rem;border-radius:8px}.game-area{flex:1;display:flex;flex-direction:column;padding:.85rem 1.25rem;position:relative;overflow:hidden;max-width:1320px;margin:0 auto;width:100%}.board-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;position:relative;width:100%}.stock-container{position:relative;width:var(--card-width);aspect-ratio:5 / 7}.stock-deck{width:100%;height:100%;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;border-radius:var(--card-radius);box-shadow:2px 2px #00000059,4px 4px #00000038,var(--card-shadow)}.stock-deck:hover:not(.empty){transform:translateY(-3px);box-shadow:2px 4px #00000059,4px 6px #00000038,var(--card-hover-shadow)}.stock-deck.empty{border:2px dashed var(--slot-border);border-radius:var(--card-radius);background:var(--slot-bg);box-shadow:none;display:flex;align-items:center;justify-content:center;cursor:default;height:100%}.empty-stock-slot{font-size:1.5rem;color:var(--hud-text-muted);opacity:.4}.stock-count-badge{position:absolute;bottom:-6px;right:-6px;width:24px;height:24px;background:#dc2626;color:#fff;border-radius:9999px;font-size:.75rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:0 2px 5px #0006;pointer-events:none;z-index:5}.message-banner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:.5rem 1.4rem;border-radius:9999px;font-size:.9rem;font-weight:600;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:50;white-space:nowrap}.message-banner.active{opacity:1}.message-banner.info{background:#0f172ae6;backdrop-filter:blur(8px);color:#38bdf8;border:1px solid rgba(56,189,248,.4);box-shadow:0 6px 16px #00000059}.message-banner.warning{background:#dc2626eb;backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.3);box-shadow:0 6px 16px #dc262666}.foundations-container{display:flex;gap:.4rem}.foundation-slot{width:calc(var(--card-width) * .85);aspect-ratio:5 / 7;border:2px dashed var(--slot-border);border-radius:var(--card-radius);background:var(--slot-bg);display:flex;align-items:center;justify-content:center;position:relative;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:inset 0 2px 4px #00000040}.foundation-placeholder{font-size:1.25rem;font-weight:800;color:#fff3;font-family:inherit}.foundation-slot.completed{border:2px solid #f59e0b;box-shadow:0 0 16px #f59e0b73,inset 0 0 8px #f59e0b33}.foundation-slot.just-completed{animation:foundation-burst .7s cubic-bezier(.175,.885,.32,1.275)}@keyframes foundation-burst{0%{transform:scale(.85);box-shadow:0 0 #f59e0b00}50%{transform:scale(1.18);box-shadow:0 0 32px #f59e0bf2}to{transform:scale(1);box-shadow:0 0 16px #f59e0b73}}.foundation-slot .card{width:100%;height:100%}.tableau{flex:1;display:grid;grid-template-columns:repeat(10,1fr);gap:.5rem;position:relative;touch-action:none;width:100%}.column{position:relative;height:100%;border-radius:var(--card-radius)}.column.empty-col:before{content:"";position:absolute;top:0;left:0;width:100%;aspect-ratio:5 / 7;border:2px dashed var(--slot-border);border-radius:var(--card-radius);background:var(--slot-bg);pointer-events:none;box-shadow:inset 0 2px 4px #0003;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.column.empty-col.column-warning:before{border:2px solid #ef4444!important;background:#ef444429!important;box-shadow:0 0 16px #ef444499!important}.column.empty-col.drop-target-valid:before{border:2.5px solid #22c55e!important;background:#22c55e2e!important;box-shadow:0 0 20px #22c55e80!important}.column.empty-col.hint-target:before{border:2.5px solid #38bdf8!important;box-shadow:0 0 20px #38bdf8cc!important}.column.drop-target-valid:not(.empty-col):after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border-radius:var(--card-radius);box-shadow:inset 0 0 0 2px #22c55e,0 0 16px #22c55e66}.column.drop-target-invalid:not(.empty-col):after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border-radius:var(--card-radius);box-shadow:inset 0 0 0 2px #ef4444,0 0 16px #ef444466}.column-cards{position:relative;width:100%;height:100%}.card-wrapper{position:absolute;left:0;width:100%;aspect-ratio:5 / 7;touch-action:none;border-radius:var(--card-radius);perspective:1200px;-webkit-perspective:1200px;transition:transform .15s ease}.card-flyer{position:fixed;z-index:1500;pointer-events:none;border-radius:var(--card-radius);box-shadow:var(--card-drag-shadow);transform-origin:0 0;will-change:transform}.completed-run-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1800}.run-card-flyer{position:absolute;border-radius:var(--card-radius);transform-origin:0 0;will-change:transform,box-shadow,opacity;box-shadow:0 0 18px #f59e0bf2,0 4px 14px #00000073;pointer-events:none}.run-card-flyer.gathered{box-shadow:0 16px 32px #0000008c,0 0 24px #f59e0be6}.card-wrapper.dealt-anim{animation:card-deal-in .28s cubic-bezier(.2,.9,.3,1) backwards}@keyframes card-deal-in{0%{opacity:0;transform:translateY(-24px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.card-wrapper.movable{cursor:grab}.card-wrapper.movable:hover{transform:translateY(-2px)}.card-wrapper.movable:hover .card-face.card-front{box-shadow:var(--card-hover-shadow)}.card-wrapper.movable:active{cursor:grabbing}.card-wrapper.is-being-dragged{opacity:.15}.card-wrapper.hint-highlight .card-inner{box-shadow:0 0 0 3px #f59e0b,0 0 20px #f59e0be6!important;animation:pulse-glow 1.2s infinite alternate ease-in-out}.column.hint-target{box-shadow:inset 0 0 0 2.5px #38bdf8,0 0 18px #38bdf8d9!important;animation:pulse-glow-target 1.2s infinite alternate ease-in-out}.stock-deck.hint-highlight{box-shadow:0 0 0 3px #38bdf8,0 0 20px #38bdf8e6!important}@keyframes pulse-glow{0%{box-shadow:0 0 0 2px #f59e0b,0 0 10px #f59e0b99}to{box-shadow:0 0 0 4px #f59e0b,0 0 24px #f59e0b}}@keyframes pulse-glow-target{0%{box-shadow:inset 0 0 0 2px #38bdf8,0 0 10px #38bdf880}to{box-shadow:inset 0 0 0 3.5px #38bdf8,0 0 24px #38bdf8}}.card-shake{animation:card-shake-anim .35s ease-in-out}@keyframes card-shake-anim{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.card{width:100%;height:100%;position:relative;user-select:none;-webkit-user-select:none}.card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .44s cubic-bezier(.25,1.15,.5,1),box-shadow .44s ease;border-radius:var(--card-radius)}.card.is-face-down .card-inner{transform:rotateY(0)}.card.is-face-up .card-inner{transform:rotateY(180deg)}.card.is-flipping .card-inner{box-shadow:0 14px 28px #0006,0 6px 12px #00000040;z-index:25}.card-face{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--card-radius);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:var(--card-shadow)}.card-face.card-back{background:#1e1b4b;border:1px solid rgba(255,255,255,.2);transform:rotateY(0);z-index:1}.card-face.card-front{background:linear-gradient(145deg,#fff,#fafafa 70%,#f1f5f9);color:var(--suit-color);border:1px solid rgba(0,0,0,.12);transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:space-between;padding:4px 6px;z-index:2;box-shadow:var(--card-shadow),inset 0 1px #ffffffe6}.card-face.card-front.classic-card-front,.card-face.card-front.eight-bit-card-front,.card-face.card-front.tarot-card-front{padding:0;display:block;background:#fff;overflow:hidden}.classic-card-svg,.eight-bit-card-svg,.tarot-card-svg{width:100%;height:100%;display:block;border-radius:var(--card-radius);pointer-events:none}.eight-bit-card-svg image{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.card-corner-badge{position:absolute;top:3px;right:4px;display:inline-flex;align-items:center;gap:3px;padding:1px 5px 2px 4px;background:#fffffff5;border-radius:4px;box-shadow:0 1px 3px #00000052,0 0 0 1px #0000001f;color:var(--suit-color);font-weight:800;font-size:.86rem;line-height:1;z-index:15;pointer-events:none!important;opacity:0;transform:translateY(-2px) scale(.94);transition:opacity .15s cubic-bezier(.2,.9,.3,1),transform .15s cubic-bezier(.2,.9,.3,1);user-select:none;-webkit-user-select:none}.card-corner-badge,.card-corner-badge *{pointer-events:none!important}.card-corner-badge .badge-rank{font-family:inherit;font-weight:800;letter-spacing:-.02em}.card-corner-badge .badge-suit-icon{display:inline-flex;align-items:center;justify-content:center}.card-wrapper.is-covered:hover .card-corner-badge,.column-cards>.card-wrapper:not(:last-child):hover .card-corner-badge{opacity:1;transform:translateY(0) scale(1)}.card-wrapper.is-top-card .card-corner-badge,.column-cards>.card-wrapper:last-child .card-corner-badge,.foundation-slot .card-corner-badge,.empty-stock-slot .card-corner-badge,.card-wrapper.is-being-dragged .card-corner-badge,.in-drag-overlay .card-corner-badge,.drag-overlay .card-corner-badge,.card-flyer .card-corner-badge,.run-card-flyer .card-corner-badge,body.is-dragging-card .card-corner-badge{display:none!important;opacity:0!important;visibility:hidden!important}.card-face.card-front:before{content:"";position:absolute;top:0;left:-120%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.5) 50%,transparent 100%);pointer-events:none;opacity:0}.card.is-flipping .card-face.card-front:before{animation:card-shine .48s ease-out}@keyframes card-shine{0%{left:-120%;opacity:.7}to{left:120%;opacity:0}}.card-back-pattern{display:block;width:100%;height:100%}.card-corner{display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:800;font-size:.95rem;width:18px;letter-spacing:-.02em}.card-corner.bottom-right{align-self:flex-end;transform:rotate(180deg)}.card-suit-icon{margin-top:1px;display:flex;align-items:center;justify-content:center}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none;width:65%;height:65%}.card-court{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.drag-overlay{position:fixed;top:0;left:0;width:var(--card-width);pointer-events:none;z-index:1000;display:none;will-change:transform}.drag-overlay .in-drag-overlay{position:absolute;width:100%;box-shadow:var(--card-drag-shadow)}.modal-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:none;align-items:center;justify-content:center}.modal-container.active{display:flex}.modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-dialog{position:relative;background:#1e293b;color:#f8fafc;width:90%;max-width:520px;max-height:85vh;border-radius:14px;border:1px solid rgba(255,255,255,.16);box-shadow:0 25px 50px -12px #0009,0 0 0 1px #ffffff0d;overflow-y:auto;z-index:10;padding:1.6rem;animation:modalScaleIn .24s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.modal-header h2{font-size:1.35rem;font-weight:700;letter-spacing:-.01em}.modal-close{background:none;border:none;color:var(--hud-text-muted);font-size:1.75rem;cursor:pointer;line-height:1;padding:0 .25rem;transition:color .15s ease}.modal-close:hover{color:#fff}.modal-desc{font-size:.92rem;color:var(--hud-text-muted);margin-bottom:1.1rem}.difficulty-options{display:flex;flex-direction:column;gap:.75rem}.diff-card{background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;padding:1rem 1.15rem;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease;color:#fff}.diff-card:hover{background:#ffffff1a;border-color:#38bdf8;transform:translateY(-1px)}.diff-card.selected{border-color:#3b82f6;background:#3b82f62e;box-shadow:0 0 16px #3b82f64d}.diff-title{font-size:1.1rem;font-weight:700;margin-bottom:.25rem}.diff-suits{font-size:1.05rem;color:#38bdf8;margin-bottom:.25rem}.diff-desc{font-size:.82rem;color:var(--hud-text-muted)}.modal-dialog.settings-modal-dialog{max-width:780px;width:95%;max-height:90vh;padding:0;border-radius:16px;background:#0f172a;border:1px solid rgba(255,255,255,.16);box-shadow:0 25px 60px -10px #000c,0 0 0 1px #ffffff14;display:flex;flex-direction:column;overflow:hidden}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.settings-header-left{display:flex;align-items:center;gap:.85rem}.settings-header-icon{font-size:1.45rem;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;background:#38bdf81f;border:1px solid rgba(56,189,248,.25);color:#38bdf8;flex-shrink:0}.settings-title-group h2{font-size:1.25rem;font-weight:700;letter-spacing:-.01em;color:#f8fafc;line-height:1.2}.settings-title-group p{font-size:.8rem;color:var(--hud-text-muted);margin-top:.15rem}.settings-tabs-nav{display:flex;gap:.4rem;padding:.65rem 1.25rem;background:#0f172af2;border-bottom:1px solid rgba(255,255,255,.08);overflow-x:auto;flex-shrink:0;scrollbar-width:thin}.settings-tab-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:var(--hud-text-muted);padding:.5rem .95rem;border-radius:8px;font-weight:600;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;transition:all .15s ease;white-space:nowrap}.settings-tab-btn:hover{background:#ffffff1a;color:#fff;border-color:#ffffff29}.settings-tab-btn.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#60a5fa;box-shadow:0 2px 10px #2563eb66}.settings-content-body{padding:1.35rem 1.5rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:1.4rem}.settings-tab-pane{display:none;flex-direction:column;gap:1.4rem;animation:settingsFadeIn .2s cubic-bezier(.16,1,.3,1)}.settings-tab-pane.active{display:flex}@keyframes settingsFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.settings-section-header{display:flex;flex-direction:column;gap:.2rem}.settings-section-title{font-size:1rem;font-weight:700;color:#f1f5f9;display:flex;align-items:center;gap:.45rem}.settings-section-subtitle{font-size:.8rem;color:var(--hud-text-muted)}.settings-preview-showcase{background:var(--table-bg);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:1rem 1.25rem;box-shadow:inset 0 2px 8px #0006,0 4px 14px #00000040;display:flex;flex-direction:column;align-items:center;gap:.85rem;position:relative;overflow:hidden;transition:background .3s ease}.preview-showcase-top{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.preview-showcase-label{font-size:.76rem;font-weight:700;letter-spacing:.05em;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.6);display:flex;align-items:center;gap:.35rem}.preview-rank-chips{display:flex;gap:.35rem;flex-wrap:wrap}.preview-rank-chip{background:#00000073;border:1px solid rgba(255,255,255,.2);color:#e2e8f0;font-size:.75rem;font-weight:700;padding:.2rem .55rem;border-radius:6px;cursor:pointer;transition:all .15s ease}.preview-rank-chip:hover{background:#fff3;color:#fff;border-color:#38bdf8}.preview-rank-chip.active{background:#38bdf8;color:#0f172a;border-color:#7dd3fc;box-shadow:0 2px 6px #38bdf866}.preview-stage-container{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:.5rem 0;perspective:900px}.preview-card-3d-wrapper{width:88px;height:124px;cursor:pointer;perspective:1000px;transition:transform .2s ease}.preview-card-3d-wrapper:hover{transform:translateY(-4px) scale(1.03)}.preview-card-3d{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.16,1,.3,1);border-radius:var(--card-radius);box-shadow:var(--card-hover-shadow)}.preview-card-3d.flipped{transform:rotateY(180deg)}.preview-card-3d .preview-face{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--card-radius);overflow:hidden}.preview-card-3d .preview-face-front{background:#fff;color:#0f172a;transform:rotateY(0)}.preview-card-3d .preview-face-back{background:#0f172a;transform:rotateY(180deg)}.preview-actions-bar{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.75rem;flex-wrap:wrap}.preview-flip-btn{background:#00000073;border:1px solid rgba(255,255,255,.25);color:#f8fafc;font-size:.78rem;font-weight:600;padding:.35rem .8rem;border-radius:9999px;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:all .15s ease}.preview-flip-btn:hover{background:#fff3;border-color:#38bdf8;color:#fff}.preview-theme-indicator{font-size:.75rem;font-weight:600;color:#ffffffd9;background:#0006;padding:.22rem .65rem;border-radius:9999px;border:1px solid rgba(255,255,255,.15)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.theme-card{background:#ffffff0a;border:2px solid rgba(255,255,255,.1);border-radius:10px;padding:.65rem;cursor:pointer;display:flex;flex-direction:column;gap:.45rem;transition:all .15s ease;position:relative;text-align:left;color:inherit}.theme-card:hover{background:#ffffff14;border-color:#38bdf880;transform:translateY(-2px)}.theme-card.selected{border-color:#38bdf8;background:#38bdf81a;box-shadow:0 0 14px #38bdf840}.theme-swatch-box{width:100%;height:52px;border-radius:6px;border:1px solid rgba(255,255,255,.15);box-shadow:inset 0 2px 6px #0006;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.theme-swatch-slot{width:26px;height:36px;border:1.5px dashed rgba(255,255,255,.3);border-radius:4px;background:#0003}.theme-card-info{display:flex;flex-direction:column}.theme-card-name{font-size:.84rem;font-weight:700;color:#f1f5f9}.theme-card-desc{font-size:.72rem;color:var(--hud-text-muted)}.theme-check-badge{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;background:#38bdf8;color:#0f172a;display:none;align-items:center;justify-content:center;font-size:.75rem;font-weight:900;box-shadow:0 1px 4px #0006}.theme-card.selected .theme-check-badge{display:flex}.card-back-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}.card-back-card{background:#ffffff0a;border:2px solid rgba(255,255,255,.1);border-radius:10px;padding:.65rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.45rem;transition:all .15s ease;position:relative;text-align:center;color:inherit}.card-back-card:hover{background:#ffffff14;border-color:#38bdf880;transform:translateY(-2px)}.card-back-card.selected{border-color:#38bdf8;background:#38bdf81a;box-shadow:0 0 14px #38bdf840}.card-back-swatch-box{width:58px;height:82px;border-radius:5px;overflow:hidden;box-shadow:0 2px 6px #00000059;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#0f172a}.card-back-info{display:flex;flex-direction:column;align-items:center}.card-back-name{font-size:.82rem;font-weight:700;color:#f1f5f9}.card-back-desc{font-size:.7rem;color:var(--hud-text-muted)}.card-back-check-badge{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;background:#38bdf8;color:#0f172a;display:none;align-items:center;justify-content:center;font-size:.75rem;font-weight:900;box-shadow:0 1px 4px #0006}.card-back-card.selected .card-back-check-badge{display:flex}.palette-preview-box{background:#00000047;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.suit-chips-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.suit-color-chip{display:flex;align-items:center;gap:.45rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:7px;padding:.35rem .65rem;font-size:.82rem;font-weight:600}.suit-color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.card-hand-fan-preview{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.5rem 0}.card-fan-item{width:62px;height:87px;border-radius:5px;box-shadow:var(--card-shadow);transform:translateY(0);transition:transform .15s ease}.card-fan-item:hover{transform:translateY(-4px) scale(1.05)}.speed-selector{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.speed-option-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:.65rem .5rem;color:var(--hud-text-muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.25rem;transition:all .15s ease}.speed-option-btn:hover{background:#ffffff1a;color:#fff;border-color:#ffffff40}.speed-option-btn.selected{background:#3b82f633;border-color:#3b82f6;color:#fff;box-shadow:0 0 12px #3b82f64d}.speed-option-icon{font-size:1.15rem}.speed-option-name{font-size:.8rem;font-weight:700}.speed-option-rate{font-size:.68rem;color:var(--hud-text-muted)}.setting-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.9rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:background .15s ease,border-color .15s ease}.setting-card:hover{background:#ffffff0f;border-color:#ffffff26}.setting-card-left{display:flex;align-items:center;gap:.85rem}.setting-card-icon{font-size:1.25rem;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#ffffff0f;color:#38bdf8;flex-shrink:0}.setting-card-info{display:flex;flex-direction:column}.setting-card-title{font-weight:600;font-size:.92rem;color:#f8fafc}.setting-card-subtitle{font-size:.78rem;color:var(--hud-text-muted);margin-top:.1rem}.form-select{background:#0f172a;color:#fff;border:1px solid rgba(255,255,255,.2);padding:.48rem .8rem;border-radius:7px;font-family:inherit;font-size:.85rem;outline:none;transition:border-color .15s ease}.form-select:focus{border-color:#38bdf8}.switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#475569;transition:.2s cubic-bezier(.16,1,.3,1);border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.2s cubic-bezier(.16,1,.3,1);border-radius:50%;box-shadow:0 1px 3px #0000004d}input:checked+.slider{background-color:#2563eb}input:checked+.slider:before{transform:translate(20px)}.volume-control-box{background:#00000047;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.75rem}.volume-slider-row{display:flex;align-items:center;gap:1rem}.volume-slider{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:#334155;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#38bdf8;cursor:pointer;box-shadow:0 0 8px #38bdf899;transition:transform .1s ease,box-shadow .1s ease}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 12px #38bdf8e6}.volume-percent-badge{font-size:.85rem;font-weight:700;color:#38bdf8;font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.sound-test-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.sound-test-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#f8fafc;padding:.65rem .85rem;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.45rem;transition:all .15s ease}.sound-test-btn:hover{background:#38bdf82e;border-color:#38bdf8;color:#fff;transform:translateY(-1px)}.sound-test-btn:active{transform:scale(.97)}.settings-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#0f172afa;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0;position:relative}.settings-toast{position:absolute;left:50%;transform:translate(-50%) translateY(10px);opacity:0;background:#059669;color:#fff;padding:.35rem .9rem;border-radius:9999px;font-size:.78rem;font-weight:600;box-shadow:0 4px 12px #00000059;pointer-events:none;transition:all .25s cubic-bezier(.16,1,.3,1);z-index:20}.settings-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:640px){.modal-dialog.settings-modal-dialog{width:98%;max-height:94vh;border-radius:12px}.settings-tabs-nav{padding:.5rem .75rem;gap:.25rem}.settings-tab-btn{padding:.45rem .65rem;font-size:.78rem}.settings-content-body{padding:1rem;gap:1.1rem}.theme-grid,.card-back-grid,.speed-selector{grid-template-columns:repeat(2,1fr)}.sound-test-grid{grid-template-columns:1fr}}.stats-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem}.stats-tab-btn{flex:1;background:#ffffff14;border:none;color:var(--hud-text-muted);padding:.55rem;border-radius:7px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .15s ease}.stats-tab-btn.active{background:#2563eb;color:#fff;box-shadow:0 2px 8px #2563eb59}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-tile{background:#00000047;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.85rem;display:flex;flex-direction:column;align-items:center}.tile-val{font-size:1.4rem;font-weight:800;color:#38bdf8;font-variant-numeric:tabular-nums}.tile-lbl{font-size:.75rem;color:var(--hud-text-muted);margin-top:.2rem;font-weight:600}.rules-body{display:flex;flex-direction:column;gap:1.25rem}.rules-section h3{font-size:1.05rem;color:#38bdf8;margin-bottom:.4rem;font-weight:700}.rules-section p,.rules-section li{font-size:.9rem;line-height:1.55;color:#cbd5e1}.rules-section ul{padding-left:1.25rem}.win-modal-content{text-align:center;padding:1rem 0}.win-trophy{font-size:4.2rem;margin-bottom:.5rem;animation:trophy-bounce 1s infinite alternate ease-in-out;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}@keyframes trophy-bounce{0%{transform:translateY(0) scale(1)}to{transform:translateY(-10px) scale(1.08)}}.win-title{font-size:1.85rem;font-weight:800;color:#fbbf24;margin-bottom:.25rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.win-subtitle{font-size:1rem;color:var(--hud-text-muted);margin-bottom:1.5rem}.win-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}.win-stat-card{background:#00000052;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.9rem;display:flex;flex-direction:column}.win-stat-card .label{font-size:.75rem;color:var(--hud-text-muted);font-weight:600}.win-stat-card .value{font-size:1.3rem;font-weight:800;color:#fff;margin-top:.25rem;font-variant-numeric:tabular-nums}.win-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2050}.win-cascade-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;cursor:pointer}.form-input{width:100%;padding:.65rem .85rem;border-radius:7px;background:#0006;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1rem;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus{border-color:#38bdf8;box-shadow:0 0 0 2px #38bdf840}.modal-actions{display:flex;justify-content:center;gap:.75rem}@media(max-width:900px){:root{--card-width: 74px;--card-height: 104px}.header-stats{gap:.5rem}.stat-value{font-size:.95rem}.logo-text{display:none}}@media(max-width:600px){:root{--card-width: calc((100vw - 1rem - 24px)*.1) ;--card-radius: 4px}.game-header{padding:0 .5rem;height:48px}.header-actions{gap:.3rem}.header-stats{gap:.4rem}.stat-box{padding:.15rem .45rem;min-width:45px}.stat-label{font-size:.52rem}.stat-value{font-size:.85rem}.btn{padding:.35rem .55rem;font-size:.75rem}.btn-icon{padding:.38rem}.difficulty-badge{display:none}.game-area{padding:.4rem .25rem}.board-top{margin-bottom:.45rem}.foundations-container{gap:.2rem}.foundation-slot{width:calc((100vw - 65px)*.1)}.tableau{gap:.2rem}.card-front{padding:2px}.card-corner{font-size:.68rem;width:11px}.card-court svg{transform:scale(.85)}}
