*{box-sizing:border-box}body{margin:0;background:#fff9f5;color:#62434b;font-family:"PingFang TC","Microsoft JhengHei",sans-serif;background-image:radial-gradient(#e9cdd14d .8px,transparent .8px);background-size:16px 16px}main{max-width:540px;margin:auto;padding:24px 20px}header{display:flex;align-items:center;justify-content:space-between}.brand{font:600 17px Georgia,serif;letter-spacing:2px}.brand span{display:block;font:10px sans-serif;letter-spacing:4px;margin-top:5px}.tag{font:9px sans-serif;letter-spacing:1.5px;color:#aa7e87}.intro{text-align:center;padding:30px 0 22px}.eyebrow{font-size:11px;letter-spacing:2px;color:#a57480}h1{font-size:34px;margin:12px 0 10px;letter-spacing:2px;position:relative}h1 span{color:#bf6e85}h1 i{font-style:normal;color:#cba15f;font-size:25px;position:absolute;top:-18px;margin-left:4px}.intro p{font-size:12px;color:#9a7c81}.game{background:#fffdfb;border:1px solid #ecd7d9;border-radius:24px;padding:20px;box-shadow:0 12px 40px #9c5e7010}.stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;padding-bottom:17px;border-bottom:1px dashed #e8d5d9}.stats div+div{border-left:1px solid #efdee1}small{display:block;font-size:10px;color:#a17e87;margin-bottom:7px}.stats strong{font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}.progress{display:flex;justify-content:space-between;font-size:10px;color:#a17e87;margin:16px 0 12px}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.card{aspect-ratio:1/1.12;position:relative;border:0;padding:0;background:transparent;perspective:600px;cursor:pointer;border-radius:10px}.inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .35s}.card.open .inner,.card.matched .inner{transform:rotateY(180deg)}.back,.front{position:absolute;inset:0;backface-visibility:hidden;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center}.back{background:#efd0d7;border:1px solid #e5bcc7;color:#a46476;box-shadow:0 3px 0 #e0b9c4}.back:after{content:'';position:absolute;inset:5px;border:1px solid #fff8;border-radius:6px}.bow{font-size:24px;line-height:1.2}.word{font:9px Georgia,serif;letter-spacing:1px;margin-top:7px}.cn{font-size:8px;letter-spacing:1px;margin-top:4px}.front{transform:rotateY(180deg);background:white;border:1px solid #e7d9d7;overflow:hidden}.front img{width:94%;height:88%;object-fit:contain}.matched .front{border:2px solid #c7d3b5;background:#f8faf3}.matched:after{content:'✓';position:absolute;right:3px;top:3px;color:#6f8b52;font-size:13px}button:focus-visible{outline:3px solid #95687b;outline-offset:3px}#message{text-align:center;font-size:11px;min-height:38px;padding-top:16px;color:#aa7988}.primary{border:0;background:#a95e76;color:white;border-radius:12px;padding:14px;width:100%;font-size:14px;letter-spacing:1px;cursor:pointer}.primary:hover{background:#934b63}.restart{display:block;margin:12px auto 0;border:0;background:transparent;color:#9c7080;font-size:12px;cursor:pointer}[hidden]{display:none!important}.rules{text-align:center;font-size:11px;line-height:1.9;color:#a28b8c;margin:19px 0}footer{text-align:center;font-size:10px;color:#b3989c;padding:10px}footer span{display:block;font:10px Georgia,serif;letter-spacing:1px;margin-top:9px}dialog{border:1px solid #ead1d8;border-radius:24px;padding:32px 24px;max-width:380px;width:90%;text-align:center;color:#62434b;background:#fffaf7}dialog::backdrop{background:#52323e88;backdrop-filter:blur(5px)}dialog h2{font-size:21px}dialog p{font-size:12px;line-height:1.8}.resultscore{font-size:54px;color:#ac657b}.resultscore small{display:inline;font-size:15px}.medal{font-size:42px;color:#bd7d91}.close{position:absolute;right:14px;top:10px;border:0;background:none;color:#987783;font-size:24px;cursor:pointer}@media(max-width:380px){main{padding:18px 12px}.game{padding:14px}.board{gap:7px}h1{font-size:29px}.word{font-size:7px}.tag{font-size:8px}}@media(prefers-reduced-motion:reduce){.inner{transition:none}}

/* Fill each card consistently using tightly bounded transparent product assets. */
.front{background:#fff9f6}.front img{width:94%;height:auto;max-height:94%;object-fit:contain}.matched .front{background:#f8faf3}

.back{border:0;background:#f3bfc4;overflow:hidden}.back:after{content:none}.back .back-art{display:block;width:100%;height:100%;object-fit:fill;border-radius:inherit}
