.mines{box-sizing:border-box;min-height:100cqh;padding:calc(env(safe-area-inset-top) + 24px) 14px calc(env(safe-area-inset-bottom) + 28px);color:#fff;text-align:center;background:#105987;font-family:system-ui,sans-serif}.mines *{box-sizing:border-box}.mines button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.mines-header{justify-content:space-between;align-items:center;gap:12px;max-width:540px;margin:0 auto;display:flex}.mines-circle{color:#cc86a8;background:#fff;border:0;border-radius:50%;flex:0 0 52px;width:52px;height:52px;line-height:1;font-size:42px!important;font-weight:800!important}.mines-title{background:#00243b;border-radius:12px;flex:1;padding:8px;font-weight:800}.mines-title span,.mines-title strong{display:block}.mines-title strong{color:#35dcc0;font-size:24px}.mines-message{margin:32px 0 18px;font-weight:800}.mines-board{background:#003452;border:4px solid #003452;border-radius:14px;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px;width:min(100%,450px);margin:0 auto;padding:7px;display:grid}.mines-cell{aspect-ratio:1;color:#073451;background:#91d5eb;border:0;border-radius:5px;place-items:center;min-width:0;padding:0;line-height:1;display:grid;box-shadow:inset 0 -4px #5eafc8;font-size:clamp(15px,5cqw,24px)!important;font-weight:900!important}.mines-cell.is-open{box-shadow:none;background:#eaf8f8}.mines-cell.is-exploded{background:#ff7b7b}.mines-cell.number-1{color:#287dcc}.mines-cell.number-2{color:#28a368}.mines-cell.number-3,.mines-cell.number-5,.mines-cell.number-7{color:#da3d55}.mines-cell.number-4,.mines-cell.number-6,.mines-cell.number-8{color:#7954b0}.mines-flag-mode,.mines-retry{color:#593600;background:#ffbd2e;border:0;border-radius:999px;margin:28px auto 0;padding:12px 22px;display:block;box-shadow:0 5px #d9981e;font-weight:800!important}.mines-flag-mode.is-active{color:#fff;background:#ff7890;box-shadow:0 5px #d9506a}.mines-hint{color:#c7e8f6;margin:14px 0 0;font-size:13px}.mines-retry{margin-top:24px}.mines-circle{place-items:center;padding:0;display:grid}.mahjong{color:#fff;min-height:100cqh;padding:calc(10px + env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:#104f43;font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,sans-serif}.mahjong button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.mahjong button:disabled{cursor:default;opacity:.48}.mahjong button:focus-visible{outline-offset:2px;outline:3px solid #ffd65c}.mj-header{justify-content:space-between;align-items:center;gap:10px;max-width:800px;margin:0 auto 10px;display:flex}.mj-header>div{text-align:center;background:#06382f;border-radius:12px;min-width:130px;padding:5px 16px}.mj-header small,.mj-header strong{display:block}.mj-header small{color:#a5e5d3;font-size:9px}.mj-header strong{font-size:19px}.mj-back{color:#ca86a4;background:#fff;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid}.mj-back .game-icon{width:60%;height:60%}.mj-header-action{color:#fff;background:#0c473d;border:1px solid #90c5b4;border-radius:20px;padding:8px 12px;font-size:12px!important;font-weight:800!important}.mj-header-spacer{width:44px}.mj-title-screen{text-align:center;max-width:420px;margin:auto;padding:clamp(24px,6cqh,64px) 10px}.mj-title-art{justify-content:center;gap:5px;margin-bottom:25px;display:flex;transform:rotate(-5deg)}.mj-title-art .mj-tile{width:54px;height:74px;font-size:35px;box-shadow:0 4px #b7a784,0 9px 14px #00291f66}.mj-kicker{color:#a0e4ce;letter-spacing:.2em;font-size:12px}.mj-title-screen h1{color:#ffce56;letter-spacing:.05em;margin:8px 0;font-size:clamp(27px,7cqw,38px)}.mj-title-description{color:#e1f6ec;margin-bottom:27px;font-size:14px;line-height:1.8}.mj-menu{gap:10px;display:grid}.mj-menu button,.mj-panel button,.mj-dialog button,.mj-result button{color:#174b3e;background:#fff;border:0;border-radius:12px;padding:14px;font-weight:800!important}.mj-menu button:disabled{background:#b8d3c6}.mj-menu-primary{box-shadow:inset 0 -4px #dea01e;color:#4d3600!important;background:#ffbf30!important}.mj-menu>div{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mj-note{color:#b8d9ce;margin:20px 0;font-size:11px}.mj-panel{color:#1a453a;background:#fff9e9;border-radius:20px;max-width:560px;margin:30px auto;padding:24px;line-height:1.8}.mj-panel h1{margin:0 0 15px;font-size:25px}.mj-panel ul{padding-left:1.4em}.mj-panel button{background:#dceee2;width:100%;margin-top:12px;display:block}.mj-danger{color:#fff!important;background:#d97068!important}.mj-table{background:radial-gradient(circle,#18785c,#075341 75%);border:5px solid #8d5f31;border-radius:18px;grid-template-rows:auto minmax(112px,auto) auto;grid-template-columns:minmax(0,1fr) minmax(100px,1.25fr) minmax(0,1fr);gap:4px;max-width:800px;min-height:300px;margin:auto;padding:8px;display:grid;position:relative;box-shadow:inset 0 0 0 3px #4c301c,0 5px 12px #002a2180}.mj-seat{min-width:0}.mj-seat-top{grid-area:1/1/auto/4}.mj-seat-left{grid-area:2/1}.mj-seat-right{grid-area:2/3}.mj-seat-bottom{grid-area:3/1/auto/4}.mj-seat-label{color:#e3f8ef;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:clamp(9px,2.5cqw,12px);display:flex}.mj-seat-label b{color:#ffdf79}.mj-seat-label em{color:#fff;background:#bc3b3f;border-radius:3px;padding:1px 4px;font-style:normal}.mj-turn{color:#16483d;background:#f7d970;border-radius:3px;padding:1px 3px;font-size:9px}.mj-river{flex-wrap:wrap;align-content:flex-start;gap:1px;min-height:25px;margin-top:3px;display:flex}.mj-melds{flex-wrap:wrap;gap:3px;min-height:1px;margin-top:2px;display:flex}.mj-meld{gap:1px;display:inline-flex}.mj-center{color:#d9f7ed;text-align:center;background:#063e35e8;border-radius:10px;grid-area:2/2;place-self:center;justify-items:center;gap:3px;width:100%;max-width:150px;padding:8px 3px;display:grid}.mj-center strong{color:#ffdf79;font-size:clamp(13px,3cqw,18px)}.mj-center span,.mj-center small{font-size:10px}.mj-dora{gap:2px;display:flex}.mj-tile{vertical-align:top;color:#1c1c19;background:linear-gradient(#fffef2,#f5eed7);border:1px solid #d9cba8;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:clamp(22px,6.1cqw,37px);height:clamp(32px,8.8cqw,51px);line-height:1;display:inline-flex;box-shadow:0 2px #b8a984}.mj-tile b{font-size:clamp(14px,4cqw,23px)}.mj-tile i{color:#bc222b;font-size:clamp(8px,2.4cqw,13px);font-style:normal;font-weight:900}.mj-p b,.mj-p i{color:#146083}.mj-s b,.mj-s i{color:#168154}.mj-z b{color:#1d5145}.mj-red b,.mj-red i{color:#d31529}.mj-tile-small{border-radius:2px;width:clamp(13px,3.4cqw,20px);height:clamp(18px,4.8cqw,28px);box-shadow:0 1px #b8a984}.mj-tile-small b{font-size:clamp(9px,2.4cqw,14px)}.mj-tile-small i{font-size:clamp(6px,1.5cqw,8px)}.mj-message{text-align:center;color:#ffda74;min-height:1.2em;margin:12px auto;font-size:13px;font-weight:800}.mj-save-status{text-align:right;color:#bee7d8;max-width:800px;margin:0 auto 5px;font-size:10px}.mj-hand-area{background:#073c32;border-radius:14px;max-width:800px;margin:0 auto;padding:10px 7px 12px}.mj-hand-heading{justify-content:space-between;align-items:center;gap:5px;margin-bottom:8px;font-size:12px;display:flex}.mj-hand-heading span{color:#b4dccc;font-size:10px}.mj-hand{justify-content:center;gap:2px;padding:8px 1px 5px;display:flex;overflow-x:auto}.mj-hand-button{background:0 0;border:0;flex:none;padding:0;transition:transform .15s}.mj-hand-button:disabled{opacity:.7}.mj-hand-button.is-selected{transform:translateY(-7px)}.mj-confirm{color:#493000;background:#ffbd2f;border:0;border-radius:24px;min-width:150px;margin:10px auto 0;padding:10px 16px;display:block;font-weight:800!important}.mj-actions{flex-wrap:wrap;justify-content:center;gap:7px;max-width:800px;margin:10px auto;display:flex}.mj-actions button{color:#16483a;background:#fff7d9;border:2px solid #efcb76;border-radius:9px;min-width:56px;padding:8px 10px;font-weight:800!important}.mj-error{color:#8a302a;background:#fff3dc;border-radius:10px;align-items:center;gap:8px;max-width:800px;margin:8px auto;padding:10px;font-size:12px;line-height:1.5;display:flex}.mj-error span{flex:1}.mj-error button{color:#fff;background:#b34f4a;border:0;border-radius:7px;padding:6px}.mj-result,.mj-dialog{z-index:10;padding:calc(20px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#201a2eea;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.mj-result>div,.mj-dialog>div{text-align:center;width:min(100%,420px)}.mj-result h2,.mj-dialog h2{color:#ffbf30;font-size:clamp(23px,6cqw,32px);line-height:1.4}.mj-result p,.mj-dialog p{line-height:1.6}.mj-result button{width:100%;margin-top:12px}.mj-dialog>div>div{gap:10px;margin-top:25px;display:flex}.mj-dialog button{flex:1}.mj-loading{text-align:center;margin:100px auto}.mj-result:focus-visible,.mj-dialog:focus-visible{outline:3px solid #ffbf30}@container (width>=700px){.mj-table{min-height:420px}.mj-river{max-width:290px}.mj-seat-top,.mj-seat-bottom{grid-template-columns:1fr 2fr;align-items:start;gap:5px;display:grid}}@container (width<=360px){.mj-table{grid-template-columns:minmax(0,1fr) minmax(84px,1.1fr) minmax(0,1fr);min-height:270px}.mj-seat-label{font-size:9px}.mj-hand{justify-content:flex-start}}dialog.mj-result,dialog.mj-dialog{color:#fff;background:0 0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;position:fixed;inset:0}dialog.mj-result::backdrop,dialog.mj-dialog::backdrop{background:#201a2eea}.mj-hand{justify-content:flex-start}.mahjong{color:#f3f1ea;background:radial-gradient(at 50% 30%,#1b2c4b,#0c1426 78%)}.mj-header>div{background:#101e35;border:1px solid #526482;box-shadow:inset 0 1px #ffffff1a}.mj-header small{color:#b2c8e5}.mj-header-action{background:#172640;border-color:#60718b}.mj-back{color:#354768;background:#f7f2df}.mj-title-screen h1{color:#e9c56e}.mj-kicker,.mj-note{color:#b8c9e3}.mj-title-description{color:#d8e2f3}.mj-panel{color:#202d45;background:#f5efdf}.mj-menu button,.mj-panel button,.mj-dialog button,.mj-result button{color:#24344e}.mj-table{isolation:isolate;background:linear-gradient(135deg,#0000 49.8%,#081b384d 50%,#0000 50.2%),linear-gradient(45deg,#0000 49.8%,#081b384d 50%,#0000 50.2%),radial-gradient(#2b4e81 0,#1c3865 53%,#102440 100%);border:6px solid #292536;border-radius:12px;gap:5px;min-height:330px;padding:12px;overflow:hidden;box-shadow:inset 0 0 0 2px #7d603f,inset 0 0 0 7px #172840,0 6px 20px #0007}.mj-table:before{content:"";pointer-events:none;z-index:-1;border:1px solid #10274385;position:absolute;inset:12%;transform:perspective(600px)rotateX(10deg)}.mj-seat{position:relative}.mj-seat-top{grid-template-columns:minmax(75px,auto) 1fr;align-items:start;column-gap:6px;display:grid}.mj-seat-top .mj-seat-label{grid-area:1/1/3}.mj-seat-top .mj-wall,.mj-seat-top .mj-river,.mj-seat-top .mj-melds{grid-column:2;justify-content:center}.mj-seat-left{padding-left:13px}.mj-seat-right{padding-right:13px}.mj-seat-bottom .mj-river{justify-content:center}.mj-seat-label{color:#f3f3f3;text-shadow:0 1px 2px #000;gap:4px;font-size:clamp(9px,2.2cqw,12px)}.mj-avatar{color:#fff0c3;background:linear-gradient(135deg,#6b465c,#2a2844);border:2px solid #dfc38a;border-radius:5px;flex:none;place-items:center;width:28px;height:28px;font-size:13px;display:grid;box-shadow:0 2px 3px #0008}.mj-seat-bottom .mj-avatar{background:linear-gradient(135deg,#637fad,#263d69)}.mj-seat-info{gap:1px;display:grid}.mj-seat-info b{color:#f5db93;font-variant-numeric:tabular-nums}.mj-seat-info>span{font-size:10px}.mj-wall{gap:1px;min-height:7px;margin:3px 0;display:flex}.mj-wall span{background:linear-gradient(135deg,#ffe0a1,#d59b53);border:1px solid #bf8d50;border-radius:2px;flex:none;width:clamp(7px,2.5cqw,15px);height:clamp(10px,3.2cqw,19px);display:block;box-shadow:0 1px 1px #081320}.mj-seat-left .mj-wall,.mj-seat-right .mj-wall{flex-direction:column;gap:0;margin:0;display:flex;position:absolute;top:35px}.mj-seat-left .mj-wall{left:0}.mj-seat-right .mj-wall{right:0}.mj-seat-left .mj-wall span,.mj-seat-right .mj-wall span{width:10px;height:clamp(5px,1.45cqw,10px)}.mj-seat-label em{background:#bd353d}.mj-turn{color:#17243a;background:#e5bd60}.mj-river{gap:1px;min-height:23px}.mj-center{color:#d3e1f4;background:linear-gradient(135deg,#1c2f51,#111b30);border:2px solid #7a6c58;max-width:150px;padding:8px 4px;box-shadow:inset 0 0 0 2px #18243c,0 3px 6px #0008}.mj-center strong{color:#f4d17c}.mj-dora{flex-wrap:wrap;justify-content:center}.mj-tile{color:#1c2024;background:linear-gradient(110deg,#fffef5,#efe9d5);box-shadow:0 2px #b5aa90,0 3px 3px #0005}.mj-tile-art{width:88%;height:90%;display:block}.mj-hand-area{background:linear-gradient(#152745,#101c31);border:1px solid #53627c;box-shadow:0 4px 12px #0007}.mj-hand-heading span,.mj-save-status{color:#bdcce0}.mj-message{color:#f0d285}.mj-hand{scrollbar-width:thin;scrollbar-color:#9da9b9 transparent;justify-content:flex-start}.mj-hand-button.is-selected .mj-tile{box-shadow:0 0 0 3px #ffd369,0 2px #b8a984}.mj-actions button{color:#f8e6ba;background:#152746;border-color:#b99a64}.mj-confirm{color:#302513;background:#e6bd64}.mj-error{color:#883c35;background:#fff0d9}@container (width>=700px){.mj-table{min-height:420px}.mj-seat-top{grid-template-columns:minmax(95px,auto) 1fr;display:grid}.mj-seat-bottom{display:block}.mj-seat-left .mj-wall span,.mj-seat-right .mj-wall span{width:13px;height:11px}}@container (aspect-ratio>=1) and (height<=500px){.mahjong{padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:calc(8px + env(safe-area-inset-bottom))}.mj-header{margin-bottom:3px}.mj-header>div{padding:2px 12px}.mj-header small{display:none}.mj-header strong{font-size:14px}.mj-back{width:34px;height:34px}.mj-table{grid-template-rows:auto minmax(70px,auto) auto;max-width:640px;min-height:180px;padding:6px}.mj-message{margin:3px auto;font-size:11px}.mj-hand-area{padding:4px 7px}.mj-hand-heading{margin-bottom:0}.mj-hand{padding:3px 1px}.mj-tile{width:25px;height:35px}.mj-tile-small{width:13px;height:18px}.mj-confirm{margin:3px auto 0;padding:5px 14px}.mj-actions{margin:3px auto}.mj-save-status{margin-bottom:1px}.mj-table{grid-template-rows:32px minmax(0,1fr) 34px;gap:2px;height:210px;min-height:0}.mj-seat-top{grid-template-columns:95px minmax(100px,1fr) minmax(120px,2fr);align-items:start}.mj-seat-top .mj-seat-label{grid-area:1/1}.mj-seat-top .mj-wall{grid-area:1/2;margin:3px 0}.mj-seat-top .mj-river{flex-wrap:nowrap;grid-area:1/3;overflow-x:auto}.mj-seat-bottom{align-items:start;gap:8px;display:flex}.mj-seat-bottom .mj-river{flex-wrap:nowrap;flex:1;justify-content:flex-start;overflow-x:auto}.mj-seat-left .mj-wall,.mj-seat-right .mj-wall{top:22px}.mj-seat-left .mj-wall span,.mj-seat-right .mj-wall span{height:5px}.mj-seat-label{gap:3px;font-size:9px}.mj-seat-info>span{font-size:9px}.mj-avatar{width:22px;height:22px;font-size:10px}.mj-wall span{width:10px;height:13px}.mj-center{gap:1px;max-width:120px;padding:4px}.mj-center strong{font-size:11px}.mj-center small,.mj-center span{font-size:9px}.mj-hand-area{align-items:center;gap:7px;display:flex}.mj-hand-heading{display:none}.mj-hand{flex:1;min-width:0}.mj-confirm{flex:none;min-width:110px}}.mj-standings{margin:16px 0;padding:0;list-style:none}.mj-standings li{text-align:left;background:#ffffff16;border-radius:8px;grid-template-columns:3em 1fr auto;gap:8px;margin:3px 0;padding:8px 12px;display:grid}.mj-standings strong{color:#ffda7b}.mj-standings b{font-variant-numeric:tabular-nums}.mj-panel a{color:#214f8f;text-underline-offset:2px;text-decoration:underline}.mj-tile{box-shadow:none;background:0 0;border:0;overflow:visible}.mj-tile img{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.mj-red{box-shadow:none}.mj-center{z-index:2;grid-area:auto;gap:1px;width:80px;max-width:none;padding:4px 3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mj-center strong{font-size:11px;line-height:1.25}.mj-center small,.mj-center span{font-size:9px}.mj-river{--river-tile-w:clamp(12px,3.35cqw,18px);--river-tile-h:clamp(17px,4.6cqw,25px);z-index:1;grid-template-columns:repeat(6,var(--river-tile-w));grid-auto-rows:var(--river-tile-h);align-content:start;gap:1px;width:max-content;min-height:0;margin:0;display:grid;position:absolute}.mj-river .mj-tile-small{width:var(--river-tile-w);height:var(--river-tile-h)}.mj-river-top{bottom:calc(50% + 39px);left:50%;transform:translate(-50%)rotate(180deg)}.mj-river-bottom{top:calc(50% + 39px);left:50%;transform:translate(-50%)}.mj-river-left{transform-origin:0 0;top:50%;left:calc(50% - 44px);transform:rotate(90deg)translate(-50%)}.mj-river-right{transform-origin:0 0;top:50%;left:calc(50% + 44px);transform:rotate(-90deg)translate(-50%)}.mj-river>span{display:block;position:relative}.mj-river-match{z-index:3;filter:brightness(1.18);border-radius:2px;box-shadow:0 0 0 2px #ffe36a,0 0 10px 3px #ffcf32}.mj-river-riichi .mj-tile-small{transform:rotate(90deg)scale(.7)}.mj-actions button{justify-content:center;align-items:center;gap:5px;display:inline-flex}.mj-action-tiles{gap:1px;display:inline-flex}.mj-cutin{z-index:5;pointer-events:none;place-items:center;animation:1.6s both mj-cutin-fade;display:grid;position:absolute;inset:0;overflow:hidden}.mj-cutin:before{content:"";background:#081325aa;position:absolute;inset:0}.mj-cutin-band{background:linear-gradient(110deg,#160e20 0%,#6c2435 48%,#16172c 100%);border-top:2px solid #f4d591;border-bottom:2px solid #f4d591;align-items:center;gap:16px;width:110%;padding:12px 18%;animation:1.6s both mj-cutin-slide;display:flex;position:relative;transform:rotate(-7deg);box-shadow:0 4px 20px #000b}.mj-cutin-emblem{color:#fff0cc;background:#29243a;border:3px double #ffe5a2;border-radius:50%;flex:none;place-items:center;width:60px;height:60px;font-size:30px;font-weight:900;display:grid}.mj-cutin-band div{color:#fff;display:grid}.mj-cutin-band small{letter-spacing:.1em;font-size:12px;font-weight:800}.mj-cutin-band strong{color:#fff0b4;text-shadow:2px 3px #9b202e,-2px -2px #9b202e,3px 5px #1a1018;font-size:clamp(32px,10cqw,58px);font-weight:1000;line-height:1.1}@keyframes mj-cutin-slide{0%{transform:translate(-110%)rotate(-7deg)}15%,78%{transform:translate(0)rotate(-7deg)}to{transform:translate(110%)rotate(-7deg)}}@keyframes mj-cutin-fade{0%,to{opacity:0}10%,80%{opacity:1}}@container (aspect-ratio>=1) and (height<=500px){.mj-table{height:250px}.mj-center{width:75px;padding:3px 2px}.mj-center strong{font-size:10px}.mj-center small,.mj-center span{font-size:8px}.mj-river{--river-tile-w:11px;--river-tile-h:15px}.mj-river-top{bottom:calc(50% + 34px)}.mj-river-bottom{top:calc(50% + 34px)}.mj-river-left{left:calc(50% - 42px)}.mj-river-right{left:calc(50% + 42px)}.mj-cutin-emblem{width:42px;height:42px;font-size:22px}.mj-cutin-band{padding:6px 20%}.mj-cutin-band strong{font-size:36px}}@media (prefers-reduced-motion:reduce){.mj-cutin,.mj-cutin-band{animation:none}}.mj-win{--win-glow:#f3d38c;--win-accent:#9e6145;z-index:30;isolation:isolate;color:#fff;touch-action:none;background:radial-gradient(#293c5e,#070e1dee 75%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.mj-win-tier-1{--win-glow:#ffe182;--win-accent:#c99324}.mj-win-tier-2{--win-glow:#ffabce;--win-accent:#b42b65}.mj-win-tier-3{--win-glow:#a7e8ff;--win-accent:#168ba9}.mj-win-tier-4{--win-glow:#e3b0ff;--win-accent:#8443c4}.mj-win-tier-5{--win-glow:#fff0a1;--win-accent:#e34934;background:radial-gradient(#8d3840,#1b0c23 70%)}.mj-win-flash{z-index:5;pointer-events:none;background:#fff6dc;animation:3s both mj-win-flash;position:absolute;inset:0}.mj-win-rays{background:repeating-conic-gradient(from 0deg,transparent 0deg 12deg,var(--win-glow) 13deg 15deg,transparent 16deg 30deg);opacity:.2;width:150cqmax;height:150cqmax;animation:3s ease-out both mj-win-rays;position:absolute}.mj-win-ring{aspect-ratio:1;border:2px solid var(--win-glow);width:min(72cqw,410px);box-shadow:0 0 22px var(--win-accent),inset 0 0 22px var(--win-accent);border-radius:50%;animation:3s ease-out both mj-win-ring;position:absolute;top:50%;left:50%}.mj-win-ring-inner{opacity:.65;border-style:dashed;width:min(53cqw,300px);animation-direction:reverse}.mj-win-tier-0 .mj-win-ring-inner,.mj-win-tier-0 .mj-win-rays,.mj-win-tier-1 .mj-win-ring-inner{display:none}.mj-win-sparks{pointer-events:none;position:absolute;inset:0;overflow:hidden}.mj-win-sparks i{left:var(--x);top:var(--y);color:var(--win-glow);text-shadow:0 0 15px var(--win-glow);animation:1.1s ease-in-out infinite alternate mj-win-spark;animation-delay:calc(var(--i) * -.13s);font-size:clamp(16px,5cqw,34px);font-style:normal;position:absolute}.mj-win-banner{border-top:3px solid var(--win-glow);border-bottom:3px solid var(--win-glow);min-width:min(84cqw,430px);box-shadow:0 0 38px var(--win-accent);text-align:center;background:linear-gradient(100deg,#0000,#12162bf0 15%,#5e2531f0 50%,#12162bf0 85%,#0000);justify-items:center;gap:4px;padding:24px 25px;animation:3s cubic-bezier(.16,.8,.25,1) both mj-win-banner;display:grid;position:relative}.mj-win-player{letter-spacing:.18em;color:#fff5d1;font-size:clamp(13px,3.4cqw,18px);font-weight:800}.mj-win-banner strong{letter-spacing:.16em;color:#fff8d7;-webkit-text-stroke:1px #a32b33;text-shadow:0 3px #8d2631,0 6px #361526,0 0 25px var(--win-glow);font-size:clamp(54px,16cqw,100px);line-height:1.05}.mj-win-banner b{letter-spacing:.2em;color:var(--win-glow);text-shadow:0 2px #511b30,0 0 15px var(--win-accent);font-size:clamp(25px,7cqw,40px)}.mj-win-points{font-variant-numeric:tabular-nums;color:#fff4d6;font-size:clamp(18px,5cqw,25px);font-weight:900}.mj-win-tier-4 .mj-win-banner,.mj-win-tier-5 .mj-win-banner{box-shadow:0 0 65px var(--win-glow),0 0 110px var(--win-accent);border-width:5px}@keyframes mj-win-flash{0%,to{opacity:0}8%{opacity:.85}22%,to{opacity:0}}@keyframes mj-win-rays{0%{opacity:0;transform:scale(.25)rotate(-35deg)}20%{opacity:.26}to{opacity:.12;transform:scale(1)rotate(25deg)}}@keyframes mj-win-ring{0%{opacity:0;transform:translate(-50%,-50%)scale(.1)rotate(0)}25%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%)scale(1.15)rotate(80deg)}}@keyframes mj-win-banner{0%{opacity:0;transform:translate(-130%)skew(-12deg)}16%{opacity:1;transform:translate(0)skew(-4deg)}80%{opacity:1;transform:translate(0)skew(-4deg)}to{opacity:0;transform:translate(120%)skew(-12deg)}}@keyframes mj-win-spark{0%{opacity:.3;transform:scale(.45)rotate(0)}to{opacity:1;transform:scale(1.3)rotate(45deg)}}@container (aspect-ratio>=1) and (height<=500px){.mj-win-banner{padding:6px 25px}.mj-win-banner strong{font-size:58px}.mj-win-banner b{font-size:26px}.mj-win-ring{width:min(55cqh,300px)}}@media (prefers-reduced-motion:reduce){.mj-win-flash{display:none}.mj-win-rays,.mj-win-ring,.mj-win-banner,.mj-win-sparks i{animation:none}.mj-win-ring{transform:translate(-50%,-50%)}}.mahjong dialog.mj-result,.mahjong dialog.mj-dialog{transform-origin:0 0;width:852px;height:393px;transform:scale(var(--app-scale)) translate(-50%,-50%);inset:50% auto auto 50%}.mj-win-layer{z-index:30;transform-origin:0 0;width:852px;height:393px;transform:scale(var(--app-scale)) translate(-50%,-50%);position:fixed;top:50%;left:50%;overflow:hidden;container-type:size}.mj-win{width:100%;height:100%;inset:0}.mj-title-screen{grid-template-rows:auto auto auto auto auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:center;column-gap:28px;max-width:700px;margin:auto;padding:4px 12px;display:grid}.mj-title-art{grid-area:1/1;margin:0}.mj-title-art .mj-tile{width:42px;height:58px}.mj-kicker{grid-area:2/1;margin:8px 0 2px}.mj-title-screen h1{grid-area:3/1;margin:4px 0;font-size:25px}.mj-title-description{grid-area:4/1;margin:6px 0;font-size:12px}.mj-menu{grid-area:1/2/5;align-self:center;gap:6px}.mj-menu button{padding:10px}.mj-note{grid-area:5/1/auto/-1;margin:8px 0;font-size:10px}.mahjong{position:relative}.mj-actions{z-index:7;right:max(14px,env(safe-area-inset-right));bottom:calc(125px + env(safe-area-inset-bottom));justify-content:flex-end;width:min(65%,500px);margin:0;position:absolute}.mj-actions button{padding:5px 8px;font-size:12px!important}.mj-hand-button:first-child{margin-left:auto}.mj-hand-button:last-child{margin-right:auto}dialog.mj-result>.mj-result-content{text-align:center;width:min(100%,800px)}.mj-result-content h2{margin:0 0 8px;font-size:22px}.mj-result-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:14px;display:grid}.mj-score-table{background:radial-gradient(#2b4e81,#122544);border:2px solid #8e7853;border-radius:14px;grid-template-rows:1fr 1fr 1fr;grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);gap:4px;min-height:235px;padding:8px;display:grid;box-shadow:inset 0 0 0 3px #172840}.mj-score-seat{color:#fff;font-variant-numeric:tabular-nums;background:#101e35e8;border:1px solid #72839e;border-radius:7px;align-content:center;justify-items:center;gap:2px;min-width:0;padding:4px;display:grid}.mj-score-seat small{color:#e7d5a6;font-size:11px}.mj-score-values{white-space:nowrap;justify-content:center;align-items:center;gap:4px;font-size:11px;display:flex}.mj-score-values strong{font-size:13px}.mj-score-seat b{color:#d5e2f5;font-size:13px}.mj-score-seat .is-gain{color:#62e4ae}.mj-score-seat .is-loss{color:#ff858c}.mj-score-top{grid-area:1/1/auto/-1;justify-self:center;width:48%}.mj-score-left{grid-area:2/1}.mj-score-right{grid-area:2/3}.mj-score-bottom{grid-area:3/1/auto/-1;justify-self:center;width:48%}.mj-score-center{color:#e9d393;grid-area:2/2;place-items:center;font-size:10px;display:grid}.mj-result-details{text-align:center;max-height:270px;overflow:auto}.mj-result-details p{margin:4px 0;font-size:12px;line-height:1.4}.mj-result-details p:first-child{color:#ffda7b;font-size:16px;font-weight:900}.mj-result-details button{margin-top:8px;padding:9px}.mj-final-content{width:min(100%,420px)}.mj-difficulty{border:1px solid #9aa9bc;border-radius:10px;gap:20px;padding:6px 12px;display:flex}.mj-difficulty legend{font-weight:800}.mj-difficulty label{align-items:center;gap:6px;display:flex}.mj-actions button.is-selected{outline-offset:2px;outline:3px solid #ffd369}:root{color:#002440;font-synthesis:none;background:#fff2df;font-family:system-ui,-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,sans-serif;font-weight:800}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline-offset:2px;outline:3px solid #ffbe2c}button:disabled{cursor:default}.home{min-height:100cqh;padding-bottom:calc(28px + env(safe-area-inset-bottom));background:linear-gradient(170deg,#fff2df 0 75%,#ffdfcb 75%)}.home-header{height:calc(92px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 20px 0;background:#fff;border-bottom:5px solid #dca18b;align-items:center;gap:24px;display:flex}.menu-mark{gap:6px;width:35px;display:grid}.menu-mark i{background:#ce8cac;border-radius:5px;height:6px}.menu-mark i:last-child{width:65%}.brand{color:#fff;letter-spacing:.05em;background:#925995;border-radius:13px;margin-left:auto;padding:10px 15px;font-size:14px}.brand span{color:#ffbd28;vertical-align:middle;font-size:23px}.brand b{font-size:10px}.catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:760px;margin:auto;padding:18px 12px;display:grid}.tile{aspect-ratio:.78;text-align:left;color:#a2d7fa;background:#105982;border:6px solid #fff;border-radius:29px;padding:18px 15px;position:relative;overflow:hidden;box-shadow:0 2px #f5ddca}.tile-name{white-space:nowrap;z-index:1;font-size:clamp(15px,4.2cqw,27px);line-height:1.2;display:block;position:relative}.tile-line{background:currentColor;border-radius:6px;width:44%;height:5px;margin-top:6px;display:block}.favorite{color:#ffba27;background:#fff;border-radius:50%;padding:4px;font-size:27px;line-height:1;position:absolute;top:-3px;right:-2px}.tile-hearts{color:#fb668f;background:#271d35}.tile-solitaire{color:#d04c83;background:#e8f4ef}.tile-spider{color:#ffc02a;background:#20232c}.tile-mines{color:#009dbd;background:#c5ecf7}.preview-cards{gap:4px;width:100%;display:flex;position:absolute;top:43%;left:14%;transform:rotate(-8deg)}.preview-cards>span{filter:drop-shadow(0 5px 1px #00243d55);flex:none;width:37%}.preview-cards>span:nth-child(2){transform:translateY(12%)}.preview-cards>span:nth-child(3){transform:translateY(24%)}.tile-play{color:#173852;background:#ffffffdc;border-radius:20px;padding:5px 10px;font-size:11px;position:absolute;bottom:12px;right:12px}.mine-preview{grid-template-columns:repeat(3,1fr);gap:3px;width:75%;display:grid;position:absolute;top:35%;left:16%;transform:rotate(-8deg)}.mine-preview i{aspect-ratio:1;color:#ffb52a;background:#fff6d5;border-radius:5px;place-items:center;font-size:clamp(22px,7cqw,48px);font-style:normal;display:grid;box-shadow:0 3px #d8b68f}.mine-preview i:nth-child(2n){color:#e84e74}.game-screen{color:#fff;min-height:100cqh;padding:calc(12px + env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#105982;overflow:hidden}.game-header{justify-content:space-between;align-items:center;gap:10px;max-width:700px;margin:0 auto 12px;display:flex}.round-button{color:#ce8cac;background:#fff;border:0;border-radius:50%;flex:none;width:48px;height:48px;padding:0 0 5px;font-size:50px;line-height:.7}.round-button.reset{padding:0;font-size:38px}.game-title{text-align:center;background:#00283f;border-radius:12px;min-width:150px;padding:6px 15px}.game-title small,.game-title strong{display:block}.game-title small{color:#7ee5d0;font-size:10px}.game-title strong{font-size:20px}.score-strip{justify-content:center;gap:8px;margin:0 auto 18px;display:flex}.score-strip>div{text-align:center;background:#00283f;border-radius:9px;min-width:105px;padding:4px 12px}.score-strip small,.score-strip strong{display:block}.score-strip small{font-size:10px}.score-strip strong{color:#43dfbc;font-size:20px}.board{--gap:3px;--columns:8;--card-width:calc((100cqw - (var(--columns) - 1)*var(--gap))/var(--columns));--stack-step:calc(var(--card-width)*.39);max-width:900px;margin:auto;container-type:inline-size}.board-solitaire{--columns:7}.board-spider{--columns:10}.top-piles{min-height:calc(var(--card-width)*1.55);justify-content:space-between;align-items:start;gap:8px;margin-bottom:16px;display:flex}.pile-group{gap:var(--gap);display:flex}.pile{width:var(--card-width);min-width:0}.pile-group .pile{width:var(--card-width)}.foundations{flex-wrap:wrap;justify-content:flex-end}.board-spider .foundations{max-width:50%}.card-button{width:100%;color:inherit;background:0 0;border:0;padding:0;display:block;position:relative}.card-button>span[data-card]{display:block}.face{aspect-ratio:.7;color:#002541;background:#fff;border:2px solid #002a48;border-radius:12%;width:100%;display:block;position:relative;overflow:hidden}.face.red{color:#c60016}.empty-face{background:#07466e;border:3px solid #003858}.face-down{color:#b2d8e8;background:repeating-linear-gradient(45deg,#0a3d62,#0a3d62 4px,#1e6b98 4px 8px);border:3px solid #003858;place-items:center;font-size:clamp(12px,3cqw,28px);display:grid}.card-corner{letter-spacing:-.08em;align-items:center;gap:1px;font-size:clamp(12px,4cqw,38px);line-height:1.05;display:flex;position:absolute;top:0;left:5%}.card-suit{font-size:clamp(19px,6cqw,55px);line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-27%)}.selected .face{filter:brightness(1.06);box-shadow:inset 0 0 0 3px #ffbf2b}.stock-count{color:#fff;background:#00283f;border-radius:7px;padding:1px 4px;font-size:10px;position:absolute;bottom:0;right:0}.tableau{grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:var(--gap);display:grid}.column{min-width:0;min-height:calc(var(--card-width)*1.5 + var(--stack-step)*18);position:relative}.stack-card,.column-empty{width:100%;position:absolute;left:0}.game-actions{text-align:center;margin:20px auto}.undo{color:#ffbd28;background:0 0;border:0;justify-items:center;gap:4px;font-size:13px;display:inline-grid}.undo span{color:#fff;background:#ffbd28;border-radius:50%;width:58px;height:58px;font-size:49px;line-height:48px;box-shadow:inset 0 -5px #e0a328}.undo:disabled{opacity:.45}.game-actions p{color:#b9d8e9;font-size:12px;font-weight:500}.result-banner{text-align:center;color:#573900;background:#ffbd28;border-radius:12px;max-width:300px;margin:10px auto;padding:12px}.hearts-scores{justify-content:center;gap:5px;display:flex}.hearts-scores div{text-align:center;background:#00283f;border-radius:10px;min-width:62px;padding:5px}.hearts-scores small,.hearts-scores strong,.hearts-scores span{display:block}.hearts-scores small,.hearts-scores span{font-size:10px}.hearts-scores strong{color:#43dfbc;font-size:22px}.hearts-message{text-align:center;margin:18px 0;font-size:14px}.trick-area{max-width:300px;height:210px;margin:auto;position:relative}.trick-card{width:60px;animation:.25s ease-out arrive;position:absolute}.trick-card small{text-align:center;font-size:10px;display:block}.player-0{bottom:0;left:40%}.player-1{top:30%;left:5%}.player-2{top:0;left:40%}.player-3{top:30%;right:5%}@keyframes arrive{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hearts-bottom{text-align:center;max-width:700px;margin:15px auto}.hearts-bottom p{font-size:12px}.primary-button{color:#422d00;background:#ffbd28;border:0;border-radius:25px;padding:10px 22px}.primary-button:disabled{opacity:.5}.hand{justify-content:center;padding:12px 5px 20px;display:flex;overflow-x:auto}.hand-card{background:0 0;border:0;flex:0 0 48px;width:48px;margin-left:-14px;padding:0;transition:transform .2s;position:relative}.hand-card:first-child{margin-left:0}.hand-card.selected{transform:translateY(-10px)}.hand-card:disabled{filter:brightness(.7)}@container (width>=600px){.catalog{gap:18px}.tile{border-width:8px}.card-corner{font-size:32px}.card-suit{font-size:52px}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.tile-name{position:absolute;top:18px;left:15px}.tile-line{margin:0;position:absolute;top:49px;left:15px}.top-piles{gap:var(--gap)}.pile-group{flex-shrink:0}.board-spider .foundations{flex-shrink:1}.hand{justify-content:flex-start}.round-button{place-items:center;padding:0;display:grid}.game-icon{width:60%;height:60%;display:block}.undo span{place-items:center;line-height:1;display:grid}.undo .game-icon{width:58%;height:58%}.foundation-suit{color:#003858;pointer-events:none;place-items:center;font-size:clamp(24px,7cqw,62px);line-height:1;display:grid;position:absolute;inset:0}.move-mode{color:#fff;background:#07466e;border:1px solid #a5d5e8;border-radius:18px;margin:14px auto 0;padding:7px 14px;font-size:12px;display:block}.card-button{touch-action:manipulation}.game-dialog{width:100%;max-width:none;height:100%;max-height:none;padding:calc(24px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));color:#fff;background:0 0;border:0;margin:0;position:fixed;inset:0;overflow:auto}.game-dialog::backdrop{background:#241d2ef0}.dialog-content{text-align:center;flex-direction:column;justify-content:center;max-width:540px;min-height:100%;margin:auto;display:flex}.dialog-content h2{color:#ffbd28;overflow-wrap:anywhere;margin:0;font-size:clamp(27px,7cqw,46px);line-height:1.35}.dialog-content p{margin:clamp(45px,12cqh,100px) 0;font-size:clamp(16px,4.5cqw,24px);line-height:1.6}.dialog-actions{gap:14px;display:flex}.dialog-actions button{color:#fff;border:0;border-radius:12px;flex:1;min-width:0;min-height:60px;padding:12px 6px;font-size:clamp(15px,4cqw,22px);font-weight:800}.dialog-new{background:#d66e67;box-shadow:inset 0 -5px #c45e59}.dialog-continue{background:#2bb841;box-shadow:inset 0 -5px #20a43a}.update-notice{z-index:1000;top:calc(8px + env(safe-area-inset-top));color:#fff;background:#00283f;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;width:min(100% - 24px,540px);padding:10px 12px;font-size:12px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0004}.update-notice span{flex:180px}.update-notice button{color:#432e00;background:#ffbd28;border:0;border-radius:8px;padding:8px 10px}.update-notice button:last-of-type{color:#fff;background:0 0;border:1px solid #9ec5d5}.tile-mahjong{color:#aee6bd;background:#146a64}.mahjong-preview{gap:4px;width:100%;display:flex;position:absolute;top:41%;left:10%;transform:rotate(-8deg)}.mahjong-preview i{aspect-ratio:.72;color:#153d34;background:#fff9e6;border:2px solid #f0dcb0;border-radius:8%;flex:0 0 30%;place-items:center;font-size:clamp(32px,9cqw,70px);font-style:normal;display:grid;box-shadow:0 5px #d6c38e}.mahjong-preview i:nth-child(2){color:#008b47;transform:translateY(14%)}.mahjong-preview i:nth-child(3){color:#cb2637;transform:translateY(28%)}:root{--canvas-width:393px;--canvas-height:852px;--app-width:min(100vw,46.1268dvh);--app-height:min(100dvh,216.794vw);--app-scale:1;background:#111722}:root[data-game-layout=mahjong]{--canvas-width:852px;--canvas-height:393px;--app-width:min(100vw,216.794dvh);--app-height:min(100dvh,46.1268vw)}body{background:#111722;justify-content:center;align-items:center;min-height:100dvh;display:flex;overflow:hidden}#root{width:var(--app-width);height:var(--app-height);background:#fff2df;flex:none;overflow:hidden}.app-canvas{width:var(--canvas-width);height:var(--canvas-height);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:scale(var(--app-scale));transform-origin:0 0;overflow:auto;container-type:size}dialog.game-dialog{width:var(--canvas-width);height:var(--canvas-height);transform-origin:0 0;transform:scale(var(--app-scale)) translate(-50%,-50%);inset:50% auto auto 50%}.update-layer{z-index:1000;width:var(--canvas-width);height:var(--canvas-height);transform-origin:0 0;transform:scale(var(--app-scale)) translate(-50%,-50%);pointer-events:none;position:fixed;top:50%;left:50%;container-type:size}.update-notice{top:calc(8px + env(safe-area-inset-top));pointer-events:auto;width:calc(100% - 24px);position:absolute}.card-corner{font-size:clamp(15.6px,5.2cqw,49.4px)}.card-suit{font-size:clamp(24.7px,7.8cqw,71.5px)}.board-freecell{--stack-step:calc(var(--card-width)*.5)}.trick-card .card-corner{font-size:26px}.trick-card .card-suit{font-size:45.5px}.hand-card .card-corner{font-size:23.4px}.hand-card .card-suit{font-size:39px}@container (width>=600px){.card-corner{font-size:41.6px}.card-suit{font-size:67.6px}}
