/* The arcade shares the room's forest, ivory and warm brass palette. */
.game-dialog{max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain}
.game-dialog button{touch-action:manipulation}
.game-dialog button:focus-visible{outline:3px solid #a47e3f;outline-offset:4px}
.game-dialog .button:disabled{opacity:.55;cursor:default}
.echo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:350px;margin:auto}
.echo-pad{min-height:118px;border:2px solid transparent;border-radius:12px;color:#f6efdf;background:#263d2c;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;transition:background .16s,box-shadow .16s,transform .16s}
.echo-pad>span{font-size:40px;line-height:1}.echo-pad small{font-size:10px;letter-spacing:1px;text-transform:uppercase}.echo-pad-1{background:#465455}.echo-pad-2{background:#846133}.echo-pad-3{background:#6e525a}
.echo-pad:disabled{cursor:default;opacity:1}.echo-pad:not(:disabled):hover{border-color:#d7b690}.echo-pad.echo-lit{background:#f0ddb2;color:#20331b;box-shadow:0 0 0 4px #b69356,0 0 25px #c9a36240;transform:scale(.97)}
.slide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:340px;margin:0 auto;padding:12px;background:#20331b12;border-radius:12px}
.slide-tile{position:relative;aspect-ratio:1;border:1px solid #20331b22;border-radius:7px;background:#d7b690;color:#20331b;box-shadow:0 3px 0 #9a805c;font-family:var(--serif);font-size:34px;transition:background .2s}
.slide-tile span{position:absolute;right:9px;bottom:7px;font-family:serif;font-size:13px;opacity:.5}.slide-tile.slide-correct{background:#20331b;color:#ede5d0;box-shadow:0 3px 0 #152411}.slide-tile:hover:not(:disabled){background:#e9ce9f;color:#20331b}.slide-gap{display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:25px;opacity:.25;border:1px dashed #20331b55;border-radius:7px}
.catch-stage{position:relative;height:280px;max-width:430px;margin:auto;border-radius:16px;background:radial-gradient(ellipse at 65% 0,#4b6350 0,transparent 65%),linear-gradient(#16271e,#273c32);overflow:hidden;touch-action:none;box-shadow:inset 0 0 60px #051b1b50}
.catch-stage:focus-visible{outline:3px solid #b38b51;outline-offset:3px}.catch-moon{position:absolute;top:20px;right:30px;font-family:serif;font-size:43px;color:#f5dfb3;opacity:.4}.catch-stars{position:absolute;inset:0}.catch-star{position:absolute;transform:translate(-50%,-50%);color:#f2d095;font-size:25px;text-shadow:0 0 15px #d7b69080;line-height:1}.catch-basket{position:absolute;left:50%;top:86%;width:18%;height:23px;border:2px solid #d7b690;border-top:0;border-radius:0 0 24px 24px;background:#d7b69025;transform:translateX(-50%);text-align:center;color:#f2d095;z-index:2}.catch-basket span{position:relative;top:-8px;font-size:21px}.catch-horizon{position:absolute;bottom:0;left:0;width:100%;height:9%;border-top:1px solid #d7b69025;background:#0f201a70}.catch-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;max-width:430px;margin:12px auto 0}.catch-controls button{min-height:44px;padding:8px 17px;border:1px solid #20331b30;border-radius:5px;background:#20331b;color:#f5efdf;font-size:12px}.catch-controls>span{font-size:7px;letter-spacing:1px;color:#687160}.catch-static-star{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #c8af78;border-radius:50%;background:#d7b69015;width:120px;height:120px;font-size:67px;color:#efd7a1}.catch-static-star:disabled{opacity:.4}.catch-static-star:active:not(:disabled){background:#d7b69055}
.echo-card .game-cover{background:#3e5145}.slide-card .game-cover{background:#d9c8a8}.catch-card .game-cover{background:radial-gradient(ellipse at 70% 20%,#4c6757,#15291e);color:#e5c797}
.extra-game-art{font-size:80px;letter-spacing:14px;font-family:var(--serif);color:inherit}.echo-card .extra-game-art{color:#e8d2a6}.slide-card .extra-game-art{color:#20331b}.catch-card .extra-game-art{text-shadow:0 0 30px #dcc08a60}
@media(min-width:1000px){.game-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.game-card-copy{padding:22px 18px}.game-card-copy h3{font-size:26px}}
@media(max-width:430px){.echo-pad{min-height:100px}.echo-grid{gap:10px}.slide-grid{gap:8px;padding:9px}.slide-tile{font-size:30px}.catch-stage{height:245px}.catch-controls button{padding:8px 12px}.game-dialog .game-stats{padding:18px 0}.catch-controls>span{font-size:6px}}
@media(prefers-reduced-motion:reduce){.echo-pad,.slide-tile{transition:none}.echo-pad.echo-lit{transform:none}.game-won .memory-grid{animation:none}.game-dialog[open]{animation:none}}

/* Small physical-looking puzzles in each arcade cover. */
.echo-card .extra-game-art{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;transform:rotate(-9deg);font-size:34px;letter-spacing:0}
.echo-card .extra-game-art span{display:grid;place-items:center;width:66px;height:66px;border:1px solid #eddfba66;border-radius:10px;background:#b5c5ad15;box-shadow:0 6px 16px #0e211d30}
.echo-card .extra-game-art span:nth-child(3){background:#e1c392;color:#253d30}
.slide-card .extra-game-art{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;transform:rotate(8deg);font-size:25px;letter-spacing:0;padding:9px;border:1px solid #20331b25;border-radius:10px;background:#a68c6420}
.slide-card .extra-game-art span{display:grid;place-items:center;width:47px;height:47px;border-radius:5px;background:#f1e9d8;box-shadow:0 3px 0 #a18c66}
.slide-card .extra-game-art span:empty{background:transparent;box-shadow:none}
.catch-card .extra-game-art{position:relative;width:180px;height:160px;font-size:38px;letter-spacing:0}
.catch-card .extra-game-art span{position:absolute;top:4px;left:15px}.catch-card .extra-game-art span:nth-child(2){left:78px;top:48px;font-size:24px}.catch-card .extra-game-art span:nth-child(3){left:133px;top:14px;font-size:28px}
.catch-card .extra-game-art i{position:absolute;left:58px;bottom:0;width:73px;height:30px;border:2px solid #ddc498;border-top:0;border-radius:0 0 40px 40px;background:#ddc49815}
