/* Original game art rendered with CSS, symbols, and native layout. */
.mj-catalog-game{--cg-gold:#ffe7a0;--cg-glow:#ecae39;position:relative;isolation:isolate;min-height:100%;height:100%;width:100%;display:grid;grid-template-rows:auto auto minmax(180px,1fr) auto;gap:clamp(8px,1.4vh,16px);padding:clamp(12px,2vw,24px);overflow:hidden;color:#fff6dc;background:radial-gradient(ellipse at 50% 20%,#70372677,transparent 70%),linear-gradient(160deg,#1d0713,#060309)}
.mjcg-heading{text-align:center;position:relative;z-index:2}.mjcg-heading>span{font-size:10px;letter-spacing:.25em;font-weight:800;color:var(--cg-gold)}.mjcg-heading h2{margin:3px 0;font-family:Georgia,serif;font-size:clamp(24px,3.7vw,49px);line-height:1.1;letter-spacing:.02em;color:#fff0bf;text-shadow:0 3px #50331e,0 0 25px #edbc5266}.mjcg-heading p{margin:5px 0 0;font-size:10px;letter-spacing:.14em;color:#c8b795}.mjcg-heading b{margin-left:14px;color:#ffdc7c}
.mjcg-selection{display:flex;justify-content:center;gap:12px;z-index:2}.mjcg-pick{min-width:100px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 20px;border:1px solid #b0944966;border-radius:14px;background:#ffffff09;color:#ecd7aa;font:700 12px system-ui;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.mjcg-pick:hover{background:#ffffff15}.mjcg-pick.is-selected{border-color:#ffe39a;background:#e2af3620;box-shadow:0 0 20px #e2af3620}.mjcg-pick:focus-visible{outline:3px solid white;outline-offset:2px}
.mjcg-lamp{--lamp:#f25556;width:34px;height:39px;display:block;position:relative;border-radius:44%;background:repeating-linear-gradient(90deg,transparent 0 8px,#ffe3ab60 9px 10px),radial-gradient(circle,#ffc965,var(--lamp) 65%,#4b1015);box-shadow:0 0 18px var(--lamp)}.mjcg-lamp:before,.mjcg-lamp:after{content:"";position:absolute;left:8px;right:8px;height:4px;background:#ffdf86;border-radius:2px}.mjcg-lamp:before{top:-3px}.mjcg-lamp:after{bottom:-3px}.mjcg-lamp em{position:absolute;left:15px;top:43px;width:5px;height:7px;background:#dfb966}.mjcg-lamp.mjcg-jade{--lamp:#26cc88}.mjcg-lamp.mjcg-sapphire{--lamp:#4089f7}
.mjcg-cabinet{position:relative;align-self:center;justify-self:center;max-height:100%;width:min(860px,92%);min-height:180px;padding:14px;border:3px solid #dcb76c;border-radius:24px;background:linear-gradient(130deg,#ffeaa260,#7d441838 25%,#fff0b533 60%,#ad773650);box-shadow:0 0 0 6px #41201b,0 18px 55px #0008,0 0 35px #f4b23a20}
.mjcg-reels{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:5px;padding:5px;border-radius:12px;background:#09050d;position:relative;overflow:hidden}.mjcg-cell{height:clamp(46px,9.8vh,94px);min-width:0;display:grid;place-items:center;border-radius:9px;background:linear-gradient(180deg,#442619,#190d09);border:1px solid #cf995329;overflow:hidden}.mjcg-cell:not(.is-payline){opacity:.65}.mjcg-cell.is-payline{background:radial-gradient(circle,#ba642e55,#241108);border-color:#ffd479aa;box-shadow:0 0 12px #ffd47925 inset}.mjcg-symbol{display:block;font-family:Georgia,serif;font-size:clamp(29px,4.5vw,65px);line-height:1;text-shadow:0 3px 0 #0006,0 0 15px currentColor}.mjcg-symbol-ruby{color:#ff5067}.mjcg-symbol-jade{color:#40efa7}.mjcg-symbol-sapphire{color:#66aeff}.mjcg-symbol-diamond{color:#8af5ff}.mjcg-symbol-seven{color:#ff576c;font-family:Impact,sans-serif}.mjcg-symbol-crown{color:#ffdd76}.mjcg-payline-label{position:absolute;left:50%;top:-19px;transform:translateX(-50%);padding:5px 12px;border-radius:6px;background:#41201b;border:1px solid #ddba72;color:#fff2c0;font:800 9px system-ui;letter-spacing:.15em;white-space:nowrap}.mjcg-payline-arrow{position:absolute;right:-15px;top:50%;transform:translateY(-50%);color:#ffe096;font-size:24px;filter:drop-shadow(0 0 5px #f8bd3a)}
.mjcg-status{position:relative;z-index:2;text-align:center;background:#0007;border:1px solid #ffffff15;border-radius:12px;padding:9px 14px}.mjcg-status strong{color:#ffe39a;font:800 clamp(12px,1.3vw,17px) system-ui;letter-spacing:.1em}.mjcg-status p{margin:4px 0 0;font:12px/1.4 system-ui;color:#d4c4a9}.mjcg-ambience{position:absolute;inset:0;z-index:-1;pointer-events:none}.mjcg-ambience i{position:absolute;width:190px;height:190px;border-radius:50%;filter:blur(55px);opacity:.12;background:#f63661}.mjcg-ambience i:first-child{top:10%;left:-60px}.mjcg-ambience i:nth-child(2){right:-60px;bottom:20%;background:#3289ff}.mjcg-ambience i:nth-child(3){left:40%;bottom:-70px;background:#eab33b}
.mjcg-mahjong{background:radial-gradient(ellipse at 50% 15%,#236d4870,transparent 65%),linear-gradient(160deg,#062d23,#04140f)}.mjcg-mahjong .mjcg-cabinet{border-color:#90c797;background:linear-gradient(130deg,#28684e,#122f24);box-shadow:0 0 0 6px #082418,0 18px 55px #0008}.mjcg-mahjong .mjcg-cell{background:linear-gradient(180deg,#fff8e1,#c8cda8);border-color:#537f69;box-shadow:0 4px 0 #71917b}.mjcg-mahjong .mjcg-cell.is-payline{opacity:1;border:2px solid #f5d682;box-shadow:0 0 18px #ffdc7044}.mjcg-symbol-dragon{color:#b7162c;text-shadow:none}.mjcg-symbol-bamboo{color:#126744;text-shadow:none}.mjcg-symbol-circles{color:#174f96;text-shadow:none}.mjcg-mahjong .mjcg-symbol-circles{background:radial-gradient(circle,#efda81 12%,#256aa1 13% 29%,transparent 30%);font-size:55px}.mjcg-mahjong .mjcg-payline-label{background:#082418}
.mjcg-diamond{--cg-glow:#9672ff;background:radial-gradient(ellipse at 50% 25%,#42276c99,transparent 65%),linear-gradient(160deg,#10041f,#050811)}.mjcg-diamond .mjcg-heading h2{font-family:Impact,system-ui;font-style:italic;letter-spacing:.07em;text-shadow:0 3px #531767,0 0 28px #e637bb88}.mjcg-diamond .mjcg-cabinet{border-color:#bf91ff;background:linear-gradient(130deg,#ba61e466,#181341,#4fdfe44d);box-shadow:0 0 0 6px #1a1038,0 18px 55px #0008,0 0 22px #cc73ff55}.mjcg-diamond .mjcg-cell{background:linear-gradient(180deg,#283651,#070d20);border-color:#868ddd55}.mjcg-diamond .mjcg-cell.is-payline{border-color:#bbebff;box-shadow:0 0 20px #72f2ff33 inset}.mjcg-diamond .mjcg-payline-label{background:#201437;border-color:#bf91ff}
.phase-playing .mjcg-symbol{animation:mjcgReel .2s linear infinite;animation-delay:calc(var(--reel)*-.04s);filter:blur(4px)}.phase-playing .mjcg-selection{pointer-events:none;opacity:.6}.mj-catalog-game.is-win .mjcg-cell.is-payline{animation:mjcgGlow .65s ease-in-out 3}.mj-catalog-game.is-win .mjcg-status strong{color:#8cffb6}
.mjcg-stadium{grid-template-rows:auto minmax(190px,1fr) auto;background:radial-gradient(ellipse at 50% 0,#294b8788,transparent 65%),linear-gradient(#070f20,#03261c)}.mjcg-stadium .mjcg-heading h2{font-family:Impact,system-ui;text-transform:uppercase;font-style:italic;letter-spacing:.05em}.mjcg-field{position:relative;overflow:hidden;border-radius:20px;border:1px solid #74b69866;background:repeating-linear-gradient(0deg,#0c754f 0 34px,#116d4b 35px 68px);box-shadow:0 12px 45px #0007 inset}.mjcg-crowd{position:absolute;inset:0 0 66%;background:radial-gradient(circle,#dbe6fc55 0 1px,transparent 2px) 0 0/10px 12px,linear-gradient(#102239,#081b2d);border-bottom:10px solid #a8bcc9}.mjcg-goal{position:absolute;left:12%;right:12%;top:12%;height:42%;border:7px solid #eaf3fd;border-bottom:3px solid #c6dadc;border-radius:5px 5px 0 0;box-shadow:0 6px 15px #0008;transform:perspective(800px) rotateX(6deg)}.mjcg-net{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#ddefff38 0 1px,transparent 1px 15px),repeating-linear-gradient(90deg,#ddefff38 0 1px,transparent 1px 18px),#061e2260}.mjcg-targets{position:absolute;inset:15% 4%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.mjcg-targets .mjcg-pick{min-width:0;border:1px dashed #deedfc99;border-radius:50%;padding:5px;background:#0001;font-size:12px}.mjcg-targets .mjcg-pick.is-selected{border:2px solid #ffd678;background:#e8b12e22;box-shadow:0 0 30px #fccc3444}.mjcg-penalty-mark{position:absolute;left:50%;bottom:14%;width:11px;height:4px;border-radius:50%;background:#fff;transform:translateX(-50%)}.mjcg-ball{position:absolute;left:50%;bottom:13%;transform:translateX(-50%);font-size:clamp(34px,4vw,58px);line-height:1;filter:drop-shadow(0 6px 4px #0008);z-index:4}.mjcg-keeper{position:absolute;left:50%;top:39%;transform:translate(-50%,-50%);width:70px;height:90px;z-index:3;pointer-events:none}.mjcg-keeper i{position:absolute;left:27px;top:0;width:18px;height:18px;border-radius:50%;background:#e7b997}.mjcg-keeper b{position:absolute;left:24px;top:19px;width:25px;height:33px;border-radius:6px;background:#ffb31b;box-shadow:0 0 0 1px #533b07}.mjcg-keeper b:before,.mjcg-keeper b:after{content:"";position:absolute;top:4px;width:27px;height:8px;background:#ffb31b;border-radius:5px}.mjcg-keeper b:before{left:-23px;transform:rotate(-20deg)}.mjcg-keeper b:after{right:-23px;transform:rotate(20deg)}.mjcg-keeper em{position:absolute;left:26px;top:51px;width:9px;height:29px;background:#203052;border-radius:4px;transform:rotate(12deg);box-shadow:14px -3px 0 #203052}.phase-playing .mjcg-ball{animation:mjcgShot 1.8s ease-in .25s forwards}.phase-playing .mjcg-keeper{animation:mjcgDive 1.2s ease-out .65s forwards}.phase-result .mjcg-ball{left:var(--shot-x);bottom:60%;font-size:28px}.phase-result .mjcg-keeper{left:var(--keeper-x);transform:translate(-50%,-50%) rotate(-15deg)}.mjcg-stadium.phase-playing .mjcg-targets{pointer-events:none}.mjcg-stadium.is-win .mjcg-goal{box-shadow:0 0 25px #91ffb188}
.mjcg-card{position:relative;isolation:isolate;display:grid!important;place-content:center!important;text-align:center;gap:10px;overflow:hidden;background:radial-gradient(circle,#803418,#170813 75%);color:#fff4cf}.mjcg-card strong{z-index:2;font-size:54px;line-height:1.2;color:#ffe8a0;text-shadow:0 0 25px #fd993b}.mjcg-card>span{font:800 19px Georgia,serif;z-index:2}.mjcg-card>small{font:800 9px system-ui;letter-spacing:.16em;z-index:2;color:#e6c677}.mjcg-card.mjcg-mahjong{background:radial-gradient(circle,#357152,#061a12 75%)}.mjcg-card.mjcg-diamond{background:radial-gradient(circle,#511b85,#100825 75%)}.mjcg-card.mjcg-diamond strong{color:#9df4ff;font:italic 55px Impact,system-ui}.mjcg-card.mjcg-stadium{background:linear-gradient(#0c2443,#06482f)}.mjcg-card-orbit{position:absolute;left:50%;top:50%;width:170px;height:170px;transform:translate(-50%,-50%);border:1px solid #ffecac33;border-radius:50%;box-shadow:0 0 0 15px #ffffff03,0 0 0 35px #ffffff02}
@keyframes mjcgReel{from{transform:translateY(-14px)}to{transform:translateY(14px)}}@keyframes mjcgGlow{50%{filter:brightness(1.5)}}@keyframes mjcgShot{to{left:var(--shot-x);bottom:60%;font-size:28px;transform:translateX(-50%) rotate(180deg)}}@keyframes mjcgDive{to{left:var(--keeper-x);transform:translate(-50%,-50%) rotate(-15deg)}}
@media(max-width:760px){.mj-catalog-game{padding:12px 8px;grid-template-rows:auto auto minmax(155px,1fr) auto;gap:10px}.mjcg-heading>span{font-size:8px;letter-spacing:.13em}.mjcg-heading h2{font-size:27px}.mjcg-heading p{font-size:8px;letter-spacing:.06em}.mjcg-heading b{margin-left:5px}.mjcg-selection{gap:6px}.mjcg-pick{min-width:0;flex:1;padding:7px 8px;gap:7px;font-size:10px}.mjcg-lamp{width:26px;height:32px;flex-shrink:0}.mjcg-lamp em{left:11px;top:35px}.mjcg-cabinet{width:95%;padding:7px;min-height:155px;border-radius:15px}.mjcg-reels{gap:3px;padding:3px}.mjcg-cell{height:clamp(43px,9vh,76px);border-radius:6px}.mjcg-symbol{font-size:clamp(24px,8vw,39px)}.mjcg-status{padding:8px}.mjcg-status p{font-size:10px}.mjcg-payline-label{font-size:8px;padding:4px 8px;top:-17px}.mjcg-payline-arrow{right:-11px;font-size:18px}.mjcg-stadium{grid-template-rows:auto minmax(190px,1fr) auto}.mjcg-goal{left:6%;right:6%;border-width:5px}.mjcg-targets{inset:12% 2%;gap:3px}.mjcg-targets .mjcg-pick{font-size:10px}.mjcg-field{border-radius:12px}}
@media(max-height:620px) and (orientation:landscape){.mj-catalog-game{grid-template-rows:auto minmax(110px,1fr) auto;padding:7px 14px;gap:6px}.mjcg-heading h2{font-size:22px}.mjcg-heading>span,.mjcg-heading p,.mjcg-selection{display:none}.mjcg-cabinet{width:min(600px,84%);min-height:110px;padding:5px}.mjcg-reels{gap:2px;padding:2px}.mjcg-cell{height:clamp(28px,8vh,52px)}.mjcg-symbol{font-size:28px}.mjcg-status{padding:5px 8px}.mjcg-status strong{font-size:10px}.mjcg-status p{font-size:9px;margin-top:2px}.mjcg-stadium{grid-template-rows:auto minmax(110px,1fr) auto}.mjcg-keeper{scale:.7;transform-origin:top center}.mjcg-ball{font-size:29px}.mjcg-targets .mjcg-pick{min-height:0;font-size:9px}}
/* Reels fit their allocated grid row at every viewport height. */
.mjcg-rules{display:none}
@media(max-width:760px) and (orientation:portrait){.mjcg-rules{display:block;position:absolute;right:0;top:0;padding:4px 6px;border:1px solid #ffffff30;border-radius:6px;color:#fff0bf;background:#0005;font:700 9px system-ui;cursor:pointer}.mjcg-rules:focus-visible{outline:2px solid white;outline-offset:2px}}
.mjcg-targets{z-index:5}
.mjcg-targets .mjcg-pick span{padding:3px 7px;border-radius:6px;background:#051b25ad}
.mjcg-floodlights{position:absolute;inset:0 0 auto;height:45%;pointer-events:none;z-index:-1;background:conic-gradient(from 150deg at 5% 0%,transparent 0deg,#c7e6ff12 14deg,transparent 28deg),conic-gradient(from 185deg at 95% 0%,transparent 0deg,#c7e6ff12 14deg,transparent 28deg)}
.mjcg-cabinet{height:100%;min-height:0}
.mjcg-reels{height:100%;grid-template-rows:repeat(3,minmax(0,1fr))}
.mjcg-cell{height:auto;min-height:0;container-type:size}
.mjcg-cell .mjcg-symbol{font-size:clamp(18px,70cqh,65px)}
.mjcg-payline-arrow{width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:12px solid #ffe096;font-size:0}
@media(max-width:760px){.rs-game-modal:has(.mj-catalog-game) .rs-choice-btn{min-width:0!important;flex:1}.rs-game-modal:has(.mj-catalog-game) .rs-choice-buttons{gap:4px!important}}
@media(max-width:360px){.rs-game-modal:has(.mj-catalog-game) .rse-chip-rack>div{gap:1px!important}.rs-game-modal:has(.mj-catalog-game) .rse-information{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}.rs-game-modal:has(.mj-catalog-game) .rse-information>div{min-width:0!important;padding:5px 4px!important}.rs-game-modal:has(.mj-catalog-game) .rse-information>div:last-child{display:none!important}.rs-game-modal:has(.mj-catalog-game) .rse-information span{font-size:5.5px!important;line-height:1.2!important;white-space:nowrap!important;letter-spacing:.02em!important}.rs-game-modal:has(.mj-catalog-game) .rse-information b{font-size:9px!important;line-height:1.2!important}}
@media(max-height:700px) and (orientation:portrait){
  .mj-catalog-game{padding:8px;gap:6px;grid-template-rows:auto auto minmax(0,1fr) auto}
  .mjcg-heading>span,.mjcg-heading p{display:none}.mjcg-heading h2{font-size:22px;margin:2px 0}
  .mjcg-heading{padding-right:34px}.mjcg-selection{gap:4px}.mjcg-pick{padding:5px;gap:5px;min-height:40px}
  .mjcg-lamp{width:21px;height:26px}.mjcg-lamp em{left:9px;top:29px;height:5px}
  .mjcg-status{padding:6px}.mjcg-status strong{font-size:10px}.mjcg-status p{font-size:9px;line-height:1.25}
  .mjcg-cabinet{padding:5px}.mjcg-reels{padding:2px;gap:2px}.mjcg-payline-label{padding:3px 5px;top:-12px;font-size:7px}
  .mjcg-stadium{grid-template-rows:auto minmax(0,1fr) auto}.mjcg-keeper{scale:.8;transform-origin:top center}
}
@media(prefers-reduced-motion:reduce){.mj-catalog-game *{animation:none!important;transition:none!important}.phase-playing .mjcg-symbol{filter:blur(3px)}}
/* The same lantern art identifies choices, moving strips, and settled symbols. */
.mjcg-lamp b{position:absolute;inset:0;display:grid;place-items:center;color:#fff4c8;font:800 11px/1 Georgia,serif;text-shadow:0 1px 2px #4c210b}
.mjcg-reel-lantern{display:grid;place-items:center;text-shadow:none}
.mjcg-reel-lantern .mjcg-lamp{width:clamp(12px,16cqh,50px);height:clamp(14px,20cqh,58px);box-shadow:0 0 10px var(--lamp)}
.mjcg-reel-lantern .mjcg-lamp:before,.mjcg-reel-lantern .mjcg-lamp:after{left:22%;right:22%;height:7%}
.mjcg-reel-lantern .mjcg-lamp:before{top:-5%}
.mjcg-reel-lantern .mjcg-lamp:after{bottom:-5%}
.mjcg-reel-lantern .mjcg-lamp em{left:45%;top:110%;width:10%;height:13%}
.mjcg-reel-lantern .mjcg-lamp b{font-size:clamp(7px,7cqh,18px)}
