body.puzzle-page{--accent:#07864d;--ink:#123f33;background:linear-gradient(160deg,#f6fbf5,#eff7f9);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);margin:0}body.puzzle-page *{box-sizing:border-box}body.puzzle-page .game-main{width:min(1400px,calc(100% - 32px));margin:24px auto 40px}.puzzle-hero{display:grid;grid-template-columns:1fr 260px;align-items:center;gap:24px;padding:24px 32px;background:linear-gradient(120deg,#e4f7e8,#fff9e3);border:1px solid #d4e5da;border-radius:24px;overflow:hidden}.puzzle-hero h1{font-size:clamp(1.9rem,3.4vw,3.2rem);color:var(--accent);margin:5px 0 10px}.puzzle-hero p{margin:0;line-height:1.55}.puzzle-hero img{width:100%;aspect-ratio:2.12;object-fit:cover;border-radius:18px}.puzzle-hero .eyebrow{font-size:.8rem;letter-spacing:.14em;font-weight:800;color:#5a705f}.puzzle-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;margin-top:20px}.puzzle-play,.puzzle-sidebar,.puzzle-info{background:white;border:1px solid #d9e7df;box-shadow:0 9px 24px #153a2510;border-radius:22px;padding:20px;min-width:0}.puzzle-controls{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.puzzle-controls label{display:flex;align-items:center;gap:7px;font-weight:750;font-size:.95rem}.puzzle-page select,.puzzle-page button{font:inherit}.puzzle-controls button,.puzzle-controls select,.puzzle-result button{padding:10px 15px;border:1px solid #b9d6c4;color:#145637;border-radius:12px;background:#eef8f0;min-height:44px;font-weight:750;cursor:pointer}.puzzle-controls .primary,.puzzle-result button{background:var(--accent);color:white;border-color:var(--accent)}.puzzle-page button[aria-pressed=true]{background:#ffe07b;color:#342707}.puzzle-page button:disabled{opacity:.48;cursor:not-allowed}.puzzle-page button:focus-visible,.puzzle-page a:focus-visible,.puzzle-page select:focus-visible{outline:3px solid #e89600;outline-offset:2px}.puzzle-status{margin:15px 0;padding:12px 16px;border-radius:12px;background:#f0f8f1;line-height:1.45;font-weight:750}.puzzle-metrics{display:flex;gap:10px;margin:12px 0}.puzzle-metrics>div{flex:1;text-align:center;background:#f4f8f5;border:1px solid #dceade;border-radius:13px;padding:10px}.puzzle-metrics small{display:block;color:#546e60;font-size:.82rem}.puzzle-metrics b{font-size:1.5rem;font-variant-numeric:tabular-nums}.board-scroll{max-width:100%;overflow:auto;padding:10px;background:#edf2ee;border-radius:15px;overscroll-behavior:contain;min-width:0}.mines-board{--cell:var(--chosen-cell,56px);display:grid;grid-template-columns:repeat(var(--cols),var(--cell));width:max-content;gap:2px;margin:0 auto;background:#a9b8b0;border:6px solid #b9c7bf;border-radius:7px;padding:2px;touch-action:none;user-select:none}.mines-board.mode-medium{--cell:var(--chosen-cell,36px)}.mines-board.mode-hard{--cell:var(--chosen-cell,30px)}.mine-cell{width:var(--cell);height:var(--cell);padding:0;display:grid;place-items:center;line-height:1;background:linear-gradient(#f4f7f2,#d9e3da);border:0;border-top:3px solid #fff;border-left:3px solid #fff;border-bottom:3px solid #99aaa0;border-right:3px solid #99aaa0;font-weight:900;font-size:calc(var(--cell)*.56);color:#2444a6;touch-action:none}.mine-cell.open{background:#e9eee8;border:1px solid #b3c2b7}.mine-cell.n2{color:#16703b}.mine-cell.n3{color:#b22e38}.mine-cell.n4{color:#5b3195}.mine-cell.n5,.mine-cell.n6,.mine-cell.n7,.mine-cell.n8{color:#234743}.mine-cell.exploded{background:#ff9f92}.mine-cell.bad-flag{background:#ffe4cc}.mine-cell.flagged{color:#c3223a}.mine-cell.hinted,.caro-cell.hinted{outline:3px solid #efa500;outline-offset:-3px}.caro-board{position:relative;display:grid;grid-template-columns:repeat(15,1fr);aspect-ratio:1;width:min(100%,760px);margin:auto;padding:14px;border:10px solid #ba834d;border-radius:15px;background:linear-gradient(145deg,#fcebc3,#e7c58c);box-shadow:inset 0 0 18px #87602640;touch-action:manipulation}.caro-cell{display:grid;place-items:center;position:relative;aspect-ratio:1;background:transparent;border:0;border-radius:0;padding:0;font-weight:850;font-size:clamp(16px,2.55vw,34px);line-height:1;color:#175bc3;cursor:pointer;touch-action:manipulation}.caro-cell:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent calc(50% - .5px),#a37b4280 calc(50% - .5px),#a37b4280 calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(90deg,transparent calc(50% - .5px),#a37b4280 calc(50% - .5px),#a37b4280 calc(50% + .5px),transparent calc(50% + .5px));pointer-events:none}.caro-cell span{z-index:1;text-shadow:0 1px 0 #fff9}.caro-cell.o{color:#c33b3f}.caro-cell.latest{background:#fff8;border-radius:6px;box-shadow:inset 0 0 0 2px #d19635}.caro-cell.winning{background:#b2e9aa;box-shadow:inset 0 0 0 2px #1b8d4c;border-radius:6px}.puzzle-result{margin-top:15px;background:#fff7d5;border:1px solid #e4cf87;border-radius:15px;padding:16px;text-align:center}.puzzle-result[hidden]{display:none}.puzzle-result h2{margin:0 0 8px;font-size:1.4rem}.puzzle-result p{margin:8px 0}.puzzle-sidebar h2,.puzzle-info h2{font-size:1.15rem;margin:0 0 14px}.puzzle-sidebar dl{margin:0}.puzzle-sidebar dl div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e6eee8}.puzzle-sidebar dd{margin:0;font-weight:850}.puzzle-reward{margin-top:20px;padding:15px;border-radius:13px;background:#fff5d7;line-height:1.55;font-size:.9rem}.puzzle-reward strong{display:block;font-size:1rem}.puzzle-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}.puzzle-info p{font-size:1rem;line-height:1.65;margin:0;color:#456052}.puzzle-back{display:inline-flex;gap:8px;margin-top:18px;color:#087d4f;font-weight:750}.puzzle-page .site-footer a{color:#e5ffec}
@media(max-width:900px){.puzzle-layout{grid-template-columns:1fr}.puzzle-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:16px}.puzzle-reward{margin-top:0}.puzzle-info-grid{grid-template-columns:1fr}.puzzle-info{padding:18px}.caro-cell{font-size:clamp(18px,4vw,32px)}}
@media(max-width:600px){body.puzzle-page .game-main{width:calc(100% - 16px);margin:10px auto 25px}.puzzle-hero{padding:17px;grid-template-columns:1fr 90px;gap:10px;border-radius:18px}.puzzle-hero img{aspect-ratio:1;object-fit:cover}.puzzle-hero h1{font-size:1.7rem}.puzzle-hero p{font-size:.9rem}.puzzle-layout{gap:12px;margin-top:12px}.puzzle-play{padding:10px;border-radius:16px}.puzzle-controls{gap:6px}.puzzle-controls label{font-size:.86rem;flex-wrap:wrap}.puzzle-controls button,.puzzle-controls select{padding:8px 10px;font-size:.88rem}.puzzle-metrics b{font-size:1.2rem}.puzzle-status{font-size:.94rem;padding:10px;margin:10px 0}.board-scroll{padding:4px}.mines-board,.mines-board.mode-medium,.mines-board.mode-hard{--cell:var(--chosen-cell,clamp(25px,7.2vw,30px));border-width:3px}.caro-board{padding:4px;border-width:5px;border-radius:10px}.caro-cell{font-size:clamp(16px,4.6vw,25px)}.puzzle-sidebar{padding:14px;grid-template-columns:1fr}.puzzle-sidebar dl{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.puzzle-sidebar dl div{font-size:.87rem}.puzzle-page .puzzle-info-grid{gap:12px}.puzzle-metrics{gap:5px}.puzzle-metrics>div{padding:7px}}
@media(prefers-reduced-motion:reduce){.puzzle-page *{animation:none!important;scroll-behavior:auto!important}}

.puzzle-pan{display:flex;justify-content:center;gap:12px;margin-top:12px}.puzzle-pan button{min-height:44px;padding:8px 14px;border:1px solid #b9d6c4;border-radius:12px;background:#eef8f0;color:#145637;cursor:pointer;font-weight:750}
.puzzle-character{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0}
.puzzle-mascot{width:144px;height:144px;flex:none;background-image:url('/board-games/art/expressions-polished.webp');background-size:300% 200%;background-repeat:no-repeat;background-position:0% 0%;filter:drop-shadow(0 5px 5px #12462918)}
.puzzle-mascot[data-expression="thinking"]{background-position:50% 0%}
.puzzle-mascot[data-expression="celebrating"]{background-position:0% 100%}
.puzzle-mascot[data-expression="encouraging"]{background-position:100% 100%}
.puzzle-speech{max-width:135px;padding:10px 12px;border:1px solid #bbdcc8;border-radius:15px 15px 15px 3px;background:#ffffffd9;color:#17583b;font-size:.85rem;font-weight:700;line-height:1.45}
@media(min-width:601px){.puzzle-hero{grid-template-columns:minmax(0,1fr) 300px}.puzzle-character{gap:10px}}
@media(max-width:600px){.puzzle-hero{grid-template-columns:minmax(0,1fr) 86px}.puzzle-mascot{width:86px;height:86px;filter:none}.puzzle-speech{display:none}}
