.tp-game{max-width:1370px}.tp-game h1{background:linear-gradient(110deg,#513581,#147367);background-clip:text;color:transparent}.tp-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0 18px}.tp-tabs button{border:1px solid #cebee1;border-radius:17px;background:#fff;padding:14px;color:#503965;min-height:64px;font-weight:750;text-align:left}.tp-tabs button span{font-size:1.8rem;vertical-align:middle;margin-right:12px;color:#ac6c2e}.tp-tabs button[aria-pressed=true]{background:linear-gradient(135deg,#e8d8ff,#e1f6ee);border:2px solid #75549a;box-shadow:0 5px 14px #69498618}.tp-tabs button:disabled{opacity:.7}.tp-tabs button[aria-pressed=true]:disabled{opacity:1}.tp-settings{display:flex;flex-wrap:wrap;gap:12px;background:#ffffffc9;border-radius:18px;padding:18px;border:1px solid #e4daef}.tp-settings label{display:flex;flex:1 1 180px;flex-direction:column;gap:7px;font-size:.83rem;font-weight:700;color:#5b476e}.tp-settings select{font:inherit;padding:10px;border:1px solid #bfaecd;background:#fff;border-radius:9px;min-height:44px;color:#3d2b50;width:100%}.tp-settings-note,.tp-privacy{font-size:.84rem;color:#695773;line-height:1.6}.tp-scene{position:relative;margin:10px 0 20px;border:1px solid #ded1e7;border-radius:22px;background:linear-gradient(120deg,#edf8f9,#faf2de);overflow:hidden}.tp-scene svg{display:block;width:100%;max-height:120px}.tp-scene>span{position:absolute;right:16px;bottom:8px;border-radius:12px;background:#fff;padding:6px 13px;font-size:.8rem;color:#405d50;font-weight:750}.tp-bloom{animation:tp-appear .3s ease-out;transform-box:fill-box;transform-origin:bottom}.tp-copy{font-size:1.3rem;min-height:80px}.tp-copy span{white-space:pre}.tp-full-text{font-size:.9rem;line-height:1.6;margin:12px 0}.tp-full-text summary{color:#604681;font-weight:700;cursor:pointer}.tp-keyboard-scroll{overflow-x:auto;max-width:100%;padding:5px}.tp-keyboard-scroll .ty-keyboard:has(button){min-width:620px}.tp-keyboard-scroll button.ty-key{min-width:38px;min-height:46px}.tp-keyboard-scroll .ty-space-row{padding:3px 12% 0}.tp-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:15px;margin:22px 0}.tp-bottom a{color:#5e3d83;font-weight:750;padding:10px}.tp-entry{margin:24px 0;padding:22px;border:1px solid #dfd3ea;border-radius:23px;background:linear-gradient(115deg,#f4ecff,#eff9f1);color:#3f3154}.tp-entry h2{font-size:1.3rem;margin:8px 0}.tp-entry p{line-height:1.55;margin:8px 0 18px}.tp-entry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tp-entry-card{display:flex;flex-direction:column;text-decoration:none!important;color:#4c3669!important;background:#fff;padding:18px;border:1px solid #d8c9e6;border-radius:16px;box-shadow:0 4px 0 #dacde7;gap:8px;transition:transform .15s}.tp-entry-card:hover{transform:translateY(-2px)}.tp-entry-card>span{font-size:2rem;color:#a56329}.tp-entry-card small{font-size:.84rem;line-height:1.5;font-weight:400}.tp-entry-card:nth-child(2){background:#f6fff9;border-color:#acd5bc}.tp-entry-card:nth-child(3){background:#fffaf0;border-color:#e8d1a7}.tp-course-nav{max-width:1300px;margin:0 auto;padding:0 24px}.tp-course-nav a{display:inline-block;padding:12px 0;color:#63418e;font-weight:750}.tp-game .ty-header>a{flex-shrink:0;text-decoration:none}
@keyframes tp-appear{from{transform:scale(.92);opacity:.6}to{transform:scale(1);opacity:1}}
@media(max-width:700px){.tp-tabs{grid-template-columns:1fr;gap:7px;margin-top:18px}.tp-tabs button{min-height:48px;padding:8px 12px}.tp-tabs button span{font-size:1.4rem}.tp-settings{padding:12px}.tp-settings label{flex-basis:140px}.tp-entry-grid{grid-template-columns:1fr}.tp-game .ty-header>a{margin-top:15px}.tp-copy{font-size:1.1rem}.tp-game h1{font-size:1.8rem}.tp-game .ty-card{padding:18px}.tp-scene svg{min-height:95px}.tp-course-nav{padding:0 12px}}
@media(prefers-reduced-motion:reduce){.tp-game *,.tp-entry *{animation:none!important;transition:none!important}}

.tp-entry-card .tp-device-label{align-self:flex-start;padding:4px 9px;border:1px solid #c9b998;border-radius:999px;background:#fff5df;color:#5b472a;font-size:.75rem;font-weight:750;line-height:1.4}

/* GAME64: three different practice scenes retain the same real progress. */
.tp-scene[data-scene=keys]{background:radial-gradient(circle at 75% 0,#fff6d4,transparent 55%),linear-gradient(120deg,#e4e5ff,#d7eff1);border:1px solid #b9b3dd}
.tp-scene[data-scene=words]{background:linear-gradient(165deg,#e2f5ef,#fff5dc);border:1px solid #a9cbb2}
.tp-scene[data-scene=texts]{background:linear-gradient(145deg,#f1eaff,#e7f2f6);border:1px solid #c4b1db}
.tp-scene svg{filter:drop-shadow(0 3px 1px #55476813)}
