.mahjong-practice-root{--mj-felt-bg:#0c2b1a;--mj-felt-border:#1a4d32;--mj-felt-center:#092014;--mj-gold:#d6b86a;--mj-gold-light:#fae4a8;--mj-text:#f6f3ea;--mj-text-muted:#8fa89b;--mj-tile-face:#fffff2;--mj-tile-back:#10633b;--mj-tile-border:#d4cfb8;--mj-tile-shadow:#0006;--mj-danger:#e65050;--mj-success:#38b26e;box-sizing:border-box;width:100%;max-width:1200px;color:var(--mj-text);margin:0 auto;padding:12px;font-family:Inter,Noto Sans TC,system-ui,-apple-system,sans-serif;overflow-x:hidden}.mj-game-viewport{width:100%}.mj-viewport-warning{box-sizing:border-box;border:2px solid var(--mj-gold);width:min(520px,100%);color:var(--mj-text);text-align:center;background:#081c12f5;border-radius:16px;padding:32px 24px;display:none;box-shadow:0 18px 48px #00000073}.mj-viewport-warning strong{color:var(--mj-gold-light);margin-bottom:10px;font-size:1.25rem;display:block}.mj-viewport-warning p{color:var(--mj-text-muted);margin:0;line-height:1.6}.mj-practice-banner{border:1px solid var(--mj-felt-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#12291dd9;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:10px 16px;display:flex}.mj-banner-title-group{align-items:center;gap:12px;display:flex}.mj-practice-tag{border:1px solid var(--mj-gold);color:var(--mj-gold);letter-spacing:.08em;background:#d6b86a26;border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:700;display:inline-block}.mj-busy-badge{border:1px solid var(--mj-gold-light);color:var(--mj-gold-light);letter-spacing:.05em;background:#d6b86a33;border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:700;animation:1.2s ease-in-out infinite pulse-busy;display:inline-block}@keyframes pulse-busy{0%,to{opacity:.8}50%{opacity:1}}.mj-practice-heading{color:var(--mj-text);margin:0;font-size:1.1rem;font-weight:700}.mj-banner-disclaimer{color:var(--mj-text-muted);margin:0;font-size:.8rem}.mj-btn-exit{color:var(--mj-text);cursor:pointer;background:#ffffff0f;border:1px solid #fff3;border-radius:8px;padding:6px 14px;font-size:.85rem;transition:all .15s}.mj-btn-exit:hover:not(:disabled){border-color:var(--mj-gold);background:#ffffff1f}.mj-table-container{aspect-ratio:16/9;box-sizing:border-box;background:radial-gradient(circle,#133a24 0%,#0c2417 70%,#07170f 100%);border:4px solid #1f4f34;border-radius:20px;flex-direction:column;justify-content:space-between;gap:12px;width:100%;min-height:0;padding:16px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 60px #0009,0 20px 40px #0006}.mj-legacy-table-scene{z-index:0;object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.mj-table-layout{inset:12px 12px var(--mj-action-safe-area);z-index:2;grid-template:".top."minmax(0,27%)"left center right"minmax(0,43%)".bottom."minmax(0,30%)/minmax(180px,1fr) minmax(240px,1.4fr) minmax(180px,1fr);place-items:stretch stretch;gap:12px;width:auto;height:auto;min-height:0;display:grid;position:absolute}.mj-seat-top,.mj-seat-left,.mj-seat-right,.mj-seat-bottom{min-height:0}.mj-seat-top{grid-area:top;width:100%}.mj-seat-left{grid-area:left;width:100%}.mj-seat-center{grid-area:center;justify-content:center;width:100%;display:flex}.mj-seat-right{grid-area:right;width:100%}.mj-seat-bottom{grid-area:bottom/1/bottom/-1;width:100%}.mj-seat-bottom .mj-seat-panel{grid-template-areas:"header header""context hand";grid-template-columns:var(--mj-self-context-column) minmax(0, 1fr);grid-template-rows:var(--mj-self-panel-rows);align-items:end;gap:6px;display:grid}.mj-seat-top .mj-seat-panel,.mj-seat-left .mj-seat-panel,.mj-seat-right .mj-seat-panel,.mj-seat-bottom .mj-seat-panel{box-sizing:border-box;height:100%;min-height:0;overflow:hidden}.mj-seat-bottom .mj-seat-header{grid-area:header}.mj-seat-bottom .mj-seat-context{min-width:0;min-height:var(--mj-self-context-min-height);align-self:var(--mj-self-context-align);overflow-x:var(--mj-self-context-overflow-x);overflow-y:var(--mj-self-context-overflow-y);overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;grid-area:context}.mj-seat-bottom .mj-discard-river{max-width:var(--mj-self-river-max-width);box-sizing:border-box}.mj-seat-bottom .mj-player-hand-container{grid-area:hand}.mj-center-box{border:2px solid var(--mj-felt-border);text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#081c12eb;border-radius:16px;flex-direction:column;gap:10px;min-width:200px;max-width:280px;padding:14px 18px;display:flex;box-shadow:0 8px 24px #00000080}.mj-center-wind-banner{border-bottom:1px solid #d6b86a33;justify-content:center;align-items:center;gap:10px;padding-bottom:8px;display:flex}.mj-wind-badge{color:var(--mj-gold);border:1px solid var(--mj-gold);background:#d6b86a1f;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.3rem;font-weight:900;display:flex}.mj-dealer-info{color:var(--mj-text);flex-direction:column;align-items:flex-start;font-size:.8rem;display:flex}.mj-streak-badge{color:var(--mj-gold-light);font-size:.75rem;font-weight:700}.mj-center-stats{text-align:left;grid-template-columns:1fr 1fr;gap:8px;font-size:.8rem;display:grid}.mj-stat-item span:first-child{color:var(--mj-text-muted);margin-right:4px}.mj-stat-item span:last-child{color:var(--mj-gold);font-weight:700}.mj-current-turn-alert{color:#72e2a3;background:#38b26e26;border:1px solid #38b26e66;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:.8rem;font-weight:700;display:flex}.mj-discard-countdown{min-width:30px;color:var(--mj-gold-light);font-variant-numeric:tabular-nums;background:#d6b86a1f;border:1px solid #d6b86abf;border-radius:999px;padding:2px 7px}.mj-discard-countdown.is-urgent{color:#ffb4aa;background:#ff534926;border-color:#ff7b72}.mj-phase-tag{color:var(--mj-text-muted);letter-spacing:.05em;font-size:.75rem}.mj-seat-panel{border:1px solid var(--mj-felt-border);background:#0c2417bf;border-radius:12px;flex-direction:column;gap:6px;padding:10px;transition:border-color .2s,box-shadow .2s;display:flex}.mj-seat-panel.is-active-turn{border-color:var(--mj-gold);box-shadow:0 0 16px #d6b86a4d}.mj-seat-panel.is-self-seat{background:#10301ee0;border-width:2px}.mj-seat-header{justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.mj-seat-identity{align-items:center;gap:6px;display:flex}.mj-seat-wind-icon{width:22px;height:22px;color:var(--mj-gold-light);background:#19462e;border:1px solid #2d6b47;border-radius:4px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.mj-seat-wind-icon.is-dealer{color:#fcc;background:#872e2e;border-color:#d15656}.mj-seat-name{color:var(--mj-text);font-weight:700}.mj-self-badge{background:var(--mj-gold);color:#0d2417;border-radius:4px;padding:1px 4px;font-size:.65rem;font-weight:900}.mj-tile-count-badge{color:var(--mj-text-muted);font-size:.75rem}.mj-flowers-melds-row{flex-wrap:wrap;align-items:center;gap:8px;min-height:28px;display:flex}.mj-flower-pile,.mj-meld-group{background:#0003;border-radius:6px;align-items:center;gap:2px;padding:2px 4px;display:flex}.mj-meld-label{color:var(--mj-gold);margin-right:2px;font-size:.65rem}.mj-discard-river{background:#00000040;border:1px dashed #ffffff14;border-radius:8px;flex-wrap:wrap;gap:3px;max-width:260px;min-height:48px;padding:4px;display:flex}.mj-player-hand-container{background:#00000059;border-radius:12px;flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:4px;min-width:0;padding:8px;display:flex;overflow:hidden}.mj-regular-hand-group{flex-wrap:nowrap;align-items:flex-end;gap:3px;display:flex}.mj-seat-context{flex-direction:column;gap:6px;display:flex}.mj-player-hand-container .mj-tile{flex:none}.mj-drawn-tile-divider{flex:0 0 8px;width:8px}.mj-drawn-tile-slot{flex-direction:column;align-items:center;display:flex}.mj-drawn-badge{color:var(--mj-gold);margin-bottom:2px;font-size:.65rem;font-weight:700}.mj-opponent-hand{align-items:center;min-width:0;display:flex}.mj-opponent-hand.is-single-row{flex-wrap:nowrap;gap:1px;overflow:hidden}.mj-tile{box-shadow:1px 2px 4px var(--mj-tile-shadow);color:#1a1a1a;-webkit-user-select:none;user-select:none;cursor:default;box-sizing:border-box;background:linear-gradient(175deg,#fffff8 0%,#f4f0df 85%,#dcd5c0 100%);border:1px solid #beb69f;border-bottom:3px solid #8e856e;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;transition:transform .12s,box-shadow .12s,border-color .12s;display:inline-flex;position:relative}.mj-tile-xs{border-bottom-width:2px;border-radius:3px;flex:0 0 18px;width:18px;height:26px;font-size:.55rem}.mj-tile-sm{border-bottom-width:2px;border-radius:3px;width:22px;height:30px;font-size:.65rem}.mj-tile-md{border-bottom-width:3px;border-radius:5px;width:32px;height:44px;font-size:.85rem}.mj-tile-lg{border-bottom-width:4px;border-radius:6px;width:clamp(38px,3.7vw,44px);height:clamp(52px,5vw,60px);font-size:1.1rem}.mj-tile.is-tile-back{background:linear-gradient(145deg,#187747 0%,#0d4d2d 100%);border:1px solid #2d8f5b;border-bottom:3px solid #072917}.mj-tile.is-tile-back:after{content:"";background:#0000001a;border:1px solid #ffffff40;border-radius:3px;width:60%;height:60%}.mj-tile-image{z-index:2;object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.mj-tile.is-interactive{cursor:pointer}.mj-tile.is-interactive:hover:not(:disabled){border-color:var(--mj-gold);transform:translateY(-6px);box-shadow:0 8px 12px #0006}.mj-tile.is-selected{border-color:var(--mj-gold)!important;box-shadow:0 0 12px var(--mj-gold), 0 10px 16px #00000080!important;transform:translateY(-10px)!important}.mj-tile.is-last-discard{border-color:#e65050;box-shadow:0 0 10px #e65050cc}.mj-tile:disabled{opacity:.7;cursor:not-allowed}.mj-table-actions{left:16px;right:16px;bottom:var(--mj-action-bottom);height:var(--mj-action-height);z-index:20;position:absolute}.mj-action-toolbar{box-sizing:border-box;border:1px solid var(--mj-felt-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08180ff2;border-radius:14px;flex-wrap:nowrap;justify-content:center;align-items:center;gap:10px;width:100%;height:100%;margin:0;padding:10px 16px;display:flex}.mj-action-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 18px;font-size:1rem;font-weight:800;transition:all .12s;display:inline-flex;box-shadow:0 4px 10px #0000004d}.mj-btn-draw{color:#fff;background:linear-gradient(135deg,#2b7a4b,#195230);border:1px solid #43a36a}.mj-btn-discard{color:#fff;background:linear-gradient(135deg,#bf8c2c,#855c13);border:1px solid #e0aa48}.mj-btn-chow{color:#fff;background:linear-gradient(135deg,#2a6fb0,#144979);border:1px solid #4692dc}.mj-btn-pong{color:#fff;background:linear-gradient(135deg,#7c3aed,#511fa3);border:1px solid #9d64f7}.mj-btn-kong{color:#fff;background:linear-gradient(135deg,#c2410c,#832704);border:1px solid #eb6328}.mj-btn-win{color:#fff;background:linear-gradient(135deg,#dc2626,#991212);border:1px solid #f87171;padding:8px 24px;font-size:1.15rem;animation:1.5s infinite pulse-win}.mj-btn-ready{color:#102418;background:linear-gradient(135deg,#d5ad38,#8d6818);border:1px solid #ffe28a;box-shadow:0 0 14px #ffd65f52}@keyframes pulse-win{0%{transform:scale(1);box-shadow:0 0 #dc2626b3}70%{transform:scale(1.04);box-shadow:0 0 0 10px #dc262600}to{transform:scale(1);box-shadow:0 0 #dc262600}}.mj-btn-pass{color:#d1d5db;background:#374151;border:1px solid #4b5563}.mj-action-btn:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-2px)}.mj-action-btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.5);transform:none}.mj-chow-combinations-modal{border:2px solid var(--mj-gold);z-index:100;background:#0a1e14fa;border-radius:12px;flex-direction:column;gap:8px;padding:12px 16px;display:flex;position:absolute;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #000c}.mj-chow-options-list{flex-wrap:wrap;gap:8px;display:flex}.mj-chow-option-btn{cursor:pointer;background:#173826;border:1px solid #2b6143;border-radius:6px;gap:2px;padding:4px 6px;display:flex}.mj-chow-option-btn:hover:not(:disabled){border-color:var(--mj-gold);background:#204d34}.mj-ready-hints-modal{z-index:110;box-sizing:border-box;color:#f9edbd;border:2px solid var(--mj-gold);background:#081911fa;border-radius:12px;width:min(720px,100% - 32px);max-height:300px;padding:14px 16px;position:absolute;bottom:80px;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 14px 36px #000000d1}.mj-ready-hints-title{color:#ffe28a;margin-bottom:8px;font-size:1rem;display:block}.mj-ready-hints-list{gap:6px;margin-bottom:10px;display:grid}.mj-ready-hint-row,.mj-ready-waits{align-items:center;gap:5px;display:flex}.mj-ready-hint-row{background:#22523794;border:1px solid #d6b86a3d;border-radius:8px;min-height:40px;padding:5px 8px}.mj-ready-waits{flex-wrap:wrap}.mj-legacy-effect{z-index:30;pointer-events:none;place-items:center;animation:3.4s ease-out forwards mj-legacy-effect-fade;display:grid;position:absolute;inset:0;overflow:hidden}.mj-legacy-effect:before,.mj-legacy-effect:after,.mj-legacy-effect-glow{content:"";aspect-ratio:1;border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mj-legacy-effect:before{filter:blur(2px);background:radial-gradient(circle,#fff0b957,#bf74ff2e 38%,#0000 68%),conic-gradient(from 25deg,#0000,#f6b43d7a,#0000,#62d9ee57,#0000);width:62%;animation:2.8s linear forwards mj-legacy-effect-spin}.mj-legacy-effect:after{border:2px solid #ffd36bb8;width:38%;animation:1.8s ease-out forwards mj-legacy-effect-ring;box-shadow:0 0 32px #f6b43d61,inset 0 0 26px #bf74ff47}.mj-legacy-effect-glow{border:1px solid #62d9ee94;width:28%;animation:2.2s ease-out .15s forwards mj-legacy-effect-ring;box-shadow:0 0 22px #62d9ee47}.mj-legacy-effect strong{z-index:2;color:#ffe8a6;text-align:center;text-shadow:0 0 12px #ffdf8cb8,0 0 30px #f6b43d80,0 0 54px #bf74ff6b;background:linear-gradient(135deg,#080c14eb,#2b183ed1);border:1px solid #f6b43dbd;border-radius:12px;min-width:180px;padding:18px 28px;font-size:clamp(64px,9.5vw,132px);font-weight:1000;line-height:1;animation:3.1s ease-out forwards mj-legacy-effect-pop;position:relative;box-shadow:0 0 36px #f6b43d52,0 0 68px #7e57ff3d}.mj-legacy-effect.is-chow,.mj-legacy-effect.is-pong,.mj-legacy-effect.is-kong,.mj-legacy-effect.is-ready{animation-duration:2s}@keyframes mj-legacy-effect-fade{0%{opacity:0}8%{opacity:1}76%{opacity:1}to{opacity:0}}@keyframes mj-legacy-effect-pop{0%{opacity:0;filter:blur(3px);transform:translateY(16px)scale(.82)}16%{opacity:1;filter:blur();transform:translateY(0)scale(1.08)}34%{opacity:1;transform:translateY(0)scale(1)}76%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.96)}}@keyframes mj-legacy-effect-ring{0%{opacity:0;transform:translate(-50%,-50%)scale(.46)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.85)}}@keyframes mj-legacy-effect-spin{0%{opacity:0;transform:translate(-50%,-50%)rotate(0)scale(.72)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)rotate(280deg)scale(1.08)}}@media (prefers-reduced-motion:reduce){.mj-legacy-effect,.mj-legacy-effect:before,.mj-legacy-effect:after,.mj-legacy-effect-glow,.mj-legacy-effect strong{animation:none}}.mj-result-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:999;box-sizing:border-box;background:#000000bf;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.mj-result-card{border:2px solid var(--mj-gold);box-sizing:border-box;background:linear-gradient(160deg,#112d1f 0%,#0a1c13 100%);border-radius:20px;flex-direction:column;gap:16px;width:min(520px,100%);padding:24px;display:flex;box-shadow:0 24px 60px #000c}.mj-result-header{text-align:center;border-bottom:1px solid #d6b86a40;padding-bottom:12px}.mj-result-header h3{color:var(--mj-gold-light);margin:4px 0;font-size:1.8rem}.mj-result-subtitle{color:var(--mj-text-muted);margin:0;font-size:.9rem}.mj-winner-reveal{background:#00000040;border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.mj-winner-reveal-label{color:#8fa89b;font-size:.8rem}.mj-winner-reveal-tiles{flex-wrap:wrap;align-items:center;gap:4px;display:flex;overflow-x:auto}.mj-tai-breakdown{background:#00000040;border-radius:8px;flex-direction:column;gap:6px;max-height:180px;padding:8px;display:flex;overflow-y:auto}.mj-tai-item{justify-content:space-between;padding:2px 0;font-size:.9rem;display:flex}.mj-tai-total-row{color:var(--mj-gold);border-top:1px solid #ffffff1a;justify-content:space-between;margin-top:4px;padding-top:6px;font-size:1.1rem;font-weight:800;display:flex}.mj-seat-scores-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.mj-seat-score-box{background:#0003;border:1px solid #ffffff14;border-radius:8px;padding:6px 4px;font-size:.8rem}.mj-score-delta-win{color:#4ade80;font-weight:800}.mj-score-delta-loss{color:#f87171;font-weight:800}.mj-next-hand-ready{background:#0000002e;border:1px solid #ffffff14;border-radius:8px;grid-template-columns:repeat(2,1fr);gap:6px;padding:8px;font-size:.78rem;display:grid}.mj-next-hand-ready-seat{color:#8fa89b;justify-content:space-between;align-items:center;gap:8px;display:flex}.mj-next-hand-ready-yes{color:#4ade80;font-weight:800}.mj-next-hand-ready-no{color:#d6b86a;font-weight:700}.mj-next-hand-auto{text-align:center;color:#8fa89b;margin:0;font-size:.8rem}.mj-result-actions{justify-content:center;gap:12px;margin-top:8px;display:flex}.mj-btn-next-hand{background:linear-gradient(135deg, var(--mj-gold), #aa8536);color:#0d2417;cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:1rem;font-weight:900;transition:all .15s}.mj-btn-next-hand:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-2px)}@media (width>=1280px) and (height<=767px){.mahjong-practice-root{padding-block:4px}.mj-practice-banner{margin-bottom:4px;padding-block:4px}}@media (orientation:portrait),(width<=1279px){.mj-game-viewport{display:none}.mj-viewport-warning{display:block}.mahjong-practice-root{place-items:center;max-width:none;min-height:100dvh;padding:24px;display:grid}}.mahjong-practice-root :focus-visible{outline:2px solid var(--mj-gold);outline-offset:2px}.mj-tile.is-interactive:focus-visible{outline:3px solid var(--mj-gold);outline-offset:3px;box-shadow:0 0 12px var(--mj-gold);transform:translateY(-6px)}.mj-action-btn:focus-visible,.mj-btn-exit:focus-visible,.mj-btn-next-hand:focus-visible,.mj-chow-option-btn:focus-visible{outline:2px solid var(--mj-gold-light);outline-offset:2px;box-shadow:0 0 8px var(--mj-gold)}.mj-legacy-root{color:#f8efd5;background:#050b12;place-items:center;min-height:100vh;display:grid;overflow:hidden}.mj-legacy-root [hidden]{display:none!important}.mj-legacy-stage{zoom:var(--mj-stage-scale,1);background:radial-gradient(circle at 50% 18%,#2a725c33,#0000 34%),linear-gradient(#07151e,#04080d);width:1280px;height:720px;position:relative;overflow:hidden}.mj-legacy-stage.is-table .mahjong-practice-root{width:100%;max-width:none;height:100%;min-height:0;margin:0;padding:8px}.mj-legacy-stage.is-table .mahjong-practice-root>.mj-viewport-warning{display:none}.mj-legacy-stage.is-table .mj-game-viewport{flex-direction:column;height:100%;min-height:0;display:flex}.mj-legacy-stage.is-table .mj-practice-banner{flex:none;margin-bottom:8px}.mj-legacy-stage.is-table .mj-table-container{aspect-ratio:auto;flex:auto;grid-template-rows:minmax(0,1fr) auto;align-content:stretch;height:auto;min-height:0;display:grid}.mj-legacy-stage.is-table .mj-table-layout{box-sizing:border-box;grid-template-rows:repeat(3,minmax(0,1fr));min-height:0;padding-bottom:56px}.mj-legacy-stage.is-table .mj-action-toolbar{margin-top:0;padding-block:6px}.mj-legacy-stage.is-table .mj-seat-panel{gap:3px;padding:6px}.mj-legacy-stage.is-table .mj-player-hand-container{padding:3px}.mj-legacy-stage.is-table .mj-tile-lg{width:32px;height:44px}.mj-legacy-viewport-warning{color:#ffe4a6;text-align:center;background:#09131c;border:1px solid #b68b3d;border-radius:16px;max-width:560px;padding:32px;display:none}.mj-legacy-viewport-warning>strong{display:block}.mj-legacy-warning-home{color:#ffe4a6;background:#17382d;border:1px solid #b68b3d;border-radius:8px;justify-content:center;align-items:center;min-height:44px;margin-top:20px;padding:0 28px;font-weight:700;text-decoration:none;display:inline-flex}.mj-legacy-warning-home:hover{background:#23503f}.mj-legacy-warning-home:focus-visible{outline-offset:4px;outline:2px solid #ffe4a6}.mj-legacy-lobby{box-sizing:border-box;background:linear-gradient(180deg, #0209101a, #02070de0), var(--mj-legacy-lobby-background) center / cover;grid-template-rows:auto auto minmax(0,1fr) auto;height:100%;min-height:0;padding:28px 44px 34px;display:grid}.mj-legacy-header,.mj-legacy-waiting>header{background:#041119e6;border:1px solid #d5ad5373;border-radius:12px;grid-template-columns:auto auto minmax(260px,1fr) auto auto;align-items:center;gap:14px;min-height:84px;padding:0 24px;display:grid}.mj-legacy-root .mj-legacy-back{align-items:center;gap:8px;min-height:36px;padding:0 12px;display:inline-flex}.mj-legacy-back img{object-fit:contain;width:18px;height:18px}.mj-legacy-crest{object-fit:contain;filter:drop-shadow(0 0 10px #f6b43d4d);width:48px;height:48px}.mj-legacy-title{min-width:0}.mj-legacy-safe-chip{background:#05121cb8;border:1px solid #62d9ee33;border-radius:8px;grid-template-columns:auto auto;align-items:center;gap:1px 8px;min-width:134px;padding:8px 10px;display:grid}.mj-legacy-safe-chip img{object-fit:contain;grid-row:1/3;width:28px;height:28px}.mj-legacy-safe-chip strong{color:#ffe095;white-space:nowrap;font-size:12px}.mj-legacy-header p,.mj-legacy-header h1,.mj-legacy-header span,.mj-legacy-waiting h1{margin:0}.mj-legacy-header p,.mj-legacy-waiting header span{color:#d9ab4c;letter-spacing:.16em;font-size:11px;font-weight:900}.mj-legacy-header h1,.mj-legacy-waiting h1{color:#fff7dc;margin-right:14px;font-size:28px;display:inline-block}.mj-legacy-header span{color:#a7b7b5;font-size:13px}.mj-legacy-root button:not(.mj-tile){color:#fff3cf;min-height:40px;font:inherit;cursor:pointer;background:linear-gradient(#253a3b,#112322);border:1px solid #dfb85b85;border-radius:8px;padding:0 18px;font-weight:800}.mj-legacy-root button:not(.mj-tile):disabled{cursor:not-allowed;opacity:.4}.mj-legacy-rate{background:#05141bd1;border:1px solid #d5ad534d;border-radius:10px;align-items:center;gap:18px;margin:20px 0 16px;padding:15px 20px;display:flex}.mj-legacy-rate>img{object-fit:contain;width:40px;height:40px}.mj-legacy-rate>div{gap:2px;display:grid}.mj-legacy-rate>em{margin-left:auto}.mj-legacy-rate span,.mj-legacy-rate em{color:#a9b9b4;font-style:normal}.mj-legacy-rate strong{color:#ffda80;font-size:20px}.mj-legacy-room-grid{scrollbar-gutter:stable;grid-template-columns:repeat(4,1fr);align-content:start;gap:16px;min-height:0;display:grid;overflow-y:auto}.mj-legacy-room-card{background:linear-gradient(160deg,#143332f5,#051219f5);border:1px solid #d6ae4c6b;border-radius:14px;min-height:246px;padding:22px;box-shadow:0 20px 42px #00000040}.mj-legacy-room-card>div{color:#95aaa5;justify-content:space-between;font-size:12px;display:flex}.mj-legacy-room-card b,.mj-legacy-room-card small{color:#f1c96d}.mj-legacy-room-card h2{color:#fff3cb;margin:42px 0 20px;font-size:25px}.mj-legacy-room-card p{color:#d3dfd9}.mj-legacy-quick-actions{grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;display:grid}.mj-legacy-quick-actions button{text-align:left;grid-template-rows:auto auto;grid-template-columns:58px 1fr;align-content:center;column-gap:14px;min-height:92px;display:grid}.mj-legacy-quick-actions img{object-fit:contain;grid-row:1/3;align-self:center;width:52px;height:52px}.mj-legacy-quick-actions strong,.mj-legacy-quick-actions span{display:block}.mj-legacy-quick-actions strong{margin-bottom:5px;font-size:20px}.mj-legacy-quick-actions span{color:#b5c7c1}.mj-legacy-quick-actions .is-create,.mj-legacy-root .is-primary{color:#211500;background:linear-gradient(#ffe29a,#c99535);border-color:#dbb458}.mj-legacy-settings{z-index:20;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#00050ac7;place-items:center;display:grid;position:absolute;inset:0}.mj-legacy-settings-card{background:linear-gradient(#10262b,#071219);border:1px solid #d4a84e;border-radius:18px;width:720px;padding:28px;box-shadow:0 34px 90px #0000008c}.mj-legacy-settings-card header span{color:#d3a449;letter-spacing:.15em;font-size:11px;font-weight:900}.mj-legacy-settings-card h2{margin:4px 0 20px;font-size:28px}.mj-legacy-settings-card fieldset{border:1px solid #d8b15347;border-radius:10px;margin:0 0 16px;padding:14px}.mj-legacy-settings-card legend{color:#f0ce79;padding:0 8px;font-weight:900}.mj-legacy-settings-card fieldset div{flex-wrap:wrap;gap:9px;display:flex}.mj-legacy-root .mj-legacy-settings-card .mj-legacy-settings-option{border-width:2px;border-color:#dfb85b57;padding:0 14px}.mj-legacy-root .mj-legacy-settings-card .mj-legacy-settings-option[aria-pressed=true]{color:#1b1304;background:linear-gradient(#f2d187,#e0ac45);border-color:#ffe090;box-shadow:0 0 0 1px #ffe09080,0 8px 18px #00000059}.mj-legacy-root .mj-legacy-settings-card .mj-legacy-settings-option:hover{border-color:#ffe090b8}.mj-legacy-settings-check{opacity:0;width:1em;margin-right:5px;font-weight:900;display:inline-block}.mj-legacy-settings-option[aria-pressed=true] .mj-legacy-settings-check{opacity:1}.mj-legacy-root .mj-legacy-settings-card button:focus-visible{outline-offset:2px;outline:3px solid #ffe090}.mj-legacy-settings-card footer,.mj-legacy-waiting footer{justify-content:flex-end;gap:12px;margin-top:22px;display:flex}.mj-legacy-waiting{background:radial-gradient(circle at 50% 40%,#247e5b38,#0000 34%),linear-gradient(#081923,#030910);min-height:100%;padding:42px 64px}.mj-legacy-room-settings{justify-content:center;gap:12px;margin:28px 0;display:flex}.mj-legacy-room-settings strong{color:#f5d27e;background:#0d2527cc;border:1px solid #d8b15359;border-radius:999px;padding:9px 15px}.mj-legacy-seat-grid{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.mj-legacy-seat-grid article{background:#071a1fe6;border:1px solid #d2aa4c5c;border-radius:18px;align-content:center;justify-items:center;gap:18px;min-height:290px;display:grid}.mj-legacy-seat-grid article:before{content:"";background:radial-gradient(circle,#397e69,#0b242a);border:3px solid #265f54;border-radius:50%;width:96px;height:96px}.mj-legacy-seat-grid .is-empty{opacity:.55}.mj-legacy-seat-grid span{color:#9fb2ad;font-size:12px}.mj-legacy-seat-grid strong{color:#ffe59c}@media (orientation:portrait){.mj-legacy-viewport-warning{display:block}.mj-legacy-stage{display:none}}.mj-legacy-root button.mj-legacy-safe-chip{color:#a7b7b5;text-align:left;background:#05121cb8;border:1px solid #62d9ee33;border-radius:8px;min-height:0;padding:8px 10px;font-weight:400}.mj-legacy-root button.mj-legacy-safe-chip[aria-pressed=true]{background:#132c28e6;border-color:#ffe090d9}.mj-legacy-root button.mj-legacy-safe-chip:disabled{opacity:1}.mj-legacy-root button.mj-legacy-room-card,.mj-legacy-room-card.mj-legacy-room-code{color:#d3dfd9;text-align:left;background:linear-gradient(160deg,#143332f5,#051219f5);border:1px solid #d6ae4c6b;border-radius:14px;min-height:246px;padding:22px;font-weight:400;display:block;box-shadow:0 20px 42px #00000040}.mj-legacy-root button.mj-legacy-room-card[data-joinable=true]:hover,.mj-legacy-root button.mj-legacy-room-card[data-joinable=true]:focus-visible{border-color:#ffe090;box-shadow:0 20px 42px #00000040,0 0 0 1px #ffe0908c}.mj-legacy-root button.mj-legacy-room-card[data-joinable=false]{opacity:.45;cursor:not-allowed}.mj-legacy-root button.mj-legacy-room-card[data-joinable=false]:focus-visible{border-color:#ffe0908c;box-shadow:0 20px 42px #00000040,0 0 0 1px #ffe0904d}.mj-legacy-room-empty{color:#b5c7c1;background:#051219b8;border:1px dashed #d6ae4c6b;border-radius:14px;grid-column:1/-1;margin:0;padding:22px}.mj-legacy-room-code label{margin:14px 0 12px;display:block}.mj-legacy-room-code label span{color:#95aaa5;margin-bottom:6px;font-size:12px;display:block}.mj-legacy-room-code input,.mj-legacy-login-field input{color:#fff3cf;width:100%;min-height:38px;font:inherit;background:#030c12d9;border:1px solid #d8b15359;border-radius:8px;padding:0 12px}.mj-legacy-room-code-error{color:#ffb1a3;margin:12px 0 0;font-size:12px;line-height:1.5}.mj-legacy-room-code-chip{background:#0d2527cc;border:1px solid #d8b15359;border-radius:999px;align-items:center;gap:8px;padding:4px 6px 4px 15px;display:flex}.mj-legacy-room-code-chip span{color:#95aaa5;font-size:12px}.mj-legacy-room-code-chip input{color:#f5d27e;width:300px;min-height:30px;font:inherit;background:#030c12d9;border:1px solid #d8b15359;border-radius:999px;padding:0 12px;font-size:13px}.mj-legacy-waiting-hint{color:#b5c7c1;align-self:center;margin:0}.mj-legacy-waiting-hint:first-child{margin-right:auto}.mj-legacy-waiting-hint.is-error{color:#ffb1a3}.mj-legacy-lobby-error{z-index:15;color:#ffb1a3;background:#1c0707e6;border:1px solid #ff96828c;border-radius:8px;margin:0;padding:10px 16px;position:absolute;bottom:24px;right:34px}.mj-legacy-login-card{width:480px}.mj-legacy-login-card .mj-legacy-login-return,.mj-legacy-login-card .mj-legacy-login-return:visited{color:#fff2c2;min-height:44px;font:inherit;background:#24443e;border:1px solid #e6c46d;border-radius:8px;justify-content:center;align-items:center;padding:10px 18px;font-weight:700;text-decoration:none;display:inline-flex}.mj-legacy-login-card .mj-legacy-login-return:hover{background:#355b50}.mj-legacy-login-card .mj-legacy-login-return:focus-visible{outline-offset:4px;outline:3px solid #fff2c2}.mj-legacy-login-card fieldset div{display:block}.mj-legacy-login-note{color:#b5c7c1;margin:0;font-size:13px}.mj-legacy-login-note[role=alert]{color:#ffb1a3}.mj-legacy-table-count{color:#e6d3a3;letter-spacing:.04em;white-space:nowrap;background:#d5ad531a;border:1px solid #d5ad5357;border-radius:999px;padding:3px 10px;font-size:13px}:root{color:#f6f3ea;font-synthesis:none;text-rendering:optimizelegibility;background:#091510;font-family:Inter,Noto Sans TC,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 85% 10%,#42684d47,#0000 35%),linear-gradient(160deg,#091510 0%,#07100c 100%);min-width:320px;min-height:100vh;margin:0}main{width:min(1120px,100% - 32px);margin:0 auto;padding:64px 0 32px}.hero{max-width:720px;margin-bottom:56px}.eyebrow,.section-kicker{color:#d6b86a;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}h1{letter-spacing:-.05em;margin:8px 0 16px;font-size:clamp(2.75rem,8vw,5.5rem);line-height:1}.intro{color:#b9c8be;margin:0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;display:flex}h2{margin:6px 0 0;font-size:1.75rem}.beta-note{color:#83988a;margin:0;font-size:.9rem}.game-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.game-card{background:linear-gradient(145deg,#12291d 0%,#0d1e16 100%);border:1px solid #2d4638;border-radius:18px;min-height:170px;padding:24px;position:relative;overflow:hidden;box-shadow:0 18px 45px #00000024}.game-card:after{content:"";border:1px solid #d6b86a2e;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-48px;right:-32px}.game-number{color:#617668;letter-spacing:.12em;font-size:.78rem;font-weight:800}.game-card h3{margin:22px 0 12px;font-size:1.3rem}.status{color:#d6b86a;margin:0;font-size:.9rem;font-weight:800}.practice-link{z-index:1;color:#f6e7b3;border:1px solid #d6b86a;border-radius:999px;margin-top:18px;padding:9px 14px;font-size:.86rem;font-weight:800;text-decoration:none;display:inline-flex;position:relative}.practice-link:hover,.practice-link:focus-visible{color:#091510;background:#d6b86a}.mj-practice-error{z-index:20;color:#ffe1d9;background:#3a1711;border:1px solid #e07b67;border-radius:10px;max-width:min(680px,100% - 32px);margin:0;padding:10px 16px;position:fixed;top:12px;left:50%;transform:translate(-50%)}footer{color:#657a6c;letter-spacing:.08em;border-top:1px solid #1d3226;margin-top:48px;padding-top:20px;font-size:.72rem}@media (width<=560px){main{padding-top:40px}.section-heading{flex-direction:column;align-items:start;gap:8px}}
