/* Leaforia arcade design system. Scoped: the world and saved profiles stay intact. */
.play-modal{--accent:#587b62;--tint:#edf0df;width:min(1080px,100%);max-height:94dvh;padding:0!important;background:#fffaf0;border:1px solid #e1d7c3;border-radius:28px;box-shadow:0 28px 100px #17251f66;font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif;color:#34433a;overflow:auto;scrollbar-gutter:stable}
.play-modal button{font-family:inherit;transition:transform .15s,background .15s,box-shadow .15s;touch-action:manipulation}
.play-modal button:active:not(:disabled){transform:translateY(2px)}
.play-modal button:focus-visible,.arcade-gallery button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.play-modal button:disabled{cursor:default}
.play-top{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid #e6decd;background:#fffaf0;gap:12px}
.play-back,.play-voice{border:1px solid #ddd7c9;border-radius:12px;background:#fffdf6;color:#46554b;min-height:44px;padding:10px 15px;font-weight:700}.play-voice{font-size:21px;min-width:44px}.play-brand{letter-spacing:3px;font-size:12px;font-weight:900}.play-brand i{font-style:normal;color:#9b9989;letter-spacing:1px}
.play-layout{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:540px}.play-story{padding:28px;background:var(--tint);border-right:1px solid #d6d5c344;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden}.play-art{width:100%;max-width:240px;align-self:center}.play-art svg{display:block;width:100%;height:auto}.play-kicker{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:1.6px;line-height:1.8;margin:14px 0 8px}.play-modal .play-story h2{font-family:Georgia,serif;font-size:33px;line-height:1.14;letter-spacing:-.8px;color:#35493c;margin:0 0 14px}.play-modal .play-story>p{font-size:14px;line-height:1.7;color:#596457;margin:0}.play-companion{display:flex;align-items:center;gap:10px;padding-top:30px;margin-top:auto}.play-companion>span{font-size:32px}.play-modal .play-companion p{font-size:11px;line-height:1.6;color:#67705e;margin:0}
.play-stage{min-width:0;padding:26px 32px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at top,#fffef8,#faf6eb);text-align:center;position:relative}.play-stage>*{max-width:100%;flex-shrink:0}.play-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 24px;border-top:1px solid #e7dfce;color:#767f6d;font-size:10px;text-align:left;letter-spacing:.2px}.play-footer button{border:0;background:transparent;color:var(--accent);font-size:13px;font-weight:800;min-height:44px;padding:8px 12px}
.play-modal .quest-indicator{background:var(--tint);border:1px solid #d8d8c9;border-radius:30px;color:var(--accent);font-size:12px;letter-spacing:1px;font-weight:800;padding:8px 17px;margin:0 0 10px}.round-progress{display:flex;gap:6px;justify-content:center;margin-bottom:20px}.round-progress span{width:25px;height:5px;background:#e2e2d7;border-radius:10px}.round-progress .filled{background:var(--accent)}
.play-modal .game-feedback{min-height:26px;font-size:14px;color:var(--accent);margin:14px 0 0;font-weight:700}.play-modal .arcade-note{border:0;border-radius:12px;background:var(--tint);color:#47584c;font-size:13px;font-weight:600;padding:12px 16px;line-height:1.5;width:100%;margin:0 0 15px}.play-modal .arcade-note:empty{display:none}
.play-modal .arcade-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:10px 0}.play-modal .arcade-actions button,.play-modal .choice{border:1px solid #d4d3c0;background:#fffdf7;color:var(--accent);box-shadow:0 3px #dedcc9;border-radius:12px;min-height:44px;padding:11px 16px;font-size:12px;font-weight:700}.play-modal .mini-options{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 0}.play-modal .mini-option{border:1px solid #dbd6c4;background:#fffef7;box-shadow:0 5px 0 #e6dfcc;border-radius:19px;padding:19px 12px;min-height:76px;color:var(--accent);font-size:21px;font-weight:800}.play-modal .wrong{animation:gentle-shake .25s;background:#fae5df!important}
/* 01 · Numerical constellations */
.play-modal .math-target{font-family:Georgia,serif;font-size:clamp(30px,5vw,48px);background:transparent;border:0;box-shadow:none;color:#3d555d;letter-spacing:2px;margin:10px 0 25px;padding:10px}.play-modal .math-target span{color:#b88437}.play-modal .balloon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:min(100%,360px)}.play-modal .balloon{height:112px;min-width:0;border:1px solid #b7ccca;border-radius:22px!important;background:#edf4ef;color:#395c63;font-size:35px;font-weight:800;box-shadow:0 6px #c4d7cc!important;animation:none;position:relative}.play-modal .balloon:nth-child(2),.play-modal .balloon:nth-child(3){background:#fbedd4;border-color:#e5cf9e;box-shadow:0 6px #e8d5ac!important;color:#94672f}.play-modal .balloon span{display:block;font-size:16px;opacity:.6;margin-bottom:7px}.play-modal .balloon:after{display:none}
/* 02 · Letterpress tiles */
.play-modal .word-emoji{font-size:65px;line-height:1.3;margin:4px 0 18px;filter:drop-shadow(0 5px 0 #d0b88a24)}.play-modal .letter-slots{gap:6px;display:flex;justify-content:center;flex-wrap:wrap;width:100%;margin:8px 0 16px}.play-modal .letter-slot{border:0;border-bottom:3px solid #c79b72;border-radius:8px;background:#f0e4d4;min-width:31px;width:42px;height:52px;font-size:25px;color:#a66648;display:grid;place-items:center}.play-modal .letter-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}.play-modal .letter-buttons button,.play-modal .letter-keyboard button{width:44px;height:48px;border:1px solid #d7c7a9;border-radius:10px;background:#fffaf0;color:#725236;box-shadow:0 4px #dfcaac;font-size:21px;font-weight:800}.play-modal .letter-buttons button:disabled{opacity:.25;box-shadow:none}
/* 03 · Botanical keepsake cards */
.play-modal .memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;width:min(100%,430px);margin:15px 0}.play-modal .memory-cell{aspect-ratio:4/5;width:100%;height:auto;min-height:0;border:4px solid #faf7e8;border-radius:15px!important;background:repeating-linear-gradient(45deg,#779771 0 9px,#72916c 9px 10px);color:#e8dcac;font-size:31px;box-shadow:0 4px 0 #b4bd9d!important;transition:transform .3s,background .3s;position:relative}.play-modal .memory-cell.revealed{background:#fff9e7;transform:rotate(-2deg)}.play-modal .memory-cell.matched{background:#e8efd9;opacity:1;color:#3d624b}.play-modal .memory-cell.matched:after{content:'✓';position:absolute;bottom:3px;right:6px;font-size:11px;color:#47734e}
/* 04 · Jewels arranged in a velvet tray */
.play-modal .pattern-sequence{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;background:#e8dff0;border:1px solid #d2c1dd;padding:18px 10px;border-radius:22px;width:100%;margin:18px 0}.play-modal .pattern-gem{width:48px;height:62px;display:grid;place-items:center;background:#fbf7ff;color:#86639c;border:0;border-radius:15px;font-size:32px;box-shadow:0 4px #cab6d5}.play-modal .pattern-gem:nth-child(2n){color:#c08e4d}.play-modal .pattern-gem:last-child{border:2px dashed #aa8bb9;background:transparent;box-shadow:none}.play-modal[data-game=patterns] .mini-options{grid-template-columns:repeat(3,1fr);max-width:330px}
/* 05 · Four touch instruments */
.play-modal .rhythm-stage{width:100%;background:transparent;border:0;box-shadow:none;padding:8px;margin:0 0 12px}.play-modal .rhythm-target{font-size:64px;line-height:1.1;color:#a26279}.play-modal #rhythmFeedback{font-size:16px;color:#81596a;min-height:40px}.play-modal .rhythm-pads{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%}.play-modal .rhythm-pads button{height:130px;min-width:0;background:var(--pad);border:2px solid #ffffff8a;border-radius:38px 38px 22px 22px;font-size:30px;box-shadow:0 8px #a97d7c55,inset 0 3px #ffffff8a}.play-modal .rhythm-pads button:nth-child(2){margin-top:12px;height:118px}.play-modal .rhythm-pads button:nth-child(3){margin-top:22px;height:108px}.play-modal .rhythm-pads button.active{transform:translateY(-8px);filter:brightness(1.18);outline:4px solid #9e637a;outline-offset:3px}.play-modal .tiny-note{font-size:11px;margin:20px 0 12px}
/* 06 · Field journal */
.play-modal .nature-question{font-family:Georgia,serif;font-size:25px;line-height:1.35;color:#4e6345;margin:15px 0 10px;max-width:400px}.play-modal[data-game=nature] .mini-option{font-size:17px;min-height:96px;background:#f1f4e8;border-color:#ced8bd;color:#4d6544}
/* 07, 08, 12 · Tactile boards */
.play-modal .arcade-board.ttt{width:min(100%,340px);background:#9d7858;border:5px solid #bb9570;padding:12px;gap:9px;box-shadow:0 8px #78583f,0 16px 22px #71543b26;border-radius:20px;margin:10px auto 25px}.play-modal .arcade-board.ttt .arcade-cell{background:#fbf1db;border:1px solid #c5a97e;box-shadow:inset 0 -4px #e7d3af;border-radius:12px;aspect-ratio:1;min-width:0}.play-modal .arcade-board.ttt .arcade-cell:disabled{opacity:1}.play-modal .arcade-board.ttt .arcade-cell:empty:not(:disabled):hover{background:#fffdf3}.play-modal .arcade-board.chess{width:min(100%,440px);border:9px solid #6c8177;outline:1px solid #4e665c;border-radius:10px;box-shadow:0 7px #445e51,0 16px 25px #4e665c22;margin:10px 0 22px}.play-modal .arcade-board.chess .arcade-cell{position:relative;aspect-ratio:1;min-width:0;padding:0}.play-modal .arcade-board.chess .light{background:#f4ebd2}.play-modal .arcade-board.chess .dark{background:#9dab8c}.play-modal .arcade-board.chess .arcade-cell svg{width:94%;height:94%;filter:drop-shadow(0 2px 0 #283e3326)}.play-modal .arcade-board.chess .selected{background:#edcf82!important;box-shadow:inset 0 0 0 3px #bf9443}.play-modal .arcade-board.chess .legal{box-shadow:inset 0 0 0 3px #617c52}.play-modal .arcade-board.chess .legal:after{content:'';position:absolute;width:18%;height:18%;background:#456e49;border:2px solid #f7f2d7;border-radius:50%;left:41%;top:41%;pointer-events:none}.play-modal .arcade-board.connect{width:min(100%,430px);padding:13px;gap:8px;border:6px solid #55756b;background:#77988a;border-radius:22px;box-shadow:0 9px #3c5e54,0 20px 26px #3d584629;margin:10px 0 28px}.play-modal .arcade-board.connect .arcade-cell{aspect-ratio:1;background:#e4dfcc;border:2px solid #55756b;box-shadow:inset 0 4px 5px #46645655;min-width:0}.play-modal .arcade-board.connect .red{background:radial-gradient(circle at 35% 30%,#e9a281,#c67351);border-color:#a75d43;box-shadow:inset 0 -4px #ad6346}.play-modal .arcade-board.connect .yellow{background:radial-gradient(circle at 35% 30%,#ffdf8e,#d8a748);border-color:#b68b3c;box-shadow:inset 0 -4px #ba8e3d}
/* 09 · Serpentine path, with explicit jump destinations */
.play-modal .dice-path{direction:ltr;display:grid;grid-template-columns:repeat(10,1fr);gap:3px;width:100%;border:8px solid #b5bb92;border-radius:15px;padding:5px;background:#b5bb92;margin:12px 0}.play-modal .dice-tile{aspect-ratio:1/1.3;border:0!important;border-radius:6px!important;box-shadow:none!important;background:#fff8e6!important;min-width:0;font-size:12px;display:block;position:relative;text-align:left;padding:3px;color:#536348}.play-modal .dice-tile small{font-size:10px;font-weight:800}.play-modal .dice-tile b{display:block;text-align:center;font-size:16px;line-height:1}.play-modal .dice-tile em{display:block;text-align:center;font-style:normal;font-size:8px}.play-modal .dice-tile.ladder{background:#dfebc9!important}.play-modal .dice-tile.snake{background:#f6ddc4!important}.play-modal .dice-tile .occupant{inset:5px 0 0;font-size:22px;pointer-events:none;text-shadow:0 0 5px white}.play-modal #diceRoll{background:#75874f;color:white;border-color:#667644;font-size:15px;box-shadow:0 4px #536238}
/* 10 · Autumn word puzzle */
.play-modal .hang-word{font-family:Georgia,serif;font-size:clamp(20px,4vw,34px);letter-spacing:3px;padding:24px 10px;border:0;border-radius:17px;background:#f6ead4;width:100%;margin:5px 0 20px;overflow-wrap:anywhere;color:#9d6a32}.play-modal .letter-keyboard{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;width:min(100%,430px);margin:12px auto}.play-modal .letter-keyboard button{width:38px;height:44px;font-size:18px}.play-modal .letter-keyboard button:disabled{opacity:.3;box-shadow:none}
/* 11 · Illustrated suspect cards */
.play-modal .guess-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;width:100%;margin:14px 0}.play-modal .guess-person{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid #b9ceca;border-radius:14px;background:#fffdf4;padding:5px 4px 9px;font-size:10px;color:#4a6669;box-shadow:0 4px #c5d6cd;min-width:0}.play-modal .guess-person .face{width:100%;max-width:90px;background:#e9eee2;border-radius:10px;overflow:hidden;display:block}.play-modal .guess-person .face svg{width:100%;display:block}.play-modal .guess-person.eliminated{opacity:.25;filter:grayscale(1);box-shadow:none}.play-modal #whoQuestions{gap:6px}.play-modal #whoQuestions button{padding:10px;font-size:11px;flex:1;min-width:100px}
.play-modal .game-result{width:100%;padding:28px;background:var(--tint);border:1px solid #d5d7be;border-radius:28px}.play-modal .game-result .big-star{font-size:75px;animation:celebrate .8s ease-out}.play-modal .game-result .reward{font-size:42px;font-weight:900;color:var(--accent);margin:16px 0}.play-modal .game-result p{font-size:15px;line-height:1.6;color:#58654f}
.arcade-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.arcade-gallery button{min-width:0;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:8px;border:1px solid #ded8c8;border-radius:18px;padding:12px;background:var(--tint);color:var(--accent);box-shadow:0 4px #d9d6c5}.arcade-gallery svg{width:100%;height:110px}.arcade-gallery strong{font-size:13px;line-height:1.4}.arcade-gallery span{font-size:11px;margin-top:auto;padding-top:5px}
@keyframes gentle-shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes celebrate{0%{transform:scale(.6) rotate(-15deg)}60%{transform:scale(1.1) rotate(5deg)}100%{transform:scale(1)}}
@media(max-width:760px){.modal-backdrop:has(.play-modal){padding:0;background:#fffaf0}.play-modal{width:100%;max-height:100dvh;height:100dvh;border:0;border-radius:0;scrollbar-gutter:auto}.play-top{padding:calc(9px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 9px max(14px,env(safe-area-inset-left))}.play-brand{font-size:10px;letter-spacing:2px}.play-back{padding:8px 10px;font-size:12px}.play-layout{grid-template-columns:1fr;min-height:0}.play-story{display:block;padding:18px 22px 18px 114px;min-height:126px;border-right:0;border-bottom:1px solid #d6d5c344}.play-art{position:absolute;left:6px;top:12px;width:105px}.play-kicker{font-size:8px;letter-spacing:.8px;margin:0 0 5px}.play-modal .play-story h2{font-size:24px;letter-spacing:-.4px;margin:0 0 7px}.play-modal .play-story>p{font-size:12px;line-height:1.5}.play-companion{display:none}.play-stage{padding:20px max(18px,env(safe-area-inset-right)) 20px max(18px,env(safe-area-inset-left));min-height:410px}.play-footer{padding:8px 18px calc(8px + env(safe-area-inset-bottom));font-size:9px}.play-footer>span{max-width:65%}.play-modal .balloon{height:100px}.play-modal .pattern-gem{width:38px;height:52px;font-size:27px}.play-modal .pattern-sequence{gap:5px;padding:16px 6px}.play-modal .rhythm-pads{gap:8px}.play-modal .rhythm-pads button{font-size:27px}.play-modal .dice-path{border-width:4px;padding:2px;gap:2px}.play-modal .dice-tile{padding:2px;aspect-ratio:1/1.7}.play-modal .dice-tile b{font-size:12px}.play-modal .dice-tile small{font-size:8px}.play-modal .dice-tile em{font-size:7px}.play-modal .dice-tile .occupant{font-size:17px}.play-modal .arcade-board.connect{gap:5px;padding:9px;border-width:5px}.play-modal .arcade-board.chess{border-width:6px}.play-modal .memory-grid{max-width:350px}.play-modal .guess-grid{gap:7px}.arcade-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.arcade-gallery svg{height:90px}}
@media(max-height:500px) and (min-width:650px){.play-layout{grid-template-columns:220px minmax(0,1fr)}.play-story{display:flex;padding:20px;min-height:0}.play-art{position:static;width:120px}.play-story .play-kicker{margin-top:6px}.play-modal .play-story h2{font-size:24px}.play-stage{padding:18px;min-height:0}.play-companion{display:none}.play-modal .arcade-board.chess{max-width:300px}.play-modal .arcade-board.ttt{max-width:260px}.play-modal .arcade-board.connect{max-width:300px}}
@media(prefers-reduced-motion:reduce){.play-modal *{animation:none!important;transition:none!important}}
/* Override the world-only footer hiding rule. */
.play-modal .play-footer{display:flex!important}
.play-modal .balloon span{color:var(--accent);text-shadow:none}
.play-modal .math-target{text-shadow:none}
@media(max-width:760px){.play-modal{max-height:100dvh!important}.modal-backdrop:has(.play-modal){background:#fffaf0!important}.play-modal #whoQuestions{display:grid;grid-template-columns:1fr 1fr;width:100%}.play-modal #whoQuestions button{min-width:0}}
.play-modal .play-top{position:sticky;top:0;z-index:4}

/* Painted village identity carries through every game and the map gallery. */
.play-art{max-width:250px;filter:drop-shadow(0 9px 9px #603d2520)}
.play-story{background:radial-gradient(ellipse at top,#fff7df 0%,var(--tint) 75%)}
.play-stage{background:radial-gradient(ellipse at top,#fffdf5f5,#f4ead7f5),url('assets/terrain-painted.png');background-size:auto,900px}
.arcade-gallery button{background:linear-gradient(145deg,#fff8e6,var(--tint));border-color:#cdb58d}

.word-emoji svg{width:110px;height:100px;display:block;margin:auto}.memory-cell svg{width:70%;height:70%;display:block;margin:auto}.rhythm-pads button svg{width:62%;height:62%;display:block;margin:auto}.play-companion>span{width:42px;flex-shrink:0}.play-companion svg{width:100%;height:42px}.big-star svg{width:120px;height:120px;display:block;margin:auto}

/* Painted pattern tokens: shape and name carry meaning independently of color. */
.play-modal .pattern-gem svg{width:88%;height:88%;display:block}
.play-modal[data-game=patterns] .pattern-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px 8px;min-height:110px}
.play-modal .pattern-choice svg{width:62px;height:62px;display:block}
.play-modal .pattern-choice span{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
@media(max-width:360px){.play-modal .pattern-choice svg{width:48px;height:48px}.play-modal .pattern-choice span{font-size:12px}.play-modal[data-game=patterns] .pattern-choice{padding:10px 4px;min-height:96px}}

/* Painted nature choices retain readable labels and native button controls. */
.play-modal[data-game=nature] .nature-choice{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 14px;min-height:110px}
.play-modal .nature-choice svg{width:90px;height:90px;flex:0 0 90px;display:block}
.play-modal .nature-choice span{overflow-wrap:anywhere;font-size:16px;line-height:1.3}
@media(max-width:600px){.play-modal[data-game=nature] .nature-choice{flex-direction:column;gap:5px;padding:8px;text-align:center;min-height:116px}.play-modal .nature-choice svg{width:68px;height:68px;flex-basis:68px}.play-modal .nature-choice span{font-size:14px}}

/* Painted adventure trail: numbers, jumps and both occupants remain distinct. */
.play-modal .trail-legend{display:flex;align-items:center;justify-content:center;gap:22px;width:100%;color:#536348;font-size:13px;font-weight:800}
.play-modal .trail-legend>span{display:flex;align-items:center;gap:8px}.play-modal .trail-legend svg{width:30px;height:48px;display:block}.play-modal #dieFace svg{width:44px;height:44px}
.play-modal .dice-path{border:6px solid #8b7553;background:#b9b58c;box-shadow:0 4px 0 #6a5c43,inset 0 0 18px #777c54;gap:3px;padding:5px;margin:10px 0}
.play-modal .dice-tile{aspect-ratio:1/1.15;background:linear-gradient(135deg,#fffbeb,#e5dcc1)!important;box-shadow:inset 0 0 0 1px #c3b58e!important;overflow:hidden}
.play-modal .dice-tile small{position:relative;z-index:3;background:#fff9e7dd;border-radius:4px;padding:0 2px;font-size:11px;color:#354e40}
.play-modal .dice-tile.ladder{background:linear-gradient(135deg,#f2f6da,#c6d6a9)!important}.play-modal .dice-tile.snake{background:linear-gradient(135deg,#fae6cb,#e6c3a4)!important}.play-modal .dice-tile.finish{background:linear-gradient(135deg,#fff1ac,#d5ae58)!important}
.play-modal .trail-jump{position:absolute;inset:11px 0 13px;display:flex;justify-content:center}.play-modal .trail-jump svg{width:100%;height:100%;display:block}
.play-modal .dice-tile em{position:absolute;bottom:1px;left:0;right:0;font-size:10px;font-weight:800;color:#3d5136;z-index:3}
.play-modal .trail-occupants{position:absolute;inset:13px 0 11px;display:flex;align-items:center;justify-content:center;z-index:2}
.play-modal .trail-token{height:100%;max-width:50%;filter:drop-shadow(0 0 2px #fff)}.play-modal .trail-token svg{width:100%;height:100%;display:block}.play-modal .dice-tile.occupied{outline:2px solid #567f78;outline-offset:-2px}.play-modal .occupied .trail-jump{opacity:.3}
@media(max-width:600px){.play-modal .dice-path{gap:2px;padding:3px;border-width:3px}.play-modal .dice-tile{aspect-ratio:1/1.8;padding:1px}.play-modal .dice-tile small{font-size:10px;padding:0 1px}.play-modal .dice-tile em{font-size:8px}.play-modal .trail-legend{gap:16px}.play-modal .trail-jump{inset:12px 0 12px}}

/* Each matching card bears the same painted conservatory on its reverse. */
.play-modal .memory-cell.closed {
  display:grid;
  place-items:center;
  padding:5%;
  border:3px solid #e6c686;
  background:radial-gradient(ellipse at 40% 25%,#51654b,#283f34 75%);
  box-shadow:inset 0 0 0 2px #344634,inset 0 0 0 3px #b5965e,0 3px 0 #715b3d!important;
}
.memory-seal {
  width:79%;
  aspect-ratio:1;
  border:2px solid #d5b477;
  border-radius:50%;
  background:#6a7150 url('assets/rooms-painted.png') 66.6667% 0 / 400% 300%;
  box-shadow:0 0 0 2px #29372a,0 0 0 3px #ac945f;
}
.play-modal .memory-cell:focus-visible {outline:3px solid #814523;outline-offset:3px}

#villageMap {display:block;width:100%;height:auto;border:3px solid #947449;border-radius:12px;background:#a1a270}
@media(max-width:600px){
  .play-modal[data-game=memory] .play-stage {min-height:0;padding-top:12px;padding-bottom:14px}
  .play-modal[data-game=memory] .memory-grid {gap:7px;margin:8px 0}
  .play-modal[data-game=memory] .memory-cell {aspect-ratio:1}
}

.play-modal[data-game=rhythm] .rhythm-target {
 background:#47352c; border:3px solid #c4a16b;color:#f3d89f;
 box-shadow:0 0 0 3px #715444,inset 0 0 14px #261c16;
}
.rhythm-target svg {display:block;width:78%;height:78%}
.rhythm-pads button span {display:block;font:bold 13px system-ui;color:#352d26}
@media(max-width:600px){
 .play-modal[data-game=rhythm] .rhythm-pads {grid-template-columns:repeat(2,minmax(0,1fr))}
 .play-modal[data-game=rhythm] .rhythm-pads button {height:74px;margin:0;border-radius:16px}
}
