/* Tap games: big, calm, no flashing. Motion is slow and small,
   and turns off completely with prefers-reduced-motion. */
.tap-body { background: linear-gradient(180deg, #eaf7ff 0%, #cdebff 55%, #b5e0ff 100%); min-height: 100vh; }
.tap-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; flex-wrap: wrap; }
.tap-home { font-size: 28px; font-weight: 800; text-decoration: none; color: var(--ink); background: #fff; border: 4px solid var(--line); border-radius: 999px; padding: 10px 22px; min-height: 64px; display: inline-flex; align-items: center; }
.tap-langs { display: flex; gap: 8px; }
.tap-lang { min-width: 64px; min-height: 56px; font-size: 20px; font-weight: 800; border-radius: 18px; background: #fff; border: 3px solid var(--line) !important; color: var(--ink); opacity: .5; }
.tap-lang[aria-pressed="true"] { opacity: 1; background: #fff3c4; }
.tap-title { text-align: center; font-size: 44px; margin: 6px 0 4px; color: var(--ink); }
.tap-menu { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 22px; max-width: 980px; margin: 10px auto 40px; padding: 0 18px; }
.tap-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 200px; border-radius: 36px; background: #fff; border: 5px solid var(--line); box-shadow: 0 8px 0 var(--line); font-size: 34px; font-weight: 800; color: var(--ink); text-decoration: none; }
.tap-tile .big { font-size: 96px; line-height: 1; }
.tap-tile:active { transform: translateY(5px); box-shadow: 0 3px 0 var(--line); }
.tap-stage { max-width: 1000px; margin: 0 auto; padding: 0 16px 40px; }
.tap-ask { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 6px 0 16px; }
.tap-ask p { margin: 0; font-size: 36px; font-weight: 800; text-align: center; }
.tap-again { min-width: 76px; min-height: 76px; border-radius: 50%; font-size: 36px; background: #fff3c4; border: 4px solid var(--line) !important; }
.tap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.tap-choice { min-height: 240px; border-radius: 40px; background: #fff; border: 6px solid var(--line) !important; box-shadow: 0 8px 0 var(--line); display: flex; align-items: center; justify-content: center; font-size: 120px; line-height: 1; transition: transform .35s ease; }
.tap-choice:active { transform: scale(.97); }
.tap-choice.found { background: #e8fbe9; transform: scale(1.04); }
.tap-choice .swatch { width: 160px; height: 160px; border-radius: 50%; border: 5px solid rgba(0,0,0,.15); }
.tap-choice svg { width: 170px; height: 170px; }
.tap-choice .letter { font-size: 150px; font-family: "Arial Hebrew", "SBL Hebrew", "Noto Sans Hebrew", sans-serif; }
.tap-choice .apples { font-size: 64px; display: flex; flex-wrap: wrap; gap: 4px; justify-content: center; max-width: 220px; }
.tap-word { text-align: center; font-size: 30px; min-height: 92px; margin: 14px 0 0; }
.tap-word span { display: inline-block; margin: 0 12px; }
.tap-word .he { font-family: "Arial Hebrew", "Noto Sans Hebrew", sans-serif; direction: rtl; }
.tap-word .th { font-family: "Thonburi", "Noto Sans Thai", sans-serif; }
.tap-dots { display: flex; justify-content: center; gap: 12px; margin-top: 10px; list-style: none; padding: 0; }
.tap-dots li { width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 3px solid var(--line); }
.tap-dots li.on { background: #ffd166; }
.tap-cheer { text-align: center; padding: 30px 10px; }
.tap-cheer .party { font-size: 140px; animation: tap-bob 2.4s ease-in-out infinite; }
.tap-cheer h2 { font-size: 56px; margin: 10px 0; }
.tap-cheer .row { display: flex; gap: 22px; justify-content: center; flex-wrap: wrap; margin-top: 18px; }
.tap-big-btn { min-width: 240px; min-height: 110px; border-radius: 36px; font-size: 36px; font-weight: 800; background: #fff; border: 5px solid var(--line) !important; box-shadow: 0 8px 0 var(--line); color: var(--ink); }
.tap-big-btn.go { background: #c9f2d0; }
@keyframes tap-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { .tap-cheer .party { animation: none; } .tap-choice { transition: none; } }
