.chess-card{background:linear-gradient(145deg,#edf4ff,#d8e7ff)!important;border-color:#6d8bc5!important}.chess-game{max-width:1180px;margin:2.5rem auto;padding:clamp(1rem,3vw,2.5rem);background:linear-gradient(150deg,#fffaf0,#e9f7ff);border:5px solid #2d5bd7;border-radius:34px}.chess-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.chess-status{padding:.7rem 1rem;border-radius:99px;background:#dff7e5;color:#185c30;font-weight:900}.chess-game h2{text-align:center;font-size:clamp(2rem,5vw,3.6rem);margin:.2rem}.chess-coach{max-width:820px;margin:1rem auto;text-align:center;font-size:clamp(1.15rem,2.5vw,1.55rem);font-weight:800;line-height:1.4;color:#19386c}.chess-toolbar{display:flex;justify-content:center;align-items:center;gap:.7rem;flex-wrap:wrap;margin:1.2rem 0}.chess-toolbar label,.chess-toolbar button{border:2px solid #173052;border-radius:16px;padding:.8rem 1rem;background:#fff;font:inherit;font-weight:800;color:#17213d}.chess-toolbar select{font:inherit;border:0;background:transparent;font-weight:800;color:#2857d6}.chess-toolbar button{cursor:pointer;background:#2857d6;color:white}.chess-stage{display:grid;grid-template-columns:minmax(300px,680px) minmax(190px,1fr);gap:1.4rem;align-items:start}.chess-board{width:min(100%,680px);aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);border:8px solid #17213d;border-radius:12px;overflow:hidden;box-shadow:0 15px 0 #17213d22;touch-action:manipulation}.chess-square{position:relative;display:grid;place-items:center;border:0;padding:0;font-family:"Segoe UI Symbol","Arial Unicode MS",sans-serif;font-size:clamp(1.8rem,5.8vw,4.4rem);line-height:1;cursor:pointer}.chess-square.light{background:#f7e7bd}.chess-square.dark{background:#71a67a}.chess-square.selected{outline:6px solid #ffbe1a;outline-offset:-6px}.chess-square.legal::after{content:"";position:absolute;width:28%;height:28%;border-radius:50%;background:#2857d6aa}.chess-square.capture::after{width:72%;height:72%;border:6px solid #ff624c;background:transparent}.chess-square.hint{animation:chess-hint .7s ease-in-out infinite alternate}.chess-square.last{box-shadow:inset 0 0 0 5px #65d6f5}.chess-piece{position:relative;z-index:1;filter:drop-shadow(0 2px 1px #0003)}.chess-side{background:white;border:2px solid #d6dce7;border-radius:24px;padding:1.2rem;text-align:center}.chess-character{font-size:4rem}.chess-side h3{margin:.3rem}.chess-side p{font-size:1.08rem;line-height:1.45}.captured-pieces{min-height:48px;font-size:2rem;letter-spacing:.15rem;margin-top:1rem}.chess-square:disabled{cursor:default}@keyframes chess-hint{to{box-shadow:inset 0 0 0 8px #ffcf33;transform:scale(.96)}}@media(max-width:800px){.chess-game{margin:1rem .5rem;border-width:3px}.chess-stage{grid-template-columns:1fr}.chess-side{display:flex;align-items:center;text-align:left;gap:1rem;padding:.7rem}.chess-character{font-size:2.5rem}.chess-side h3{display:none}.chess-side p{margin:0}.chess-square{font-size:clamp(1.75rem,10vw,3.6rem)}.chess-toolbar label,.chess-toolbar button{width:100%;text-align:center}.chess-top{align-items:flex-start;flex-direction:column}}

/* v27: keep every square perfectly even and reserve useful room for the move journal. */
.chess-stage{grid-template-columns:minmax(0,620px) minmax(270px,330px);justify-content:center;gap:clamp(1rem,3vw,2rem)}.chess-board{width:100%;max-width:620px;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr))}.chess-square{min-width:0;min-height:0;overflow:hidden;font-size:clamp(1.65rem,5vw,4rem)}.chess-side{min-width:0;padding:1rem;text-align:left}.chess-coach-box{display:flex;align-items:center;gap:.8rem;border-bottom:1px solid #dde2ea;padding-bottom:.7rem}.chess-coach-box .chess-character{flex:0 0 auto;font-size:3.2rem}.chess-side h3{display:block;margin:.2rem 0}.chess-side p{font-size:.98rem;line-height:1.4;margin:.25rem 0}.move-journal{margin-top:.8rem}.move-help{color:#687184;font-size:.85rem!important}.move-head,.move-journal li{display:grid;grid-template-columns:2rem 1fr 1fr;gap:.45rem;align-items:center}.move-head{padding:.45rem .35rem;font-size:.8rem;font-weight:900;color:#4b5873;border-bottom:2px solid #dfe5ef}.move-journal ol{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto;scrollbar-color:#9bb6e8 #edf2fa}.move-journal li{padding:.55rem .35rem;border-bottom:1px solid #e6e9ef;font-size:.9rem;font-weight:800}.move-journal li span:first-child{color:#7b8495}.move-journal li.current{background:#edf4ff;border-radius:8px}.captured-box{margin-top:.9rem;padding-top:.7rem;border-top:1px solid #dde2ea}.captured-pieces{min-height:38px;font-size:1.6rem;letter-spacing:.1rem;margin-top:.35rem;color:#687184}@media(max-width:900px){.chess-stage{grid-template-columns:minmax(0,620px)}.chess-side{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.chess-side h3{display:block}.chess-coach-box{grid-column:1/-1}.move-journal ol{max-height:180px}}@media(max-width:600px){.chess-game{margin:.5rem .25rem;padding:.75rem}.chess-side{display:block}.chess-board{border-width:5px}.chess-square{font-size:clamp(1.6rem,10vw,3.3rem)}.move-journal ol{max-height:170px}}

/* v28: clearly preview Matio's black move before it happens. */
.chess-square.matio-preview{z-index:2;animation:matio-move-preview .65s ease-in-out infinite alternate;box-shadow:inset 0 0 0 7px #ff715b}.chess-square.matio-preview::before{content:"";position:absolute;inset:8%;border:4px dashed #fff;border-radius:12px;z-index:2;pointer-events:none}@keyframes matio-move-preview{to{filter:brightness(1.18);transform:scale(.94)}}

/* v29: make the adventure card unmistakably available and tappable. */
.cards .chess-card{position:relative;overflow:hidden;border:3px solid #2857d6!important;background:linear-gradient(145deg,#eef4ff 0%,#d9e7ff 58%,#c8dcff 100%)!important;box-shadow:0 8px 0 #173b9b,0 14px 26px #2857d62b}
.cards .chess-card::after{content:"";position:absolute;width:130px;height:130px;right:-48px;top:-52px;border-radius:50%;background:#fff7}
.cards .chess-card>span{background:#2857d6;color:#fff;box-shadow:0 4px 10px #173b9b55}
.cards .chess-card strong{color:#173b9b}
.chess-play-badge{display:inline-block;margin-top:16px;padding:8px 13px;border-radius:999px;background:#2857d6;color:#fff;font-size:12px;font-style:normal;font-weight:900;letter-spacing:.08em}
.cards .chess-card:hover,.cards .chess-card:focus-visible{transform:translateY(-6px);border-color:#173b9b!important;box-shadow:0 10px 0 #173b9b,0 18px 30px #2857d638;outline:3px solid #75bfff;outline-offset:3px}
.cards .chess-card:active{transform:translateY(4px);box-shadow:0 3px 0 #173b9b}
