:root{--pink:#e8a0bf;--pink-light:#f5d5e5;--pink-dark:#c77da3;--coral:#f4845f;--peach:#fcd5ce;--mint:#b8e0d2;--mint-dark:#7bc4b3;--lavender:#c3b1e1;--lavender-light:#e8dff5;--cream:#fef9ef;--warm-white:#fffdf7;--text:#4a3f55;--text-light:#7a6f85;--shadow:#c8aabe40;--shadow-strong:#c8aabe66;--red-tile:#e05c6c;--green-tile:#3d9970;--blue-tile:#5b8ed4;--tile-bg-start:#fff;--tile-bg-end:#f0ebe3;--tile-border:#d4cfc6}*{box-sizing:border-box;margin:0;padding:0}html{overscroll-behavior-y:none}body{background:linear-gradient(160deg, var(--cream) 0%, var(--warm-white) 100%);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Quicksand,sans-serif}body.has-ai-bg{--card-bg:#ffffffe0;--card-border:#fff9;--glass-blur:24px;--glass-bg:#ffffffd1;--glass-border:#ffffff80}.theme-bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.theme-bg.ai-bg{background-position:50%;background-repeat:no-repeat;background-size:cover}.app{z-index:1;max-width:480px;margin:0 auto;padding:0 16px 32px;position:relative}.header{text-align:center;padding:24px 0 16px;position:relative}.header h1{color:var(--pink-dark);text-shadow:0 1px 8px #fff9;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;font-family:Dancing Script,cursive;font-size:36px;font-weight:700;display:flex}.logo-crak{color:#e8879e}.logo-dot{color:#5b8ed4}.logo-bam{color:#6ab889}.has-ai-bg .header h1{text-shadow:none}.header-title-glass{border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:6px 16px;transition:all .3s;display:inline-flex}.has-ai-bg .header-title-glass{-webkit-backdrop-filter:blur(20px)saturate(1.4);background:#ffffffb3;border:1px solid #ffffff80;box-shadow:0 2px 12px #0000000f}.header h1>span:first-child{font-size:32px;display:flex}.header-subtitle{text-align:center;letter-spacing:2px;text-transform:uppercase;width:100%;color:var(--text-light);margin-top:-2px;font-family:Quicksand,sans-serif;font-size:10px;font-weight:600}.has-ai-bg .header-subtitle{color:#64646eb3;text-shadow:0 1px 3px #0000004d}.nav-tabs{background:var(--glass-bg,#ffffff80);-webkit-backdrop-filter:blur(var(--glass-blur,10px));border:1px solid var(--glass-border,#ffffff4d);border-radius:16px;gap:6px;margin-bottom:20px;padding:4px;display:flex}.nav-tab{color:var(--text-light);cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-radius:12px;flex:1;padding:10px 8px;font-family:Quicksand,sans-serif;font-size:13px;font-weight:600;transition:all .25s}.nav-tab.active{color:var(--pink-dark);box-shadow:0 2px 8px var(--shadow);-webkit-backdrop-filter:blur(8px);background:#ffffffd9}.nav-tab .tab-icon{justify-content:center;margin-bottom:2px;font-size:18px;display:flex}.card{background:var(--card-bg,#ffffffeb);box-shadow:0 4px 20px var(--shadow), 0 0 0 .5px #ffffff4d;border:1px solid var(--card-border,#fffc);-webkit-backdrop-filter:blur(var(--glass-blur,8px));border-radius:20px;margin-bottom:16px;padding:20px}.card-title{color:var(--pink-dark);align-items:center;gap:8px;margin-bottom:12px;font-family:Outfit,sans-serif;font-size:17px;font-weight:600;display:flex}.card-title .icon{align-items:center;font-size:20px;display:inline-flex}.card-title .icon svg,.tab-icon svg,.tip-icon svg,.upload-icon svg,.btn svg,.advice-header svg,.hand-match-name svg{vertical-align:middle;display:inline-block}.upload-zone{border:2px dashed var(--pink-light);text-align:center;cursor:pointer;-webkit-backdrop-filter:blur(6px);background:#fffdf7b3;border-radius:16px;padding:32px 20px;transition:all .25s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--pink);background:var(--pink-light);transform:scale(1.01)}.upload-zone .upload-icon{justify-content:center;margin-bottom:8px;font-size:48px;display:flex}.upload-zone p{color:var(--text-light);font-size:14px;font-weight:500}.upload-zone .hint{color:var(--text-light);opacity:.7;margin-top:4px;font-size:12px}.preview-container{border-radius:16px;margin-bottom:12px;position:relative;overflow:hidden}.preview-container img{border-radius:16px;width:100%;display:block}.preview-overlay{gap:6px;display:flex;position:absolute;top:8px;right:8px}.preview-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:transform .15s;display:flex;box-shadow:0 2px 8px #00000026}.preview-btn:active{transform:scale(.9)}.tiles-row{flex-wrap:wrap;justify-content:center;gap:4px;margin:12px 0;display:flex}.tile{background:linear-gradient(180deg, var(--tile-bg-start) 0%, var(--tile-bg-end) 100%);border:1.5px solid var(--tile-border);cursor:default;border-radius:6px;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;width:44px;height:66px;padding:3px 2px 2px;font-family:Outfit,sans-serif;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex;position:relative;box-shadow:0 2px 4px #0000001a,inset 0 1px #fffc}.tile:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026,inset 0 1px #fffc}.tile-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:100%;font-size:9px;line-height:1.1;overflow:hidden}.tile-svg{flex:1;width:100%;min-height:0}.tile.suit-bam{color:#3d9970}.tile.suit-crak{color:#e05c6c}.tile.suit-dot{color:#5b8ed4}.tile.suit-wind{color:var(--text)}.tile.suit-dragon.red{color:#e05c6c}.tile.suit-dragon.green{color:#3d9970}.tile.suit-dragon.white{color:#888;border-style:dashed}.tile.suit-flower{color:#e8a34e;background:linear-gradient(180deg, #fff8e1 0%, var(--tile-bg-end) 100%)}.tile.suit-joker{color:#9b7ed8;background:linear-gradient(180deg, #f3e5f5 0%, var(--tile-bg-end) 100%)}.tile.pass-tile{opacity:.5;border-color:var(--coral)}.tile.keep-tile{border-color:var(--mint-dark);box-shadow:0 0 0 2px #7bc4b34d,0 2px 4px #0000001a}.btn{cursor:pointer;touch-action:manipulation;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 24px;font-family:Quicksand,sans-serif;font-size:15px;font-weight:700;transition:all .2s;display:flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--pink) 0%, var(--coral) 100%);color:#fff;box-shadow:0 4px 15px #e8a0bf66}.btn-primary:hover{box-shadow:0 6px 20px #e8a0bf99}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{-webkit-backdrop-filter:blur(8px);color:var(--pink-dark);background:#fffdf7b3;border:1.5px solid #ffffff80}.btn-secondary:hover{background:#ffffffd9}.btn-small{border-radius:10px;width:auto;padding:8px 16px;font-size:13px}.charleston-rounds{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.round-chip{-webkit-backdrop-filter:blur(8px);color:var(--text-light);cursor:pointer;text-align:center;touch-action:manipulation;background:#ffffffa6;border:1.5px solid #ffffff80;border-radius:10px;flex:1;padding:8px 4px;font-family:Quicksand,sans-serif;font-size:11px;font-weight:600;transition:all .2s}.round-chip.active{border-color:var(--pink);background:var(--pink-light);color:var(--pink-dark)}.round-chip.completed{border-color:var(--mint-dark);background:var(--mint);color:#3a7d6a}.round-chip .dir{font-size:14px;display:block}.round-chip.optional{opacity:.8;border-style:dashed}.round-chip.optional.active{opacity:1;border-color:var(--lavender);background:var(--lavender-light);color:var(--text)}.advice-section{margin-top:16px}.advice-header{align-items:center;gap:6px;margin-bottom:8px;font-family:Outfit,sans-serif;font-size:15px;font-weight:600;display:flex}.advice-pass{-webkit-backdrop-filter:blur(6px);border-left:4px solid var(--coral);background:#fff5f5d9;border-radius:12px;margin-bottom:12px;padding:14px}.advice-keep{-webkit-backdrop-filter:blur(6px);border-left:4px solid var(--mint-dark);background:#f0faf5d9;border-radius:12px;margin-bottom:12px;padding:14px}.advice-label{text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:700}.advice-pass .advice-label{color:var(--coral)}.advice-keep .advice-label{color:var(--mint-dark)}.strategy-text{color:var(--text);font-size:14px;line-height:1.5}.tip-card{-webkit-backdrop-filter:blur(6px);background:#e8dff5b3;border-radius:12px;align-items:flex-start;gap:8px;margin-top:8px;padding:12px 14px;display:flex}.tip-card .tip-icon{flex-shrink:0;align-items:center;margin-top:1px;font-size:16px;display:inline-flex}.tip-card p{color:var(--text);font-size:13px;line-height:1.4}.hand-match{-webkit-backdrop-filter:blur(6px);background:#ffffffbf;border:1.5px solid #ffffff80;border-radius:14px;margin-bottom:10px;padding:14px;transition:all .2s}.hand-match:first-child{border-color:var(--pink);box-shadow:0 2px 12px var(--shadow)}.hand-match-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.hand-match-name{font-family:Outfit,sans-serif;font-size:14px;font-weight:600}.hand-match-score{background:var(--pink-light);color:var(--pink-dark);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700}.hand-match-category{color:var(--text-light);margin-bottom:6px;font-size:11px;font-weight:600}.hand-match-needs{color:var(--text);font-size:12px;line-height:1.5}.hand-match-needs strong{color:var(--pink-dark)}.difficulty{text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.difficulty.easy{color:#2e7d32;background:#e8f5e9}.difficulty.medium{color:#e65100;background:#fff3e0}.difficulty.hard{color:#c62828;background:#fce4ec}.loading{text-align:center;padding:32px 20px}.loading-tiles{justify-content:center;gap:6px;margin-bottom:16px;display:flex}.loading-tile{background:linear-gradient(180deg, var(--tile-bg-start) 0%, var(--tile-bg-end) 100%);border:1.5px solid var(--tile-border);border-radius:4px;width:26px;height:40px;animation:1.2s ease-in-out infinite tileFloat}.loading-tile:nth-child(2){animation-delay:.15s}.loading-tile:nth-child(3){animation-delay:.3s}.loading-tile:nth-child(4){animation-delay:.45s}.loading-tile:nth-child(5){animation-delay:.6s}@keyframes tileFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.loading p{color:var(--text-light);font-size:14px;font-weight:500}.skeleton-group{flex-direction:column;gap:8px;padding:4px 0;display:flex}.skeleton-line{background:linear-gradient(90deg,#0000000f 25%,#0000001a 50%,#0000000f 75%) 0 0/200% 100%;border-radius:6px;height:13px;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.stream-section-enter{animation:.3s streamFadeIn}@keyframes streamFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stream-loading-indicator{color:var(--text-light);justify-content:center;align-items:center;gap:8px;padding:12px 0 4px;font-size:13px;font-weight:500;display:flex}.stream-dot{background:var(--primary);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite streamPulse}@keyframes streamPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.section{display:none}.section.active{display:block}.toast{-webkit-backdrop-filter:blur(20px)saturate(1.5);color:#fff;z-index:200;white-space:nowrap;background:#4a3f55d9;border:1px solid #ffffff26;border-radius:14px;padding:12px 24px;font-size:14px;font-weight:600;transition:transform .3s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(100px);box-shadow:0 4px 20px #0000004d}.toast.show{transform:translate(-50%)translateY(0)}.tile-highlighted{transition:all .25s;transform:translateY(-3px);box-shadow:0 0 0 3px var(--pink-dark), 0 4px 12px var(--shadow-strong)!important}.tile-dimmed{opacity:.3;transition:all .25s}.pass-reason{border-left:3px solid var(--coral);background:#fff5f0;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.pass-reason .pass-reason-tile{flex-shrink:0}.pass-reason .pass-reason-text{color:var(--text);font-size:13px;line-height:1.45}.target-hand{-webkit-backdrop-filter:blur(6px);cursor:pointer;background:#fffdf7b3;border:2px solid #0000;border-radius:14px;margin-bottom:8px;padding:12px 14px;transition:all .25s}.target-hand:hover{border-color:var(--pink-light);background:#ffffffd9}.target-hand.active{border-color:var(--pink-dark);box-shadow:0 2px 12px var(--shadow);background:#ffffffe6}.target-hand-name{color:var(--pink-dark);margin-bottom:4px;font-family:Outfit,sans-serif;font-size:14px;font-weight:600}.target-hand-category{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:600}.target-hand-fit{color:var(--text);margin-bottom:6px;font-size:13px;line-height:1.45}.target-hand-needs{color:var(--text-light);font-size:12px;font-style:italic}.target-hand-hint{color:var(--lavender);align-items:center;gap:4px;margin-top:6px;font-size:11px;font-weight:600;display:flex}.target-hand.active .target-hand-hint{color:var(--pink-dark)}.card-year-selector{justify-content:center;gap:8px;margin-bottom:16px;display:flex}.year-pill{-webkit-backdrop-filter:blur(8px);color:var(--text-light);cursor:pointer;touch-action:manipulation;background:#ffffffa6;border:1.5px solid #ffffff80;border-radius:20px;padding:6px 16px;font-family:Quicksand,sans-serif;font-size:13px;font-weight:700;transition:all .2s}.year-pill.active{border-color:var(--pink-dark);background:var(--pink-dark);color:#fff}.year-pill.coming-soon{opacity:.4;cursor:not-allowed}.year-pill.coming-soon span{font-size:11px;font-style:italic;font-weight:500}.tile-picker-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tile-picker-sheet{-webkit-backdrop-filter:blur(40px)saturate(1.8);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#ffffffe0;border-top:1px solid #fff9;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:75vh;padding:20px 16px 40px;overflow-y:auto}.tile-picker-sheet h3{text-align:center;color:var(--pink-dark);margin-bottom:8px;font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.picker-suit{margin-bottom:12px}.picker-suit-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);margin-bottom:6px;font-size:11px;font-weight:700}.picker-suit-tiles{flex-wrap:wrap;gap:4px;display:flex}.picker-tile{touch-action:manipulation;cursor:pointer!important}.picker-tile:active{transform:scale(.9)}.batch-preview{border-bottom:1px solid #00000014;margin-bottom:8px;padding-bottom:8px}.picker-tile-full{opacity:.25;pointer-events:none}.theme-picker-btn{border:1.5px solid var(--glass-border,var(--pink-light));background:var(--glass-bg,#ffffffd9);-webkit-backdrop-filter:blur(12px);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;transition:all .2s;display:flex;position:absolute;top:8px;left:0;box-shadow:0 2px 8px #00000014}.theme-picker-btn:hover{border-color:var(--pink-dark);transform:scale(1.08)}.theme-sheet-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:150;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.theme-sheet{-webkit-backdrop-filter:blur(40px)saturate(1.8);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#ffffffe0;border-top:1px solid #fff9;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:80vh;padding:24px 20px 40px;animation:.3s slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.garden-sheet{-webkit-backdrop-filter:blur(40px)saturate(1.8);background:#ffffffe0;border-top:1px solid #fff9;border-radius:24px 24px 0 0;flex-direction:column;width:100%;max-width:480px;height:92dvh;max-height:92dvh;animation:.3s slideUp;display:flex;overflow:hidden}.garden-sheet-header{padding:max(14px, env(safe-area-inset-top)) 0 10px;background:#fff9;flex:none;position:relative}.garden-sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;padding:8px 20px 24px;overflow-y:auto}.theme-sheet h3{text-align:center;color:var(--pink-dark);margin-bottom:16px;font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.quiz-sheet-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:160;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.quiz-sheet{-webkit-backdrop-filter:blur(40px)saturate(1.8);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#ffffffe0;border-top:1px solid #fff9;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:80vh;padding:24px 20px 40px;animation:.3s slideUp;overflow-y:auto}.quiz-progress{background:#f0e6ea;border-radius:2px;height:4px;margin-bottom:24px;overflow:hidden}.quiz-progress-bar{background:linear-gradient(90deg, var(--pink), var(--coral));border-radius:2px;height:100%;transition:width .4s}.quiz-question{color:var(--text);text-align:center;margin-bottom:20px;font-family:Outfit,sans-serif;font-size:20px;font-weight:600}.quiz-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.quiz-option{-webkit-backdrop-filter:blur(8px);cursor:pointer;text-align:center;touch-action:manipulation;background:#ffffffb3;border:1.5px solid #f0e6eab3;border-radius:16px;padding:16px 12px;transition:all .2s}.quiz-option:active{transform:scale(.95)}.quiz-option:hover{border-color:var(--pink);background:#fff5f8}.quiz-option .quiz-emoji{margin-bottom:8px;font-size:32px;display:block}.quiz-option .quiz-label{color:var(--text);font-family:Quicksand,sans-serif;font-size:13px;font-weight:600}.quiz-color-options{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.quiz-color-option{cursor:pointer;touch-action:manipulation;flex-direction:column;align-items:center;gap:8px;display:flex}.quiz-color-swatch{border:3px solid #0000;border-radius:50%;width:56px;height:56px;transition:all .2s}.quiz-color-option:active .quiz-color-swatch{transform:scale(.9)}.quiz-color-option:hover .quiz-color-swatch{border-color:var(--text);transform:scale(1.1)}.quiz-color-label{color:var(--text-light);font-family:Quicksand,sans-serif;font-size:12px;font-weight:600}.card-viewer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:170;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.card-viewer-sheet{-webkit-backdrop-filter:blur(40px)saturate(1.8);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fffffff2;border-top:1px solid #fff9;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:85vh;padding:24px 20px 40px;animation:.3s slideUp;overflow-y:auto}.card-section{margin-bottom:16px}.card-section-title{color:var(--pink-dark);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--pink-light);margin-bottom:8px;padding-bottom:4px;font-family:Outfit,sans-serif;font-size:15px;font-weight:700}.card-hand-row{border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:2px;padding:6px 8px;font-size:13px;transition:background .15s;display:flex}.card-hand-row:hover{background:#e8a0bf14}.card-hand-pattern{color:var(--text);flex:1;font-family:Outfit,sans-serif;font-weight:600}.card-hand-meta{color:var(--text-light);align-items:center;gap:8px;font-size:11px;display:flex}.card-hand-concealed{border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700}.card-hand-concealed.concealed{background:var(--lavender-light);color:var(--lavender)}.card-hand-concealed.exposed{background:var(--mint);color:var(--mint-dark)}.card-hand-points{color:var(--pink-dark);font-weight:700}.card-edit-input{border:1.5px solid var(--pink-light);color:var(--text);background:#fffc;border-radius:6px;flex:1;padding:4px 8px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600}.card-edit-input:focus{border-color:var(--pink-dark);outline:none}.confirm-dialog{text-align:center;background:#fffffff2;border-radius:16px;max-width:320px;padding:24px;box-shadow:0 8px 32px #0003}.confirm-dialog p{color:var(--text);margin-bottom:16px;font-size:14px;line-height:1.5}.entry-options{gap:12px;margin-top:4px;display:flex}.entry-option{border:2px dashed var(--pink-light);cursor:pointer;color:var(--pink-dark);touch-action:manipulation;background:#fff9;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:8px;padding:20px 12px;transition:all .2s;display:flex}.entry-option:hover,.entry-option:active{border-color:var(--pink);background:#fffc;transform:translateY(-1px)}.entry-option-title{font-family:Outfit,sans-serif;font-size:14px;font-weight:600}.entry-option-hint{color:var(--text-light);text-align:center;font-size:11px}.tile.pass-selected{border-color:var(--coral);transform:translateY(-3px);box-shadow:0 0 0 3px #f4845f59,0 2px 4px #0000001a}.receiving-prompt{background:linear-gradient(135deg, var(--mint) 0%, #d4f0e8 100%);color:#3a7d6a;text-align:center;border-radius:10px;margin-bottom:8px;padding:8px 14px;font-size:13px;font-weight:600}.receiving-section{border-left:4px solid var(--mint-dark);background:#b8e0d226;border-radius:12px;padding:12px}.training-table-entry{text-align:center;background:radial-gradient(at 0 0,#e8a0bf38 0%,#0000 55%),radial-gradient(at 100% 100%,#7bc4b333 0%,#0000 60%),linear-gradient(155deg,#fdf4f8 0%,#fef7f0 50%,#f3eef8 100%);border:none;border-radius:28px;max-width:440px;margin:40px auto 28px;padding:32px 28px 28px;position:relative;overflow:hidden;box-shadow:0 12px 32px #c77da329,0 2px 6px #0000000a,inset 0 1px #fff9}.training-table-entry:before{content:"";pointer-events:none;background:radial-gradient(circle,#e8a0bf59 0%,#0000 70%);border-radius:50%;width:80px;height:80px;position:absolute;top:-20px;right:-20px}.training-table-entry:after{content:"";pointer-events:none;background:radial-gradient(circle,#7bc4b347 0%,#0000 70%);border-radius:50%;width:90px;height:90px;position:absolute;bottom:-25px;left:-25px}.training-table-header{justify-content:center;align-items:center;gap:10px;margin-bottom:10px;display:flex;position:relative}.training-table-icon{background:#ffffffb3;border-radius:14px;align-items:center;padding:8px;display:inline-flex;box-shadow:0 2px 6px #c77da32e}.training-table-title{color:var(--pink-dark);letter-spacing:.5px;text-shadow:0 1px #fff9;font-family:Dancing Script,cursive;font-size:34px;font-weight:700}.training-table-desc{color:var(--text);max-width:340px;margin:0 auto 18px;font-size:14.5px;line-height:1.6;position:relative}.training-table-stats-mini{color:var(--pink-dark);letter-spacing:.3px;background:#ffffff8c;border-radius:999px;margin-bottom:16px;padding:6px 14px;font-size:12px;font-weight:700;display:inline-block;position:relative;box-shadow:0 1px 4px #0000000d}.practice-card{position:relative;background:linear-gradient(135deg,#f8f5fc 0%,#fdf5f8 100%)!important}.practice-banner{color:var(--lavender);text-align:center;letter-spacing:.5px;margin-bottom:12px;font-family:Dancing Script,cursive;font-size:18px;font-weight:700}.practice-round-progress{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.practice-round-dot{width:28px;height:28px;color:var(--text-light);background:#fff9;border:2px solid #c3b1e166;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;transition:all .3s;display:flex}.practice-round-dot.current{border-color:var(--pink-dark);background:var(--pink-light);color:var(--pink-dark);transform:scale(1.15)}.practice-round-dot.done{border-color:var(--mint-dark);background:var(--mint);color:#3a7d6a}.practice-round-dot.perfect{border-color:var(--coral);background:var(--peach);color:var(--coral)}.practice-round-label{text-align:center;color:var(--text);justify-content:center;align-items:center;gap:6px;margin-bottom:12px;font-family:Outfit,sans-serif;font-size:16px;font-weight:600;display:flex}.practice-round-label .dir{font-size:20px}.practice-running-score{color:var(--text-light);background:#ffffffb3;border-radius:12px;margin-left:8px;padding:2px 10px;font-size:12px;font-weight:600}.practice-tiles{flex-wrap:wrap;justify-content:center;gap:4px;margin-bottom:16px;display:flex}.practice-tile{cursor:pointer;touch-action:manipulation;transition:transform .15s,box-shadow .15s,border-color .15s}.practice-tile:active{transform:scale(.92)}.practice-tile.practice-match{transform:translateY(-2px);box-shadow:0 0 0 3px var(--mint-dark), 0 2px 8px #7bc4b366!important}.practice-tile.practice-user-only{box-shadow:0 0 0 3px var(--lavender), 0 2px 8px #c3b1e166!important}.practice-tile.practice-good-thinking{box-shadow:0 0 0 3px #5b8ed4,0 2px 8px #5b8ed459!important}.practice-tile.practice-joker{cursor:not-allowed}.practice-instructions{text-align:center;margin-bottom:8px}.practice-instructions p{color:var(--text-light);font-size:14px;font-weight:600}.practice-score-badge{text-align:center;border-radius:12px;margin-bottom:12px;padding:8px 16px;font-family:Outfit,sans-serif;font-size:16px;font-weight:700}.practice-score-badge.score-3{background:linear-gradient(135deg, var(--mint) 0%, #d4f0e8 100%);color:#2e7d32}.practice-score-badge.score-2{background:linear-gradient(135deg, var(--peach) 0%, #fde2d8 100%);color:#e65100}.practice-score-badge.score-1{background:linear-gradient(135deg, var(--lavender-light) 0%, #e8dff5 100%);color:var(--text)}.practice-score-badge.score-0{color:var(--text-light);background:#fff9}.practice-score-bonus{color:var(--text-light);opacity:.85;font-size:12px;font-weight:500}.practice-comparison{margin-top:12px}.comparison-rows{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.comparison-row{align-items:center;gap:10px;display:flex}.comparison-label{color:var(--text-light);text-align:right;min-width:80px;font-size:12px;font-weight:700}.comparison-tiles{gap:4px;display:flex}.comparison-match{box-shadow:0 0 0 2px var(--mint-dark)!important}.comparison-user{box-shadow:0 0 0 2px var(--lavender)!important}.comparison-good-thinking{box-shadow:0 0 0 2px #5b8ed4!important}.comparison-suggested{opacity:.7;box-shadow:0 0 0 2px var(--coral)!important}.comparison-tile-empty{flex-shrink:0;width:44px;height:66px;display:inline-block}@media (width<=420px){.comparison-tile-empty{width:38px;height:56px}}.top-hands-reference-card{padding:0;overflow:hidden}.top-hands-toggle{width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 12px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;display:flex}.top-hands-toggle:hover{background:#00000008}.top-hands-toggle-label{align-items:center;gap:6px;display:inline-flex}.top-hands-toggle-hint{color:var(--text-light);opacity:.85;font-size:12px;font-weight:400}.top-hands-toggle-icon{color:var(--text-light);text-align:center;width:18px;font-size:18px;font-weight:700;line-height:1}.top-hands-panel{border-top:1px dashed var(--border);padding:6px 12px 12px}.top-hands-panel-note{color:var(--text-light);margin:6px 0 10px;font-size:11px;font-style:italic}.top-hand-ref{border-bottom:1px dotted var(--border);padding:8px 0}.top-hand-ref:last-child{border-bottom:none}.top-hand-ref-name{color:var(--text);align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.top-hand-ref-meta{color:var(--text-light);margin:2px 0 6px;font-size:11px}.top-hand-ref-tiles{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.top-hand-ref-label{color:var(--text-light);margin-right:4px;font-size:11px}.top-hand-ref-tiles .tile.mini-tile{width:28px;height:40px;padding:2px 1px 1px;font-size:10px}.top-hand-ref-tiles .tile.mini-tile .tile-suit{font-size:9px}.practice-reasoning{margin-top:8px}.session-complete{text-align:center;padding:16px 0}.session-complete-title{color:var(--pink-dark);margin-bottom:8px;font-family:Dancing Script,cursive;font-size:28px;font-weight:700}.session-score-big{color:var(--text);margin-bottom:4px;font-family:Outfit,sans-serif;font-size:48px;font-weight:800;line-height:1}.session-rating{color:var(--pink-dark);margin-bottom:16px;font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.session-round-summary{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:16px;display:flex}.round-result{background:#fff9;border:1.5px solid #ffffff80;border-radius:10px;flex-direction:column;align-items:center;min-width:60px;padding:6px 10px;display:flex}.round-result-label{color:var(--text-light);font-size:10px;font-weight:600}.round-result-score{font-family:Outfit,sans-serif;font-size:16px;font-weight:800}.round-result-3 .round-result-score{color:#2e7d32}.round-result-2 .round-result-score{color:#e65100}.round-result-1 .round-result-score{color:var(--lavender)}.round-result-0 .round-result-score{color:var(--text-light)}.round-result-3{border-color:var(--mint-dark);background:#b8e0d24d}.round-result-2{border-color:var(--peach);background:#fcd5ce4d}.practice-stats{border-top:1px solid #c8aabe33;margin-top:16px;padding-top:16px}.practice-stats-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);text-align:center;margin-bottom:10px;font-family:Outfit,sans-serif;font-size:13px;font-weight:700}.practice-stats-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat-item{text-align:center}.stat-value{color:var(--pink-dark);font-family:Outfit,sans-serif;font-size:20px;font-weight:800}.stat-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.3px;font-size:10px;font-weight:600}.feedback-btn{justify-content:center;align-items:center;min-width:40px;display:flex;flex:none!important;width:40px!important;padding:8px!important}.feedback-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:180;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.feedback-sheet{-webkit-backdrop-filter:blur(40px)saturate(1.8);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fffffff2;border-top:1px solid #fff9;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:80vh;padding:24px 20px 40px;animation:.3s slideUp;overflow-y:auto}.feedback-sheet h3{text-align:center;color:var(--pink-dark);margin-bottom:16px;font-family:Outfit,sans-serif;font-size:18px;font-weight:600}.feedback-context{background:#fffdf7b3;border:1px solid #c8aabe26;border-radius:12px;margin-bottom:16px;padding:12px}.feedback-context-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);margin-bottom:6px;font-size:11px;font-weight:700}.feedback-tiles-row{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.feedback-tile{width:34px!important;height:50px!important;padding:2px 1px 1px!important}.feedback-tile .tile-label{font-size:7px!important}.feedback-tile .tile-svg{max-height:32px}.feedback-suggestion-tile{cursor:pointer;border-color:var(--lavender)!important}.feedback-section{margin-bottom:14px}.feedback-section-label{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:600}.feedback-add-tile{border:2px dashed var(--lavender);height:34px;color:var(--lavender);cursor:pointer;background:0 0;border-radius:6px;padding:0 10px;font-family:Quicksand,sans-serif;font-size:12px;font-weight:700;transition:all .2s}.feedback-add-tile:hover{border-color:var(--pink-dark);color:var(--pink-dark)}.feedback-picker{background:#fffc;border:1px solid #c8aabe26;border-radius:10px;flex-wrap:wrap;gap:4px;margin-top:6px;padding:8px;display:flex}.feedback-textarea{width:100%;color:var(--text);resize:vertical;background:#fffc;border:1.5px solid #c8aabe4d;border-radius:12px;padding:10px 12px;font-family:Quicksand,sans-serif;font-size:13px;transition:border-color .2s}.feedback-textarea:focus{border-color:var(--pink);outline:none}.feedback-textarea::placeholder{color:var(--text-light);opacity:.6}.app-menu-version{text-align:center;color:var(--text-light);opacity:.7;letter-spacing:.4px;border-top:1px solid #c77da326;margin-top:6px;padding:8px 0 4px;font-family:Quicksand,sans-serif;font-size:10px;font-weight:600}@media (width<=360px){.tile{width:38px;height:56px}.tile-label{font-size:8px}.nav-tab{padding:8px 4px;font-size:11px}.entry-options{flex-direction:column}.practice-stats-grid{grid-template-columns:repeat(2,1fr)}.comparison-label{min-width:65px;font-size:11px}}body.tile-size-jumbo .tile:not(.mini-tile){width:62px;height:93px;padding:4px 3px 3px;font-size:13px}body.tile-size-jumbo .tile:not(.mini-tile) .tile-label{font-size:12px}body.tile-size-jumbo .comparison-tile-empty{width:62px;height:93px}body.tile-size-jumbo .picker-tile{width:62px;height:93px;padding:4px 3px 3px;font-size:13px}body.tile-size-jumbo .picker-tile .tile-label{font-size:12px}@media (width<=360px){body.tile-size-jumbo .tile:not(.mini-tile),body.tile-size-jumbo .comparison-tile-empty,body.tile-size-jumbo .picker-tile{width:54px;height:80px}}.practice-exit-confirm{background:#fff5f5d9;border:1.5px solid #e57f7f59;border-radius:14px;margin-top:16px;padding:12px 14px;box-shadow:0 2px 10px #e57f7f1f}.practice-exit-confirm-text{color:var(--text);text-align:center;margin:0 0 10px;font-size:13px;line-height:1.4}.practice-exit-confirm-actions{gap:8px;display:flex}.welcome-overlay{z-index:120;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3c283c5c;justify-content:center;align-items:center;padding:20px;animation:.22s ease-out welcome-fade-in;display:flex;position:fixed;inset:0}.welcome-card{text-align:center;background:linear-gradient(155deg,#fdf4f8 0%,#fef7f0 60%,#f3eef8 100%);border-radius:24px;width:100%;max-width:420px;padding:28px 26px 22px;animation:.28s cubic-bezier(.22,1.2,.36,1) welcome-pop;box-shadow:0 24px 60px #50325047,inset 0 1px #fff9}.welcome-flourish{justify-content:center;margin-bottom:10px;display:flex}.welcome-title{color:var(--pink-dark);letter-spacing:.5px;margin:0 0 10px;font-family:Dancing Script,cursive;font-size:30px}.welcome-body{color:var(--text);margin:0 0 18px;font-size:14px;line-height:1.6}.welcome-actions{flex-direction:column;gap:8px;display:flex}.welcome-beta{text-align:left;border:1px solid var(--pink-light);background:#e8a0bf1a;border-radius:14px;margin:0 0 18px;padding:12px 14px}.welcome-beta-title{letter-spacing:.8px;text-transform:uppercase;color:var(--pink-dark);text-align:center;margin-bottom:8px;font-size:11px;font-weight:700}.welcome-beta-list{color:var(--text);margin:0;padding-left:18px;font-size:13px;line-height:1.55}.welcome-beta-list li+li{margin-top:6px}@keyframes welcome-fade-in{0%{opacity:0}to{opacity:1}}@keyframes welcome-pop{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.live-helper-expanded{border:1.5px solid var(--pink-light);background:#ffffff8c;border-radius:18px;margin-top:12px;padding:14px;box-shadow:0 4px 14px #c77da314}.live-helper-expanded-header{color:var(--pink-dark);letter-spacing:.3px;border-bottom:1px solid #c77da326;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;font-family:Outfit,sans-serif;font-size:13px;font-weight:700;display:flex}.live-exit-confirm-inline{flex-direction:column;flex:1;align-items:flex-end;gap:6px;min-width:200px;display:flex}.live-exit-confirm-text{color:var(--text);letter-spacing:0;text-align:right;font-size:12px;font-weight:500}.live-exit-confirm-actions{gap:6px;display:flex}.game-sim-opponent-seat-label{color:var(--pink-dark);opacity:.85;margin-left:4px;font-size:10px;font-weight:600}.orientation-body h4{color:var(--pink-dark);margin:12px 0 6px;font-family:Outfit,sans-serif;font-size:14px}.orientation-body h4:first-child{margin-top:0}.orientation-body p{margin:0 0 8px}.orientation-body ul,.orientation-body ol{margin:0 0 10px;padding-left:20px}.orientation-body li{margin-bottom:4px}.fab-feedback{border:1.5px solid var(--glass-border,var(--pink-light));width:48px;height:48px;color:var(--pink-dark);cursor:pointer;z-index:40;background:linear-gradient(135deg,#fde8ea 0%,#fef6ef 100%);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;bottom:14px;right:14px;box-shadow:0 4px 14px #c878a047,inset 0 0 0 2px #fff6}.fab-feedback:hover{transform:scale(1.06);box-shadow:0 6px 18px #c878a059,inset 0 0 0 2px #ffffff80}.fab-feedback:active{transform:scale(.94)}.tile.tile-exposed{position:relative;box-shadow:0 0 0 2px #c8963a,0 2px 6px #c8963c59}.tile.tile-exposed:after{content:"🔒";pointer-events:none;background:#fff8e0;border:1px solid #c8963a;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.game-sim{flex-direction:column;gap:12px;display:flex}.game-sim-dealer-banner{text-align:center;background:var(--cream);color:var(--charcoal);border:1px solid var(--pink-light);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500}.game-sim-dealer-banner-you{background:var(--pink-soft,#ffe9f1);color:var(--pink-dark);font-weight:600}.game-sim-pending-mahjong{background:linear-gradient(135deg, var(--pink-soft,#ffe9f1), var(--cream));border:2px solid var(--pink-dark);text-align:center;border-radius:14px;margin:12px 0;padding:16px;animation:1.6s ease-in-out infinite pulseGently}.game-sim-pending-mahjong-title{color:var(--pink-dark);margin-bottom:6px;font-size:18px;font-weight:700}.game-sim-pending-mahjong-detail{color:var(--charcoal);font-size:14px;line-height:1.4}@keyframes pulseGently{0%,to{box-shadow:0 0 #e8a0bf00}50%{box-shadow:0 0 18px #e8a0bf80}}.game-sim-claim-priority-hint,.game-sim-claim-paused-hint{text-align:center;color:var(--charcoal);opacity:.85;margin-top:6px;font-size:12px}.game-sim-claim-paused-hint{color:var(--pink-dark);font-weight:500}.game-sim-opponents{border:1px solid var(--pink-light);background:#e8a0bf14;border-radius:12px;justify-content:space-between;gap:8px;padding:10px 8px;display:flex}.game-sim-opponent{text-align:center;border-radius:8px;flex:1;min-width:0;padding:6px 4px;transition:background .15s}.game-sim-opponent.current{box-shadow:0 0 0 1.5px var(--pink-dark);background:#e8a0bf33}.game-sim-opponent-name{color:var(--text);font-size:12px;font-weight:700}.game-sim-turn-dot{color:var(--pink-dark);font-size:16px;animation:1.2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:.3}50%{opacity:1}}.game-sim-opponent-count{color:var(--text-light);margin-top:2px;font-size:10px}.game-sim-opponent-exposures{flex-wrap:wrap;justify-content:center;gap:2px;margin-top:4px;display:flex}.game-sim-opponent.just-acted{box-shadow:0 0 0 1.5px var(--coral,#f4845f);background:#f4845f1f}.game-sim-opponent-action{color:var(--coral,#f4845f);text-transform:uppercase;letter-spacing:.4px;margin-top:2px;font-size:10px;font-weight:700}.game-sim-opponents-header{justify-content:flex-end;margin-bottom:-4px;display:flex}.game-sim-names-editor{border:1px solid var(--pink-light);background:#fff9;border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.game-sim-name-field{color:var(--text);align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.game-sim-name-field span{min-width:86px}.game-sim-name-field input{border:1.5px solid var(--pink-light);background:#fffc;border-radius:8px;flex:1;padding:6px 10px;font-family:Quicksand,sans-serif;font-size:13px}.game-sim-last-discard{border:1px dashed var(--coral,#f4845f);color:var(--text);background:#f4845f14;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.game-sim-last-discard-label{color:var(--text-light);font-weight:600}.game-sim-just-drawn{outline-offset:2px;border-radius:4px;outline:2.5px solid #5b8ed4;box-shadow:0 0 0 1.5px #5b8ed459}.game-sim-claim-chip{border:2px solid var(--pink-dark);background:linear-gradient(135deg,#fff3e0,#ffe0e8);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;animation:1.2s ease-in-out infinite chip-glow;display:flex}@keyframes chip-glow{0%,to{box-shadow:0 0 0 2px #e8a0bf33}50%{box-shadow:0 0 0 6px #e8a0bf66}}.game-sim-claim-tile{color:var(--text);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.game-sim-claim-actions{flex-wrap:wrap;gap:6px;display:flex}.game-sim-player-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.game-sim-instruction{color:var(--pink-dark);font-size:12px;font-weight:600}.tile-clickable{cursor:pointer}.tile-clickable:hover{transform:translateY(-3px);box-shadow:0 4px 10px #00000026}.game-sim-advice{border:1px solid var(--mint-light,#9ad4c0);background:#9ad4c01a;border-radius:12px;margin-top:10px;padding:10px 12px}.game-sim-advice-discard{color:var(--text);align-items:center;gap:8px;margin:8px 0;font-size:13px;font-weight:600;display:flex}.game-sim-discards{border:1px solid var(--border);background:#fff6;border-radius:10px;margin-top:8px;overflow:hidden}.game-sim-discards-list{border-top:1px dashed var(--border);flex-wrap:wrap;gap:8px;padding:8px 12px 12px;display:flex}.game-sim-discard-item{flex-direction:column;align-items:center;gap:2px;display:flex}.game-sim-discard-from{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;font-size:9px}.game-sim-over{text-align:center;background:#e8a0bf14;border-radius:12px;margin-top:8px;padding:18px 12px}.game-sim-over h3{color:var(--pink-dark);margin:0 0 8px}.game-sim-over p{color:var(--text);margin:4px 0 12px;font-size:14px}.mahjong-celebration-overlay{z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:flex-start;padding:5vh 20px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.mahjong-celebration-card{text-align:center;background:linear-gradient(135deg,#fff8f0,#ffe0e8);border-radius:22px;max-width:420px;padding:36px 28px;animation:.4s cubic-bezier(.34,1.56,.64,1) celebration-pop;box-shadow:0 20px 60px #0000004d}@keyframes celebration-pop{0%{opacity:0;transform:scale(.5)rotate(-5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.mahjong-celebration-title{color:var(--pink-dark);text-shadow:2px 2px #fff,4px 4px 12px #e8a0bf4d;letter-spacing:1px;margin-bottom:8px;font-family:Dancing Script,cursive;font-size:58px;font-weight:700;line-height:1}.mahjong-celebration-hand{color:var(--text);background:#ffffff80;border-radius:999px;margin-bottom:12px;padding:6px 12px;font-size:15px;font-weight:700;display:inline-block}.mahjong-celebration-message{color:var(--text);margin:8px 0 0;font-size:18px;font-weight:500;line-height:1.4}.mini-tile.joker-redeemable{cursor:pointer;outline:2px solid var(--coral);outline-offset:1px;animation:1.6s ease-in-out infinite joker-redeemable-pulse}@keyframes joker-redeemable-pulse{0%,to{box-shadow:0 0 #f4845f00}50%{box-shadow:0 0 8px 2px #f4845f8c}}.game-sim-redeem-preview{justify-content:center;align-items:center;gap:18px;margin:12px 0 4px;display:flex}.game-sim-redeem-side{text-align:center}.game-sim-redeem-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text-light);margin-bottom:4px;font-size:11px;font-weight:700}.game-sim-redeem-arrow{color:var(--pink-dark);font-size:20px}.game-sim-waiting{color:var(--text-light);background:#5b8ed414;border:1px dashed #5b8ed466;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin:8px 0;padding:10px 12px;font-size:13px;font-weight:500;display:flex}.game-sim-waiting-spinner{font-size:14px;animation:1.4s ease-in-out infinite game-sim-waiting-pulse;display:inline-block}@keyframes game-sim-waiting-pulse{0%,to{opacity:.55}50%{opacity:1}}.practice-skip-2nd{border:1px solid var(--lavender,#c3b1e1);text-align:center;background:#c3b1e124;border-radius:12px;margin:0 0 12px;padding:10px 12px}.practice-skip-2nd-prompt{color:#5d4f7d;margin:0 0 8px;font-size:13px;line-height:1.4}.practice-skip-2nd .btn{width:auto;padding:5px 14px;font-size:12px}.game-sim-redeem-overlay{-webkit-backdrop-filter:blur(2px);z-index:150;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.game-sim-redeem-card{background:#fffffff5;border-radius:18px;width:100%;max-width:400px;max-height:85vh;padding:24px 22px;overflow-y:auto;box-shadow:0 16px 48px #00000040}.game-over-notice-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c18268c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.game-over-notice-card{background:var(--card-bg,#fff);text-align:center;border-radius:16px;width:100%;max-width:400px;padding:24px 22px;box-shadow:0 16px 48px #00000040}.game-over-notice-title{letter-spacing:-.2px;margin-bottom:8px;font-size:22px;font-weight:700}.game-over-notice-title.is-wall{color:#5d4f7d}.game-over-notice-title.is-loss{color:#8a3d23}.game-over-notice-body{color:var(--text,#333);margin:0;font-size:14px;line-height:1.5}.game-sim-result-banner{text-align:center;border:1.5px solid;border-radius:12px;margin:0 0 12px;padding:12px 14px;font-size:14px}.game-sim-result-banner strong{font-weight:700}.game-sim-result-banner-wall{border-color:var(--lavender,#c3b1e1);color:#5d4f7d;background:#c3b1e129}.game-sim-result-banner-win{border-color:var(--mint-dark,#5ea594);color:#2f6757;background:linear-gradient(135deg,#9ad4c040,#e8a0bf40)}.game-sim-result-banner-loss{border-color:var(--coral);color:#8a3d23;background:#f4845f1f}.charleston-tour-root{z-index:130;pointer-events:none;position:fixed;inset:0}.charleston-tour-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto;background:#281e3273;animation:.18s ease-out charleston-tour-fade-in;position:absolute;inset:0}.charleston-tour-spotlight{pointer-events:none;border:2px solid #ffffffeb;border-radius:14px;transition:top .2s,left .2s,width .2s,height .2s;animation:1.6s ease-in-out infinite charleston-tour-pulse;position:absolute;box-shadow:0 0 0 4px #e8a0bf8c,0 0 24px 8px #e8a0bf59}.charleston-tour-card{pointer-events:auto;background:linear-gradient(155deg,#fdf4f8 0%,#fef7f0 65%,#f3eef8 100%);border-radius:18px;width:320px;max-width:calc(100vw - 24px);padding:16px 18px 14px;animation:.22s cubic-bezier(.22,1.2,.36,1) charleston-tour-pop;position:absolute;box-shadow:0 18px 44px #50325052,inset 0 1px #fff9}.charleston-tour-progress{text-transform:uppercase;letter-spacing:.9px;color:var(--pink-dark);margin-bottom:6px;font-size:10px;font-weight:700}.charleston-tour-title{color:var(--pink-dark);letter-spacing:.3px;margin:0 0 6px;font-family:Dancing Script,cursive;font-size:22px}.charleston-tour-body{color:var(--text);margin:0 0 12px;font-size:13.5px;line-height:1.5}.charleston-tour-hint{color:var(--text-light);margin:-4px 0 12px;font-size:12px;font-style:italic}.charleston-tour-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.charleston-tour-actions .btn{border-radius:999px;width:auto;padding:6px 14px;font-size:12px}.charleston-tour-nav{align-items:center;gap:8px;margin-left:auto;display:flex}.charleston-tour-skip{color:var(--text-light);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:4px 2px;font-size:12px;text-decoration:underline}.charleston-tour-skip:hover{color:var(--pink-dark)}@keyframes charleston-tour-fade-in{0%{opacity:0}to{opacity:1}}@keyframes charleston-tour-pop{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes charleston-tour-pulse{0%,to{box-shadow:0 0 0 4px #e8a0bf8c,0 0 24px 8px #e8a0bf59}50%{box-shadow:0 0 0 4px #e8a0bfbf,0 0 28px 10px #e8a0bf80}}
