@font-face{font-family:Mooncake Happy;src:url(/games/mooncake-match/assets/fonts/ZCOOLKuaiLe-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{color:#653725;font-synthesis:none;text-rendering:optimizelegibility;background:#172c4c;font-family:Mooncake Happy,Yuanti SC,YouYuan,sans-serif;font-weight:400}*{box-sizing:border-box}body{min-width:320px;margin:0}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible{outline-offset:2px;outline:3px solid #286bd0}button,img{-webkit-user-select:none;user-select:none}img{max-width:100%;display:block}strong,b{font-weight:400}@media (width>=661px){body:before{content:"";z-index:0;pointer-events:none;background:#172c4c url(/games/mooncake-match/assets/images/outer-compact.png) 50%/cover no-repeat;position:fixed;inset:0}#root{z-index:1;position:relative}}@media (width>=661px) and (aspect-ratio>=3/2){body:before{background-image:url(/games/mooncake-match/assets/images/outer-desktop.png)}}@media (width>=661px) and (aspect-ratio>=21/10){body:before{background-image:url(/games/mooncake-match/assets/images/outer-wide.png)}}.game-viewport{width:100%;height:100dvh;padding:max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));place-items:center;display:grid;overflow:clip}.game-fit{position:relative}.game-shell{isolation:isolate;transform-origin:0 0;visibility:hidden;border-radius:30px;width:520px;padding:22px 26px 26px;position:absolute;top:0;left:0;box-shadow:0 12px 40px #071329b3;container-type:inline-size}.game-shell:after{content:"";z-index:5;pointer-events:none;border:64px solid #0000;border-image:url(/games/mooncake-match/assets/images/frame-options/01-osmanthus.png) 240;position:absolute;inset:0}.scene{z-index:-1;pointer-events:none;background:#203852 url(/games/mooncake-match/assets/images/background.png) top/100% 100% no-repeat;border-radius:24px;position:absolute;inset:14px}.game-header{text-align:center;padding:32px 0 10px;position:relative}.game-header h1{margin:0}.game-title{aspect-ratio:2;width:76%;margin:-14px auto 0}.settings-button{z-index:1;background:0 0;border:0;width:42px;padding:0;position:absolute;top:44px;left:0}.settings-button:active{transform:rotate(18deg)}.settings-button:disabled{opacity:.6}.season{color:#fff3d3;letter-spacing:.06em;text-shadow:0 1px 8px #1f2d4a;margin:0;font-size:12px;position:absolute;top:22px;right:24px}.tagline{color:#a65331;letter-spacing:.04em;background:#fff0cde8;border-radius:40px;width:fit-content;margin:-12px auto 0;padding:5px 20px;font-size:clamp(12px,2.8cqi,18px);line-height:1.4;position:relative;box-shadow:0 3px 8px #5b241d22}.scoreboard{border:20px solid #0000;border-inline-width:16px;border-image:url(/games/mooncake-match/assets/images/panel.png) 230 170 fill;grid-template-columns:minmax(0,1fr) minmax(0,.78fr) minmax(0,1.65fr);align-items:stretch;gap:8px;min-height:116px;padding:4px;display:grid}.scoreboard span{white-space:nowrap;font-size:clamp(13px,3.2cqi,21px);font-weight:400;line-height:1.2;display:block}.score-box,.moves-box,.targets-box{text-align:center;flex-direction:column;justify-content:center;gap:5px;min-width:0;display:flex}.score-box{background:#bd595052;border-radius:18px;padding:8px 4px}.score-box>strong{color:#93361e;letter-spacing:-.03em;text-shadow:0 2px #ffe1a8;font-variant-numeric:tabular-nums;font-size:clamp(22px,6cqi,39px);line-height:1.05;display:block}.score-box small{color:#8a4b35;font-size:clamp(10px,2.1cqi,13px);line-height:1.2}.moves-box>strong{text-shadow:0 2px #ffe3af;color:#8b331c;font-variant-numeric:tabular-nums;font-size:clamp(37px,9cqi,58px);line-height:1;display:block}.low-moves>strong{color:#ca4034}.targets{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:5px;display:grid}.target{justify-items:center;gap:2px;min-width:0;display:grid}.target img{object-fit:contain;width:100%;height:clamp(30px,9cqi,58px);margin:auto}.target strong{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(12px,3cqi,19px);line-height:1.1;display:block}.target.complete strong{color:#3c772c}.target.complete img{filter:drop-shadow(0 0 4px #c5e784)}.status-line{color:#fff5d2;text-shadow:0 1px 5px #38251c;text-align:center;justify-content:center;align-items:center;gap:9px;height:38px;padding:6px 0;font-size:clamp(12px,2.6cqi,16px);line-height:1.35;display:flex}.cancel-tool{color:#8c3f29;background:#fff0d8;border:1px solid #ffdb9a;border-radius:12px;padding:3px 9px;font-size:11px}.board-frame{border:26px solid #0000;border-inline-width:18px;border-image:url(/games/mooncake-match/assets/images/panel.png) 230 170 fill;padding:3px;position:relative}.board{aspect-ratio:8/7;touch-action:none;border-radius:9px;width:100%;position:relative;overflow:clip}.board-cells{grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(8,1fr);gap:2px;display:grid;position:absolute;inset:0}.board-cells div{background:#d2967266;border-radius:10px;box-shadow:inset 0 1px 3px #8a4e2914}.board-cells div:nth-child(2n){background:#edb98a55}.piece{width:12.5%;height:14.2857%;transform:translate(calc(var(--x) * 100%), calc(var(--y) * 100%));transition:transform var(--step-duration,.18s) ease;touch-action:none;background:0 0;border:0;border-radius:10px;padding:2px;position:absolute;top:0;left:0}.piece>span{width:100%;height:100%;display:block}.piece>span>img{object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 1px #73442430);width:100%;height:100%;transition:transform .14s}.piece.selected{z-index:3;background:#fff59c55;box-shadow:inset 0 0 0 3px #fff5ae,0 0 9px #ffdb63}.piece.selected>span>img{transform:scale(1.07)}.piece.tool-target:hover{background:#fff5b244;box-shadow:inset 0 0 0 2px #ffe59d}.piece[aria-disabled=true]{cursor:default}.piece.removing>span{animation:disappear var(--step-duration,.27s) ease-in both}.piece .sparkle{pointer-events:none;width:100%;height:100%;animation:sparkle var(--step-duration,.27s) ease-out both;position:absolute;inset:0}.piece .falling{animation:fall-in var(--step-duration,.34s) cubic-bezier(.2,.65,.3,1) both}.shuffling{animation:.5s both shuffle-glow}.loading-overlay{text-align:center;background:#fff0dcf0;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.toolbox{background:linear-gradient(#86502d0d,#71351988);border-radius:22px;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px;padding:8px 2px 6px;display:grid}.tool{color:#713c26;background:0 0;border:0;border-radius:18px;min-width:0;padding:0 0 5px;position:relative}.tool-image{aspect-ratio:1;width:68px;margin:auto;display:block;position:relative}.tool-image img{object-fit:contain;width:100%;height:100%;transition:transform .15s}.tool-image b{aspect-ratio:1;color:#fff;background:#d75449;border:2px solid #fff0cd;border-radius:50%;place-items:center;width:25px;font-size:clamp(14px,3.4cqi,22px);line-height:1;display:grid;position:absolute;top:-2px;right:-2px;box-shadow:0 2px 4px #79432e55}.tool-name{white-space:nowrap;text-shadow:0 1px #fff0b5;background:url(/games/mooncake-match/assets/images/button.png) 50%/116% 140% no-repeat;place-items:center;min-height:clamp(34px,7.7cqi,48px);padding:7px 8px;font-size:clamp(11px,2.9cqi,18px);font-weight:400;line-height:1;display:grid}.tool small{color:#ffedbb;text-shadow:0 1px 4px #43271c;margin-top:4px;font-size:clamp(11px,2.5cqi,15px);line-height:1.3;display:block}.tool.active{background:#f8d79c3b;box-shadow:0 0 0 2px #fff0ba,0 0 20px #ffdf8388}.tool.active .tool-image img{transform:translateY(-4px)scale(1.08)}.tool:disabled{opacity:.5}.game-footer{color:#ffefce;text-shadow:0 1px 5px #4a291b;justify-content:center;align-items:center;gap:8px;padding-top:8px;font-size:12px;display:flex}.game-footer>span{letter-spacing:.1em;background:#773f3180;border-radius:20px;padding:6px 18px}.game-footer button{color:#fff0d1;background:#2d354980;border:0;border-radius:15px;padding:7px 16px;font-size:11px}.dialog{color:#703c2a;text-align:center;background:0 0;border:28px solid #0000;border-inline-width:22px;border-image:url(/games/mooncake-match/assets/images/panel.png) 230 170 fill;width:min(440px,100vw - 40px);max-height:calc(100svh - 48px);padding:8px;overflow-y:auto}.dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#152039ba}.dialog-content{min-width:0;padding:2px}.dialog h2{margin:8px 0 18px;font-size:clamp(18px,4.5vw,25px)}.dialog p{font-size:16px;line-height:1.8}.gold-button{color:#74371b;background:url(/games/mooncake-match/assets/images/button.png) 50%/116% 140% no-repeat;border:0;width:100%;max-width:260px;min-height:54px;margin:10px auto;padding:10px 22px;font-size:19px;font-weight:400;line-height:1.3;display:block}.gold-button:active{transform:scale(.97)}.text-button{color:#8b5840;background:0 0;border:0;padding:10px 20px;font-size:13px;text-decoration:underline}.sound-settings{margin:18px 0}.sound-settings label{justify-content:space-between;align-items:center;margin:15px 0;font-weight:400;display:flex}.sound-settings button{color:#773f28;background:#e5bf86;border:0;border-radius:18px;padding:8px 15px}.sound-settings button[aria-checked=true]{color:#fff9e7;background:#78974e}.help-list{text-align:left;padding-left:20px;font-size:16px;line-height:1.8}.help-list li{margin-bottom:9px}.result-art{object-fit:contain;width:100%;height:min(230px,27svh);margin:-8px auto}.result-score{justify-content:center;gap:40px;margin:20px 0;font-size:12px;display:flex}.result-score strong{color:#b5562c;font-size:34px;display:block}@keyframes disappear{25%{transform:scale(1.16)}to{opacity:0;transform:scale(.1)}}@keyframes sparkle{0%{opacity:.9;transform:scale(.25)}to{opacity:0;transform:scale(1.35)}}@keyframes fall-in{0%{transform:translateY(calc(var(--drop) * -100%));opacity:0}30%{opacity:1}to{opacity:1;transform:translateY(0)}}@keyframes shuffle-glow{50%{opacity:.4;transform:scale(.97)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.scoreboard>div,.tool-name,.dialog h2{-webkit-text-stroke:.2px currentColor}.status-line.combo-active{color:#ffe881;text-shadow:0 2px #9f4228,0 0 10px #ec8747;font-size:clamp(14px,3.2cqi,20px)}
