/* Juegos de lengua 2.1.0 · Illustrated game selection, layered over tabu.css. */
.aula-language-hub { min-height: 0; }
.aula-language-hub .topbar { min-height: 82px; padding-bottom: 9px; }
.aula-language-hub .brand { gap: 15px; font-size: clamp(26px, 3vw, 38px); }
.aula-language-hub .brand-title { white-space: normal; line-height: 1.05; }
.aula-language-hub [data-tabu-ui="app"] { width: min(1130px, 100%); min-height: 0; padding: 8px 28px 31px; }
.aula-language-hub :is(.hub-heading, .language-hub-intro) { margin: 5px auto 24px; text-align: center; }
.aula-language-hub :is(.hub-heading, .language-hub-intro) :is(h1, h2), .aula-language-hub .home-title h1 { margin: 0; color: #ffdf89; font-family: "Avenir Next", "Trebuchet MS", Avenir, system-ui, sans-serif; font-size: clamp(40px, 5.4vw, 72px); font-weight: 1000; line-height: 1.03; letter-spacing: -2px; text-shadow: 0 3px 0 #966020, 0 6px 0 #523c27, 0 9px 14px #0b332ce0; -webkit-text-stroke: .5px #ffe9ad; }
.aula-language-hub :is(.hub-heading, .language-hub-intro) p { width: min(650px, 100%); margin: 13px auto 0; color: #fff2c4; font-size: 21px; font-weight: 900; line-height: 1.35; text-shadow: 0 2px 4px #173b32; }
.aula-language-hub :is(.hub-games, .language-game-grid) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 29px; width: min(970px, 100%); margin: 0 auto; }
.aula-language-hub .game-card { position: relative; display: flex; flex-direction: column; align-items: center; min-width: 0; min-height: 490px; padding: 20px 23px 24px; border: 2px solid #dfbf7b; border-radius: 28px; color: #294b3b; background: radial-gradient(ellipse at 50% 0, #fffdf0, transparent 77%), linear-gradient(145deg, #f6e5b9, #eccf8d); box-shadow: 0 7px 0 #78512d, 0 10px 0 #393e2d, 0 18px 25px #103a336b, inset 0 0 0 4px #fff4cd9e; text-align: center; text-decoration: none; transition: transform .16s ease, filter .16s ease; }
.aula-language-hub .game-card > a { display: flex; flex-direction: column; align-items: center; flex: 1; width: 100%; min-width: 0; color: inherit; text-decoration: none; }
.aula-language-hub .game-card:hover { transform: translateY(-5px); filter: brightness(1.035); }
.aula-language-hub .game-card:active { transform: translateY(3px); }
.aula-language-hub .game-card:focus-visible, .aula-language-hub .game-card > a:focus-visible { outline: 4px solid #ffdf80; outline-offset: 6px; }
.aula-language-hub .game-card-art { display: block; width: min(210px, 70%); height: auto; aspect-ratio: 4 / 5; margin: 0 auto 17px; object-fit: cover; border: 1px solid #c1a366; border-radius: 20px; box-shadow: 0 4px 0 #9f7a40, 0 9px 14px #5d5d3224; }
.aula-language-hub .game-card-art img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: inherit; }
.aula-language-hub .game-card-title { margin: 0; color: #294f3b; font-family: inherit; font-size: clamp(33px, 3.6vw, 44px); font-weight: 1000; line-height: 1.05; letter-spacing: -1px; }
.aula-language-hub .game-card-title h2, .aula-language-hub h2.game-card-title { margin: 0; color: inherit; font-family: inherit; font-size: inherit; font-weight: 1000; line-height: inherit; letter-spacing: inherit; }
.aula-language-hub .game-card h2 { margin: 0; color: #294f3b; font-size: clamp(33px, 3.6vw, 44px); font-weight: 1000; line-height: 1.05; letter-spacing: -1px; }
.aula-language-hub .game-card-caption { display: block; width: min(330px, 100%); margin: 12px auto 19px; color: #596b47; font-size: 20px; font-weight: 800; line-height: 1.3; }
.aula-language-hub :is(.game-card-action, .game-card-cta) { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-width: 172px; min-height: 54px; margin-top: auto; padding: 12px 26px; border: 2px solid #286446; border-radius: 14px; color: #fff9d8; background: linear-gradient(#4e9b68, #26744f); box-shadow: 0 5px 0 #143d30, inset 0 2px 0 #b0d58c; font-size: 24px; font-weight: 1000; line-height: 1.1; text-shadow: 0 2px 0 #174e3880; }
.aula-language-hub :is(.game-card-action, .game-card-cta) .game-icon { width: 26px; height: 26px; }
.aula-language-hub .hub-note { margin: 25px auto 0; color: #fff1bf; font-size: 19px; font-weight: 900; text-align: center; text-shadow: 0 2px 4px #123c30; }
.aula-language-hub .language-hub-empty { padding: 25px; border: 1px solid #dfc98b; border-radius: 18px; color: #fff2c4; background: #22503fd9; font-size: 22px; font-weight: 900; text-align: center; }
@media (max-height: 820px) and (min-width: 801px) {
	.aula-language-hub .topbar { min-height: 70px; padding-block: 10px; }
	.aula-language-hub [data-tabu-ui="app"] { padding-top: 3px; padding-bottom: 25px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) { margin: 3px auto 22px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) :is(h1, h2) { font-size: 55px; }
	.aula-language-hub .game-card { min-height: 467px; padding: 17px 21px 20px; }
	.aula-language-hub .game-card-art { width: 188px; margin-bottom: 15px; }
	.aula-language-hub .game-card h2, .aula-language-hub .game-card-title { font-size: 37px; }
	.aula-language-hub .game-card-caption { margin-block: 10px 17px; }
}
@media (max-width: 800px) {
	.aula-language-hub .topbar { padding: 13px 17px 8px; }
	.aula-language-hub .brand { gap: 12px; font-size: 31px; }
	.aula-language-hub [data-tabu-ui="app"] { padding: 8px 20px 27px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) { margin-bottom: 23px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) :is(h1, h2) { font-size: clamp(40px, 6.3vw, 53px); }
	.aula-language-hub :is(.hub-games, .language-game-grid) { gap: 21px; }
	.aula-language-hub .game-card { min-height: 452px; padding: 18px 15px 22px; }
	.aula-language-hub .game-card-art { width: min(183px, 83%); border-radius: 17px; }
	.aula-language-hub .game-card h2, .aula-language-hub .game-card-title { font-size: 34px; }
	.aula-language-hub .game-card-caption { font-size: 20px; }
}
@media (max-width: 540px) {
	.aula-language-hub .topbar { min-height: 70px; padding: 12px 14px 8px; }
	.aula-language-hub .brand { flex-direction: row; align-items: center; gap: 12px; width: 100%; font-size: 27px; letter-spacing: -.5px; }
	.aula-language-hub .brand-logo { width: 115px; height: 38px; flex-shrink: 0; padding: 5px 7px; }
	.aula-language-hub .brand-title { max-width: 185px; white-space: normal; }
	.aula-language-hub [data-tabu-ui="app"] { padding: 10px 15px 26px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) { margin: 0 auto 23px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) :is(h1, h2), .aula-language-hub .home-title h1 { font-size: 44px; letter-spacing: -1.5px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) p { font-size: 20px; }
	.aula-language-hub :is(.hub-games, .language-game-grid) { grid-template-columns: minmax(0, 1fr); gap: 25px; width: min(390px, 100%); }
	.aula-language-hub .game-card { min-height: 0; padding: 20px 18px 23px; border-radius: 24px; }
	.aula-language-hub .game-card-art { width: 195px; margin-bottom: 18px; }
	.aula-language-hub .game-card h2, .aula-language-hub .game-card-title { font-size: 36px; }
	.aula-language-hub .game-card-caption { margin-bottom: 20px; font-size: 20px; }
	.aula-language-hub :is(.game-card-action, .game-card-cta) { min-width: 180px; min-height: 56px; font-size: 25px; }
}
@media (max-width: 360px) {
	.aula-language-hub .brand { gap: 10px; font-size: 24px; }
	.aula-language-hub .brand-logo { width: 103px; height: 35px; }
	.aula-language-hub :is(.hub-heading, .language-hub-intro) :is(h1, h2) { font-size: 40px; }
	.aula-language-hub .game-card-art { width: 184px; }
	.aula-language-hub .game-card h2, .aula-language-hub .game-card-title { font-size: 33px; }
}
@media (prefers-reduced-motion: reduce) {
	.aula-language-hub .game-card { animation: none !important; transition: none !important; }
}

/* Each world owns its scene; collection thumbnails keep their separate cream art. */
.aula-language-hub .topbar { flex-wrap: nowrap; gap: 15px; }
.aula-language-hub .brand { flex: 1; min-width: 0; }
.aula-language-hub [data-language-ui="fullscreen"] { flex-shrink: 0; }
.aula-language-hub [data-language-ui="status"] { margin: 12px auto 0; color: #fff1c6; font-size: 18px; font-weight: 900; text-align: center; text-shadow: 0 2px 4px #123b30; }
.aula-language-hub [data-language-ui="status"]:empty { display: none; }
.aula-language-hub .game-card { --world-ink: #fff3ca; --world-shadow: #123d31; --world-line: #e1c67b; --world-button-top: #4d9b69; --world-button-bottom: #246b4b; justify-content: flex-end; min-height: 480px; height: clamp(480px, 62vh, 620px); padding: 27px; overflow: hidden; border: 3px solid var(--world-line); border-radius: 26px; color: var(--world-ink); background: var(--world-shadow); box-shadow: 0 7px 0 var(--world-shadow), 0 13px 24px #102e3370, inset 0 0 0 2px #fff4ca7d; isolation: isolate; }
.aula-language-hub .game-card:nth-child(2) { --world-ink: #f3efff; --world-shadow: #252449; --world-line: #b9b0ed; --world-button-top: #7e7bd3; --world-button-bottom: #50529e; }
.aula-language-hub .game-card::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, #092b1700 15%, #102e3026 35%, var(--world-shadow) 77%); }
.aula-language-hub .game-card > a { justify-content: flex-end; }
.aula-language-hub .game-card-art { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; max-width: none; margin: 0; border: 0; border-radius: 0; background: var(--world-shadow); box-shadow: none; aspect-ratio: auto; object-fit: cover; }
.aula-language-hub .game-card-art img { width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; object-fit: cover; }
.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { color: var(--world-ink); font-size: clamp(35px, 3.7vw, 46px); text-shadow: 0 3px 7px #10252c; }
.aula-language-hub .game-card-caption { margin: 14px auto 21px; color: var(--world-ink); font-size: 20px; line-height: 1.3; text-shadow: 0 2px 4px #10252c; }
.aula-language-hub :is(.game-card-action, .game-card-cta) { flex-shrink: 0; min-width: 186px; margin-top: 0; border-color: var(--world-line); color: var(--world-ink); background: linear-gradient(var(--world-button-top), var(--world-button-bottom)); box-shadow: 0 5px 0 var(--world-shadow), inset 0 2px 0 #fff8df75; font-size: 25px; }
.aula-language-hub:fullscreen { display: flex; flex-direction: column; height: 100dvh; overflow-y: auto; }
.aula-language-hub:fullscreen [data-tabu-ui="app"] { flex: 1; width: min(1200px, 100%); padding-bottom: 30px; }
@media (max-height: 820px) and (min-width: 801px) {
	.aula-language-hub .game-card { min-height: 460px; height: 460px; padding: 25px; }
	.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: 39px; }
}
@media (max-width: 800px) {
	.aula-language-hub .game-card { min-height: 470px; height: 470px; padding: 23px 18px; }
	.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: 35px; }
}
@media (max-width: 540px) {
	.aula-language-hub .topbar { align-items: center; gap: 10px; }
	.aula-language-hub .brand { width: auto; gap: 10px; font-size: 25px; }
	.aula-language-hub .brand-logo { width: 100px; height: 35px; }
	.aula-language-hub .brand-title { max-width: 160px; }
	.aula-language-hub [data-language-ui="fullscreen"] { min-width: 44px; width: 44px; padding-inline: 7px; }
	.aula-language-hub [data-language-ui="fullscreen"] span { display: none; }
	.aula-language-hub .game-card { min-height: 455px; height: 455px; padding: 24px 20px; }
	.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: 36px; }
}
@media (max-width: 360px) {
	.aula-language-hub .brand { gap: 8px; font-size: 22px; }
	.aula-language-hub .brand-logo { width: 88px; height: 32px; }
	.aula-language-hub .game-card { min-height: 425px; height: 425px; padding-inline: 17px; }
	.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: 33px; }
}

/* 4.0.0 · Three independent worlds, identified by registry keys. */
.aula-language-hub :is(.hub-games, .language-game-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(1180px, 100%); gap: 23px; }
.aula-language-hub .game-card { min-height: 475px; height: 475px; padding: 24px 18px; }
.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: clamp(31px, 3vw, 39px); }
.aula-language-hub .game-card[data-language-game="tabu"] { --world-ink: #fff3ca; --world-shadow: #123d31; --world-line: #e1c67b; --world-button-top: #4d9b69; --world-button-bottom: #246b4b; }
.aula-language-hub .game-card[data-language-game="spelling"] { --world-ink: #f3efff; --world-shadow: #252449; --world-line: #b9b0ed; --world-button-top: #7e7bd3; --world-button-bottom: #50529e; }
.aula-language-hub .game-card[data-language-game="rosco"] { --world-ink: #ffefc9; --world-shadow: #203d48; --world-line: #d9ae73; --world-button-top: #af8751; --world-button-bottom: #7c5a34; }
.aula-language-hub :is(.game-card-action, .game-card-cta) { min-width: 160px; padding-inline: 23px; }
@media (max-width: 1000px) {
	.aula-language-hub :is(.hub-games, .language-game-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(790px, 100%); }
	.aula-language-hub .game-card { min-height: 475px; height: 475px; }
	.aula-language-hub .game-card:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc((100% - 23px) / 2); }
	.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: 35px; }
}
@media (max-width: 540px) {
	.aula-language-hub :is(.hub-games, .language-game-grid) { grid-template-columns: minmax(0, 1fr); width: min(390px, 100%); gap: 25px; }
	.aula-language-hub .game-card, .aula-language-hub .game-card:last-child:nth-child(odd) { grid-column: auto; width: 100%; min-height: 455px; height: 455px; padding: 24px 20px; }
	.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: 36px; }
}
@media (max-width: 360px) {
	.aula-language-hub .game-card, .aula-language-hub .game-card:last-child:nth-child(odd) { min-height: 425px; height: 425px; padding-inline: 17px; }
	.aula-language-hub .game-card-title, .aula-language-hub .game-card h2 { font-size: 33px; }
}
