@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300&display=swap");

:root {
    color-scheme: light;
    --ink: #17212a;
    --muted: #505b64;
    --paper: #fbfaf7;
    --line: #e9e8e2;
    --green: #246b58;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: Arial, "Helvetica Neue", sans-serif;
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
}
body.tests-page-active { position: relative; isolation: isolate; background: #000; }
.tests-cat-stage { display: none; }
body.tests-page-active .tests-cat-stage {
    --cat-cross-duration: 26s;
    --cat-step-duration: .5s;
    --cat-head-turn: tests-cat-face-in;
    --cat-head-turn-side: tests-cat-face-out;
    --cat-bubble-anim: tests-cat-bubble;
    position: fixed;
    z-index: 3;
    inset: 0;
    display: block;
    overflow: hidden;
    pointer-events: none;
}
.tests-cat-walker {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 130px;
    height: 100%;
    animation: tests-cat-cross var(--cat-cross-duration) linear infinite;
}
.tests-cat-beam {
    position: absolute;
    bottom: 15px;
    left: 50%;
    width: 170px;
    height: 100%;
    background: linear-gradient(to bottom, rgba(190, 215, 255, .26), rgba(190, 215, 255, .09) 60%, rgba(200, 222, 255, .16));
    clip-path: polygon(40% 0, 60% 0, 100% 100%, 0 100%);
    filter: blur(8px);
    transform: translateX(-50%);
}
.tests-cat-spot {
    position: absolute;
    bottom: -4px;
    left: -15px;
    width: 160px;
    height: 45px;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(226, 236, 255, .78) 0, rgba(200, 218, 250, .55) 55%, rgba(170, 195, 240, .2) 82%, transparent 100%);
    filter: blur(1px);
}
.tests-cat-spot::after {
    content: "";
    position: absolute;
    left: 24%;
    bottom: 8px;
    width: 52%;
    height: 11px;
    border-radius: 50%;
    background: rgba(10, 16, 30, .55);
    filter: blur(3px);
}
.tests-cat {
    position: absolute;
    bottom: 6px;
    left: 17px;
    width: 95px;
    height: auto;
    overflow: visible;
}
.tests-cat-bubble {
    position: absolute;
    bottom: 78px;
    left: 50%;
    width: 300px;
    padding: 14px 18px;
    border: 3px solid #1c120a;
    border-radius: 28px;
    background: #fff;
    color: #1c120a;
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    opacity: 0;
    transform: translateX(-50%);
    animation: var(--cat-bubble-anim) var(--cat-cross-duration) linear infinite;
}
.tests-cat-bubble::before, .tests-cat-bubble::after {
    content: "";
    position: absolute;
    left: 50%;
    border-style: solid;
    border-color: #1c120a transparent transparent;
    border-width: 20px 14px 0;
    transform: translateX(-50%);
    top: 100%;
}
.tests-cat-bubble::after {
    top: calc(100% - 4px);
    border-color: #fff transparent transparent;
}
.tests-cat path, .tests-cat ellipse, .tests-cat circle { stroke-linecap: round; stroke-linejoin: round; }
.cat-fur { fill: #c98245; stroke: #4a2f1b; stroke-width: 2.5; }
.cat-stripe { fill: none; stroke: #8f5427; stroke-width: 4; opacity: .85; }
.cat-limb { fill: none; stroke: #c98245; stroke-width: 11; }
.cat-limb-far { stroke: #a4672f; }
.cat-paw { fill: #f3dcc0; stroke: #4a2f1b; stroke-width: 1.5; }
.cat-tail { fill: none; stroke: #c98245; stroke-width: 10; }
.cat-tail-outline { fill: none; stroke: #4a2f1b; stroke-width: 13; }
.cat-ear-inner { fill: #f1b8a4; }
.cat-eye { fill: #1c120a; }
.cat-eye-shine { fill: #fff; }
.cat-face-front { opacity: 0; animation: var(--cat-head-turn) var(--cat-cross-duration) linear infinite; }
.cat-head-side { animation: var(--cat-head-turn-side) var(--cat-cross-duration) linear infinite; }
.cat-nose { fill: #e79a8c; }
.cat-whisker { fill: none; stroke: #4a2f1b; stroke-width: 1; }
.cat-leg { transform-box: view-box; animation: tests-cat-step var(--cat-step-duration) linear infinite; }
.cat-leg-bl { transform-origin: 66px 88px; }
.cat-leg-fl { transform-origin: 146px 90px; animation-delay: calc(var(--cat-step-duration) / -2); }
.cat-leg-br { transform-origin: 62px 88px; animation-delay: calc(var(--cat-step-duration) / -2); }
.cat-leg-fr { transform-origin: 150px 90px; }
.cat-upper, .cat-tail-group {
    transform-box: view-box;
    animation: tests-cat-bob calc(var(--cat-step-duration) / 2) ease-in-out infinite;
}
.cat-tail-group { transform-origin: 40px 74px; animation: tests-cat-tail 1.7s ease-in-out infinite alternate; }
@keyframes tests-cat-cross {
    from { transform: translateX(-100%); }
    to { transform: translateX(100vw); }
}
@keyframes tests-cat-step {
    0% { transform: rotate(-22deg) translateY(0); }
    50% { transform: rotate(22deg) translateY(0); }
    75% { transform: rotate(0deg) translateY(-6px); }
    100% { transform: rotate(-22deg) translateY(0); }
}
@keyframes tests-cat-face-in {
    0%, 44% { opacity: 0; }
    44.8%, 55.2% { opacity: 1; }
    56%, 100% { opacity: 0; }
}
@keyframes tests-cat-face-out {
    0%, 44% { opacity: 1; }
    44.8%, 55.2% { opacity: 0; }
    56%, 100% { opacity: 1; }
}
@keyframes tests-cat-face-in-mobile {
    0%, 40.6% { opacity: 0; }
    41.6%, 58.4% { opacity: 1; }
    59.4%, 100% { opacity: 0; }
}
@keyframes tests-cat-face-out-mobile {
    0%, 40.6% { opacity: 1; }
    41.6%, 58.4% { opacity: 0; }
    59.4%, 100% { opacity: 1; }
}
@keyframes tests-cat-bubble {
    0%, 44.8% { opacity: 0; }
    46%, 74.4% { opacity: 1; }
    75.6%, 100% { opacity: 0; }
}
@keyframes tests-cat-bubble-mobile {
    0%, 41.6% { opacity: 0; }
    43%, 89.6% { opacity: 1; }
    91%, 100% { opacity: 0; }
}
@keyframes tests-cat-bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-1.6px); }
}
@keyframes tests-cat-tail {
    from { transform: rotate(-5deg); }
    to { transform: rotate(6deg); }
}
@media (max-width: 700px) {
    body.tests-page-active .tests-cat-stage {
        --cat-cross-duration: 16s;
        --cat-head-turn: tests-cat-face-in-mobile;
        --cat-head-turn-side: tests-cat-face-out-mobile;
        --cat-bubble-anim: tests-cat-bubble-mobile;
    }
    .tests-cat-bubble { width: min(240px, 80vw); font-size: 1.15rem; padding: 10px 14px; }
    .tests-cat-walker { width: 105px; }
    .tests-cat-spot { left: -12px; width: 130px; height: 38px; }
    .tests-cat { left: 13px; width: 78px; }
    .tests-cat-beam { width: 125px; }
}
button, a { font: inherit; }
a { color: inherit; }
.page-header {
    position: relative;
    width: min(100%, 1500px);
    margin-inline: auto;
}
body[data-route="tests"] .page-header {
    aspect-ratio: 2172 / 505;
    background: url("/resimler/header-banner.jpg?v=2") center calc(40% - 5px) / cover no-repeat;
}
.site-brand {
    position: absolute;
    left: 2%; top: 4%;
    width: 56%; height: 58%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.site-brand:focus-visible { outline: 3px solid #0a5bd6; outline-offset: -3px; border-radius: 24px; }
.main-nav {
    position: relative;
    top: 5px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 4px;
    margin: 0 0 14px 2.3%;
    width: 97.3%;
    min-height: 44px;
    padding: 2px 1.2%;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.main-nav .header-button {
    position: static;
    display: inline-flex;
    min-width: 0;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: clamp(4px, 1.1vw, 14px);
    margin: 0;
    padding: 2px clamp(4px, 1.2vw, 18px);
    border: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    color: #0b3a8c;
    cursor: pointer;
    font-family: "Fredoka", "Trebuchet MS", system-ui, sans-serif;
    font-size: clamp(.68rem, 1.55vw, 1.35rem);
    font-weight: 500;
    white-space: nowrap;
    transition: background-color 150ms ease, transform 150ms ease;
}
.main-nav .header-button img { display: block; width: auto; height: clamp(22px, 3.3vw, 46px); }
.main-nav .header-button:hover { transform: translateY(-1px); background: #eaf3ff; filter: none; }
.main-nav .header-button:focus-visible { outline: 3px solid #0a5bd6; outline-offset: 2px; }
.main-nav .home-nav-button {
    padding-left: clamp(14px, 2.6vw, 38px);
    padding-right: clamp(14px, 2.6vw, 38px);
    background: linear-gradient(180deg, #1496ff, #0680f0);
    color: #fff;
}
.main-nav .home-nav-button:hover { background: linear-gradient(180deg, #2aa2ff, #1590fa); }
.header-button {
    position: relative;
    display: inline-flex;
    min-width: 195px;
    min-height: 48px;
    align-items: center;
    justify-content: flex-start;
    padding: 6px 53px 6px 15px;
    border: 0;
    border-radius: 999px;
    box-shadow: 0 7px 0 rgba(28, 42, 52, .12), inset 0 1px 0 rgba(255,255,255,.35);
    cursor: pointer;
    text-align: left;
    transition: transform 150ms ease, filter 150ms ease;
}
.header-button:hover { transform: translateY(-2px); filter: brightness(1.04); }
.header-button:focus-visible { outline: 3px solid #293b4a; outline-offset: 3px; }
.header-caption { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.header-caption strong {
    overflow: hidden;
    color: #172d3a;
    font-size: .73rem;
    font-weight: 900;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.header-caption small { color: rgba(255,255,255,.88); font-size: .68rem; font-weight: 600; white-space: nowrap; }
.header-icon {
    position: absolute;
    top: 4px;
    right: 4px;
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid rgba(44, 59, 67, .1);
    border-radius: 50%;
    background: linear-gradient(145deg, #fff, #e9eef0);
    box-shadow: 0 2px 6px rgba(27, 40, 48, .2);
    color: #314653;
    font-size: 1.2rem;
}
.header-icon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.class-button { background: linear-gradient(105deg, #f65a23, #ffad08); }
.game-button { background: linear-gradient(105deg, #0755be, #158cd1); }
.speaking-nav-button { background: linear-gradient(105deg, #7923b5, #bb55d8); }
.home-nav-button { background: linear-gradient(105deg, #09a75d, #56d861); }
main { width: min(100% - 48px, 1050px); flex: 1; margin-inline: auto; }
.page-view { padding: 62px 0 42px; }
.home-view { max-width: 920px; margin-inline: auto; }
html, body { overflow-x: clip; }
.age-view { max-width: 850px; margin-inline: auto; }
.pupils-view, .pupil-topics-view { max-width: 920px; margin-inline: auto; }
.back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 0;
    border: 0;
    background: transparent;
    color: #52636b;
    cursor: pointer;
    font-size: .88rem;
    font-weight: 700;
}
.back-link:hover { color: var(--green); }
.back-link:focus-visible, .age-button:focus-visible {
    outline: 3px solid #293b4a;
    outline-offset: 3px;
}
.page-heading { padding-top: 37px; }
.page-heading h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
.age-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 36px;
}
.age-button {
    display: flex;
    min-height: 190px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 9px;
    padding: 24px;
    border: 2px solid transparent;
    border-radius: 20px;
    color: var(--ink);
    cursor: pointer;
    font-family: "Manrope", sans-serif;
    font-size: clamp(1.25rem, 3vw, 1.7rem);
    font-weight: 800;
    transition: transform 160ms ease, box-shadow 160ms ease;
}
.age-button > strong { font-family: "Manrope", sans-serif; font-size: 1.55rem; }
.age-button > span { color: #5e6c70; font-size: .9rem; }
.age-button .age-arrow { margin-top: 10px; color: var(--green); font-weight: 700; }
.age-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(36, 55, 49, .11);
}
.age-children { --age-bg: #e8242b; background: var(--age-bg); border-color: #b5141a; }
.age-adolescents { --age-bg: #1f6feb; background: var(--age-bg); border-color: #1550b8; }
.age-button > strong {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.age-button > span { color: #fff; font-size: 1.15rem; font-weight: 800; }
.age-button::after {
    content: "Go" / "";
    margin-top: 8px;
    padding: 9px 58px 9px 30px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8h12M9 3l5 5-5 5'/%3E%3C/svg%3E") no-repeat right 28px center / 16px 16px;
    border-radius: 999px;
    border: 2px solid #fff;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: .02em;
}
.age-button::after { transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease; }
.age-button:hover::after, .age-button:focus-visible::after {
    border-color: #000;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8h12M9 3l5 5-5 5'/%3E%3C/svg%3E");
    color: #000;
}
.age-view[hidden], .home-view[hidden] { display: none; }
.pupil-grade-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: 700px;
    margin-top: 28px;
}
.pupil-grade-button {
    min-width: 0;
    min-height: 62px;
    padding: 8px 55px 8px 16px;
}
.pupil-grade-button .header-icon {
    width: 46px;
    height: 46px;
    font-size: 1.4rem;
    font-weight: 800;
    top: 50%;
    transform: translateY(-50%);
}
.pupil-app-recommendations {
    position: relative;
    max-width: 700px;
    margin: 24px 0 81px;
}
.pupil-app-recommendations::after {
    position: absolute;
    right: 0;
    bottom: -41px;
    left: 0;
    height: 1px;
    background: #d9d3c4;
    content: "";
}
.pupil-app-recommendations[hidden] { display: none; }
.pupil-app-recommendations h2 {
    margin: 0 0 14px;
    color: #172d3a;
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: .045em;
    line-height: 1.5;
    text-transform: uppercase;
}
.pupil-app-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pupil-app-link {
    display: flex;
    min-height: 52px;
    align-items: center;
    gap: 14px;
    padding: 7px 18px 7px 9px;
    border-radius: 999px;
    box-shadow: 0 5px 0 rgba(28, 42, 52, .14), inset 0 1px 0 rgba(255,255,255,.4);
    color: #172d3a;
    font-size: .9rem;
    font-weight: 900;
    text-decoration: none;
    transition: transform 150ms ease, filter 150ms ease;
}
.pupil-app-link:hover { transform: translateY(-2px); filter: brightness(1.04); }
.pupil-app-link:focus-visible { outline: 3px solid #293b4a; outline-offset: 3px; }
.pupil-app-number {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    place-items: center;
    border: 1px solid rgba(44, 59, 67, .1);
    border-radius: 50%;
    background: linear-gradient(145deg, #fff, #e9eef0);
    box-shadow: 0 2px 6px rgba(27, 40, 48, .2);
    font-size: 1.05rem;
}
.pupil-app-link-1 { background: linear-gradient(105deg, #ffe58a, #ffd15b); }
.pupil-app-link-2 { background: linear-gradient(105deg, #c7e5fb, #a9d5f8); }
.pupil-app-link-3 { background: linear-gradient(105deg, #bde58d, #8edc69); }
.pupil-app-link-4 { background: linear-gradient(105deg, #f7d2e9, #f0b9da); }
.topic-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
    margin-top: 24px;
}
.topic-badges-vertical { flex-direction: column; align-items: stretch; }
.topic-badge {
    min-height: 42px;
    padding: 9px 16px;
    border: 2px solid transparent;
    border-radius: 999px;
    color: #17212a;
    cursor: pointer;
    font-size: .9rem;
    font-weight: 800;
    transition: transform 140ms ease, box-shadow 140ms ease;
}
.topic-badge:hover { transform: translateY(-2px); box-shadow: 0 5px 12px rgba(25,43,58,.15); }
.topic-badge[aria-pressed="true"] { border-color: #17212a; box-shadow: inset 0 0 0 2px #fff; }
.topic-badge:focus-visible { outline: 3px solid #293b4a; outline-offset: 3px; }
.topic-badge-0 { background: #ffb7b2; }
.topic-badge-1 { background: #ffd39f; }
.topic-badge-2 { background: #ffe58a; }
.topic-badge-3 { background: #bde58d; }
.topic-badge-4 { background: #9ee2d7; }
.topic-badge-5 { background: #a9d8ff; }
.topic-badge-6 { background: #c4b7f5; }
.topic-badge-7 { background: #f3b7df; }
.site-footer {
    width: 100%;
    padding: 0 24px;
    margin: 58px 0 0;
    border-top: 4px solid #d9aa45;
    background: #17212a;
    color: #fff;
}
.footer-inner {
    width: min(100%, 1050px);
    padding: 38px 0 18px;
    margin-inline: auto;
}
.footer-top {
    display: grid;
    grid-template-columns: minmax(180px, .9fr) minmax(130px, .65fr) minmax(280px, 1.45fr);
    gap: 28px;
}
.footer-brand { color: #f2ca72; font-family: "Manrope", sans-serif; font-size: 1.12rem; font-weight: 800; text-decoration: none; }
.footer-brand-block p { max-width: 230px; margin: 10px 0 0; color: #bdc7cc; font-size: .88rem; line-height: 1.55; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 5px 18px; }
.footer-action-nav { align-content: start; flex-direction: column; align-items: flex-start; gap: 3px; }
.footer-button {
    min-height: 30px;
    padding: 2px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #e2e8eb;
    cursor: pointer;
    font-size: .84rem;
    font-weight: 600;
    transition: text-decoration-color 150ms ease;
}
.footer-button:hover { color: #f2ca72; text-decoration: underline; text-underline-offset: 4px; }
a.footer-button { display: inline-flex; align-items: center; font-size: .82rem; text-decoration: none; }
.site-footer a.footer-button[href="/tests.html"] { color: #ff6b6b; }
.footer-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 14px 16px; }
.footer-game-group { min-width: 0; }
.footer-game-group:nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
.footer-game-group h3 { margin: 0 0 4px; color: #f2ca72; font-size: .72rem; font-weight: 800; }
.footer-group-title { color: inherit; text-decoration: none; }
.footer-group-title:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-game-group-links { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.footer-game-group-links .footer-button { min-height: 28px; }
.footer-skills {
    grid-column: 1 / -1;
    display: flex;
    width: 100%;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    padding: 14px 0 0;
    border-top: 1px solid rgba(255,255,255,.12);
    gap: 3px 16px;
    text-align: center;
}
.footer-skills .footer-button { margin: 0; }
.footer-button:focus-visible { outline: 2px solid #f2ca72; outline-offset: 3px; }
.footer-write-button { color: #e2e8eb; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 16px; margin-top: 26px; border-top: 1px solid rgba(255,255,255,.18); }
.footer-copyright { margin: 0; color: #bdc7cc; font-size: .76rem; }
.footer-top-link { color: #f2ca72; font-size: .8rem; font-weight: 700; text-decoration: none; }
.footer-top-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.info-view { max-width: 920px; margin-inline: auto; }
.info-view .site-guide { margin-top: 0; }
.info-view .site-guide h2:not(:first-child) { margin-top: 22px; }
.info-view .site-guide p { max-width: 760px; }
.level-coming {
    padding: 18px;
    margin-top: 20px;
    border-radius: 13px;
    background: #f2f5f2;
    color: var(--muted);
    line-height: 1.6;
}
.level-view, .speaking-view, .games-view, .tests-view, .unrelated-view, .running-dino-view, .falling-men-view, .letter-challenge-view, .vanishing-view, .class-view {
    max-width: 920px;
    margin-inline: auto;
}
.tests-view { color: #fff; }
.tests-view .back-link { color: #e5e7eb; }
.tests-view .eyebrow { color: #9de0c0; }
.tests-view .hero-description { color: #e5e7eb; }
.tests-view .tests-wheel-card {
    border-color: #000;
    background: #000;
    box-shadow: none;
    margin-top: -10px;
}
.tests-view .wheel-result { color: #fff; }
.game-result[hidden], .answer-section[hidden] { display: none; }
.wheel-spin-button:focus-visible, .vanishing-entry-button:focus-visible,
.answer-option:focus-visible, .play-again-button:focus-visible {
    outline: 3px solid #293b4a;
    outline-offset: 3px;
}
.speaking-practice-card, .vanishing-game-card {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: white;
    box-shadow: 0 10px 30px rgba(36,55,49,.05);
}
.level-wheel-card[hidden] { display: none; }
.practice-wheel-wrap, .game-wheel-wrap {
    position: relative;
    width: min(100%, 440px);
    margin-inline: auto;
    aspect-ratio: 1;
}
.practice-wheel, .game-wheel {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 12px 14px rgba(27,39,54,.22));
}
.wheel-outer-ring { fill: #fff; stroke: #243746; stroke-width: 8; }
.wheel-segments { transform-origin: 200px 200px; }
.game-wheel .wheel-segments { transform-origin: 250px 250px; }
.wheel-segment-label {
    fill: #fff;
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    paint-order: stroke;
    pointer-events: none;
    stroke: rgba(25, 39, 53, .52);
    stroke-linejoin: round;
    stroke-width: 2px;
}
.wheel-hub { fill: #fffdf8; stroke: #243746; stroke-width: 5; }
.wheel-pointer {
    position: absolute;
    z-index: 2;
    top: -3px;
    left: 50%;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-top: 0;
    border-right: 15px solid transparent;
    border-bottom: 30px solid #ff5252;
    border-left: 15px solid transparent;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,.18));
}
.wheel-spin-button {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    width: 90px;
    height: 90px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0;
    transform: translate(-50%, -50%);
    border: 5px solid white;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%, #397f9b, #163d57 72%);
    box-shadow: 0 4px 12px rgba(14, 35, 52, .34), inset 0 1px 2px rgba(255,255,255,.25);
    color: white;
    cursor: pointer;
    font-size: .8rem;
    font-weight: 800;
}
.wheel-spin-button span { font-size: 1.45rem; line-height: 1; }
.wheel-spin-button:disabled { cursor: wait; opacity: .75; }
.wheel-result {
    min-height: 28px;
    margin: 18px 0 0;
    color: var(--green);
    font-size: 1.08rem;
    font-weight: 800;
    text-align: center;
}
.level-key {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: .82rem;
    line-height: 1.6;
    text-align: center;
}
.games-wheel-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(220px, .9fr);
    align-items: center;
    gap: 30px;
    padding: 20px 24px;
    border: 1px solid #d9e9e5;
    border-radius: 20px;
    background: linear-gradient(145deg, #f0f7f3, #f8f7f0);
}
.game-wheel-info > p:not(.wheel-result) { color: #505b64; font-size: .9rem; font-weight: 600; line-height: 1.6; }
.game-wheel-info .wheel-result { text-align: left; }
.play-again-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 17px;
    border: 0;
    border-radius: 11px;
    background: var(--green);
    color: white;
    cursor: pointer;
    font-size: .86rem;
    font-weight: 700;
}
.play-again-button:hover { background: #194f42; }
.play-again-button[hidden] { display: none; }
.game-entry-button {
    width: min(100%, 230px);
    min-width: 0;
    min-height: 44px;
    padding: 5px 43px 5px 12px;
    margin-top: 10px;
}
.reading-archery-entry-button { background: linear-gradient(105deg, #08756a, #29a994); }
.reading-archery-entry-button .header-caption strong { color: #fff; }
.game-shortcut-actions { display: flex; align-items: flex-start; flex-direction: column; gap: 2px; }
.game-shortcut-actions[hidden] { display: none; }
.game-entry-button .header-caption { gap: 1px; }
.game-entry-button .header-caption strong { font-size: .68rem; }
.game-entry-button .header-caption small { font-size: .62rem; }
.game-entry-button .header-icon { top: 4px; right: 4px; width: 36px; height: 36px; font-size: 1.05rem; }
.tricky-quiz-entry {
    background: linear-gradient(105deg, #b93a19, #d2441f);
    text-decoration: none;
}
.tricky-quiz-entry .header-caption strong {
    color: #fff;
}
.letter-challenge-instructions { max-width: 760px; font-size: .95rem; font-weight: 800; letter-spacing: .035em; }
.letter-challenge-card { margin-top: 20px; }
.letter-challenge-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-radius: 12px;
    background: #f0f6f2;
    color: var(--ink);
}
.letter-challenge-label { display: block; color: var(--muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; }
.letter-challenge-clock { display: block; color: #a72d27; font-family: "Courier New", monospace; font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.letter-challenge-progress { display: block; font-size: 1.25rem; }
.letter-challenge-feedback { min-height: 24px; margin: 14px 0; color: var(--muted); font-size: .9rem; font-weight: 700; }
.letter-challenge-passage {
    padding: 20px;
    border: 1px solid #e5e2d6;
    border-radius: 14px;
    background: #fffef8;
    color: #202a30;
    font-size: 1.04rem;
    line-height: 2;
}
.letter-challenge-passage p { margin: 0; }
.letter-challenge-passage p + p { margin-top: 14px; }
.letter-challenge-word { display: inline-flex; color: #171b1e; font-size: 1.08em; font-weight: 800; white-space: nowrap; }
.letter-challenge-character { display: inline-block; min-width: .54em; text-align: center; }
.letter-challenge-character.is-missing { color: #c0392b; font-weight: 900; }
.letter-challenge-character.is-revealed { color: #171b1e; font-weight: 900; }
.letter-challenge-hangman {
    position: relative;
    width: 100vw;
    height: 170px;
    left: 50%;
    margin: 22px 0 0 -50vw;
    overflow: hidden;
    border-bottom: 1px solid #a9abad;
    color: #a72d27;
    font-weight: 900;
}
.letter-challenge-hangman[hidden] { display: none; }
.letter-challenge-walker {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 140px;
    height: 170px;
    animation: letter-challenge-walk-across 28s linear infinite;
}
.letter-challenge-walker .walking-man-rig {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 4px 3px rgba(29, 44, 48, .2));
}
.letter-challenge-hangman.is-stopped .letter-challenge-walker,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walking-man-rig,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-motion,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-arm,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-leg,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-arm-lower,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-leg-lower,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-torso,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-shirt-highlight,
.letter-challenge-hangman.is-stopped .letter-challenge-walker .walker-shoe,
.letter-challenge-hangman.is-fallen .letter-challenge-walker,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walking-man-rig,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-motion,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-arm,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-leg,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-arm-lower,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-leg-lower,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-torso,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-shirt-highlight,
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walker-shoe { animation-play-state: paused; }
.letter-challenge-hangman.is-reading .letter-challenge-walker,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-motion,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-arm,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-leg,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-arm-lower,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-leg-lower,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-torso,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-shirt-highlight,
.letter-challenge-hangman.is-reading .letter-challenge-walker .walker-shoe { animation-play-state: paused; }
.letter-challenge-hangman.is-fallen .letter-challenge-walker .walking-man-rig {
    animation: letter-challenge-fall .9s ease-in forwards;
    animation-play-state: running;
}
.letter-challenge-hangman-message {
    position: absolute;
    bottom: 10px;
    left: 142px;
}
.letter-challenge-hangman-message[hidden] { display: none; }
@keyframes letter-challenge-walk-across {
    from { transform: translateX(-140px); }
    to { transform: translateX(calc(100vw + 140px)); }
}
@keyframes letter-challenge-fall {
    0% { transform: rotate(0deg); }
    22% { transform: rotate(-9deg) translateY(-2px); }
    100% { transform: rotate(88deg) translate(18px, 10px); }
}
@media (prefers-reduced-motion: reduce) {
    .letter-challenge-walker { animation: none; transform: none; }
    .walking-man-rig .walker-motion,
    .walking-man-rig .walker-arm,
    .walking-man-rig .walker-leg,
    .walking-man-rig .walker-arm-lower,
    .walking-man-rig .walker-leg-lower,
    .walking-man-rig .walker-torso,
    .walking-man-rig .walker-shirt-highlight,
    .walking-man-rig .walker-shoe { animation: none; }
    .letter-challenge-walker .walker-motion,
    .letter-challenge-walker .walker-arm,
    .letter-challenge-walker .walker-leg,
    .letter-challenge-walker .walker-arm-lower,
    .letter-challenge-walker .walker-leg-lower,
    .letter-challenge-walker .walker-torso,
    .letter-challenge-walker .walker-shirt-highlight,
    .letter-challenge-walker .walker-shoe { animation: none; }
    .letter-challenge-hangman.is-fallen .letter-challenge-walker .walking-man-rig {
        animation: none;
        transform: none;
    }
}

.running-dino-status {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 14px 18px;
    border-radius: 14px 14px 0 0;
    background: #e8f4e3;
}
.running-dino-reading-card { max-width: 760px; margin: 18px auto; padding: 22px; }
.running-dino-reading-card[hidden] { display: none; }
.running-dino-reading-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid #dce5d8; }
.running-dino-reading-status h3 { margin: 0; color: #1d593d; font-size: 1.2rem; }
.running-dino-reading-status div { display: grid; justify-items: end; gap: 2px; color: #536b55; font-size: .82rem; font-weight: 700; }
.running-dino-reading-status strong { color: #1d593d; font: 800 1.8rem "Manrope", Arial, sans-serif; font-variant-numeric: tabular-nums; }
.running-dino-reading-passage { margin-top: 16px; padding: clamp(17px, 3vw, 26px); border: 1px solid #e1e8dc; border-radius: 12px; background: #fffef9; }
.running-dino-reading-passage h2 { margin: 0 0 12px; color: #244b36; font-size: 1.4rem; }
.running-dino-reading-passage p { margin: 0; color: #29362d; font-size: 1.08rem; line-height: 1.8; white-space: pre-line; }
.running-dino-reading-note { margin: 14px 0 0; color: #536b55; font-size: .9rem; font-weight: 700; }
.running-dino-stat { display: grid; gap: 2px; min-width: 74px; }
.running-dino-stat span { color: #536b55; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.running-dino-stat strong { color: #1d593d; font: 800 1.35rem "Manrope", Arial, sans-serif; font-variant-numeric: tabular-nums; }
.running-dino-instructions { margin: 0 0 0 auto; color: #43554a; font-size: .88rem; font-weight: 700; text-align: right; }
.running-dino-stage { overflow: hidden; border: 1px solid #d5e0d1; background: #e4f6ff; }
#running-dino-canvas { display: block; width: 100%; height: auto; aspect-ratio: 12 / 5; touch-action: none; cursor: pointer; }
.running-dino-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 14px; border-radius: 0 0 14px 14px; background: #f7faf4; }
.running-dino-controls button:disabled { cursor: not-allowed; opacity: .58; }
@media (max-width: 560px) {
    .running-dino-status { flex-wrap: wrap; gap: 10px 18px; padding: 12px; }
    .running-dino-instructions { flex-basis: 100%; margin: 0; text-align: left; }
    .running-dino-reading-card { padding: 16px; }
    .running-dino-reading-status { align-items: flex-start; flex-direction: column; }
    .running-dino-reading-status div { justify-items: start; }
    #running-dino-canvas { aspect-ratio: 48 / 23; }
}
.letter-challenge-keyboard-panel { margin-top: 20px; }
.letter-challenge-keyboard-panel > p { margin: 0 0 12px; color: var(--muted); font-size: .9rem; font-weight: 700; }
.letter-challenge-keyboard {
    display: grid;
    grid-template-columns: repeat(7, minmax(34px, 1fr));
    gap: 8px;
    max-width: 560px;
}
.letter-challenge-key {
    min-height: 44px;
    border: 1px solid #cfdad4;
    border-radius: 9px;
    background: #f0f6f2;
    color: var(--ink);
    cursor: pointer;
    font-size: 1rem;
    font-weight: 900;
}
.letter-challenge-key:hover:not(:disabled) { border-color: var(--green); background: #e0efe8; }
.letter-challenge-key:focus-visible { outline: 3px solid #293b4a; outline-offset: 2px; }
.letter-challenge-key:disabled { cursor: default; }
.letter-challenge-key.is-correct { border-color: #246b58; background: #d7eee3; color: #14513e; }
.letter-challenge-key.is-wrong { border-color: #a72d27; background: #f6dfdf; color: #8a201d; }
.letter-challenge-result { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 20px; }
.letter-challenge-result strong { color: #246b58; font-size: 1.1rem; }
.letter-challenge-keyboard-panel[hidden], .letter-challenge-result[hidden] { display: none; }
.running-dino-wheel-card { max-width: 560px; margin-inline: auto; }
.running-dino-wheel-card .practice-wheel-wrap { width: min(100%, 380px); }
.running-dino-game-card[hidden], .running-dino-result[hidden] { display: none; }
.falling-men-game-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 15px;
    border-radius: 12px;
    background: #f0f6f2;
    color: var(--ink);
    font-size: .88rem;
}
.running-dino-progress-group { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 16px; }
.running-dino-track.is-reading .walking-man-rig,
.running-dino-track.is-reading .walker-motion,
.running-dino-track.is-reading .walker-arm,
.running-dino-track.is-reading .walker-leg,
.running-dino-track.is-reading .walker-arm-lower,
.running-dino-track.is-reading .walker-leg-lower,
.running-dino-track.is-reading .walker-torso,
.running-dino-track.is-reading .walker-shirt-highlight,
.running-dino-track.is-reading .walker-shoe { animation-play-state: paused; }
.falling-men-level { color: #9c3028; font-size: .75rem; font-weight: 900; letter-spacing: .1em; }
.falling-men-passage {
    padding: 20px;
    margin-top: 16px;
    border: 1px solid #eadfda;
    border-radius: 14px;
    background: #fffaf7;
}
.falling-men-passage h2 { margin-bottom: 8px; font-size: 1.25rem; }
.falling-men-passage p { margin-bottom: 0; color: #3f3b3a; font-size: .94rem; line-height: 1.75; }
.running-dino-track {
    position: relative;
    height: 190px;
    margin-top: 16px;
    overflow: hidden;
    border: 0;
    border-radius: 4px;
    background: #f7f7f6;
}
.running-dino-banner {
    position: absolute;
    top: 10px;
    left: 50%;
    z-index: 2;
    width: max-content;
    max-width: calc(100% - 24px);
    padding: 8px 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #65676a;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1.3;
    text-align: center;
    transform: translateX(-50%);
}
.running-dino-ground {
    position: absolute;
    right: 0;
    bottom: 23px;
    left: 0;
    height: 1px;
    background: #67696b;
}
.running-dino-ground::after {
    position: absolute;
    top: 4px;
    right: 0;
    left: 0;
    height: 3px;
    background: repeating-linear-gradient(
        90deg,
        #77797b 0 2px,
        transparent 2px 23px,
        #77797b 23px 25px,
        transparent 25px 42px
    );
    content: "";
}
.running-dino-sprite {
    position: absolute;
    z-index: 1;
    bottom: 16px;
    left: 0;
    width: 140px;
    height: 170px;
    overflow: visible;
}
.walking-man-sprite .walking-man-rig {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 4px 3px rgba(29, 44, 48, .2));
}
.walking-man-rig { --walker-cycle-duration: .9s; }
.walker-motion {
    transform-box: view-box;
    transform-origin: 52px 142px;
    animation: walker-bob var(--walker-cycle-duration) ease-in-out infinite;
}
.walker-arm, .walker-leg {
    transform-box: view-box;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.walker-arm {
    fill: none;
    stroke: #bd674b;
    stroke-width: 8;
}
.walker-arm-back { transform-origin: 43px 51px; animation: walking-man-arm-back var(--walker-cycle-duration) ease-in-out infinite; }
.walker-arm-front { transform-origin: 58px 51px; animation: walking-man-arm-front var(--walker-cycle-duration) ease-in-out infinite; }
.walker-arm-lower { transform-box: view-box; }
.walker-arm-back .walker-arm-lower { transform-origin: 29px 73px; animation: walker-elbow-back var(--walker-cycle-duration) ease-in-out infinite; }
.walker-arm-front .walker-arm-lower { transform-origin: 70px 72px; animation: walker-elbow-front var(--walker-cycle-duration) ease-in-out infinite; }
.walker-leg {
    fill: none;
    stroke: #344c5b;
    stroke-width: 9;
}
.walker-leg-back { transform-origin: 49px 88px; animation: walking-man-leg-back var(--walker-cycle-duration) ease-in-out infinite; }
.walker-leg-front { transform-origin: 54px 88px; animation: walking-man-leg-front var(--walker-cycle-duration) ease-in-out infinite; }
.walker-leg-lower { transform-box: view-box; }
.walker-leg-back .walker-leg-lower { transform-origin: 31px 119px; animation: walker-knee-back var(--walker-cycle-duration) ease-in-out infinite; }
.walker-leg-front .walker-leg-lower { transform-origin: 66px 119px; animation: walker-knee-front var(--walker-cycle-duration) ease-in-out infinite; }
.walker-shoe {
    fill: #d69c4d;
    stroke: #293941;
    stroke-width: 2;
}
.walker-leg-back .walker-shoe { transform-box: view-box; transform-origin: 23px 137px; animation: walker-foot-back var(--walker-cycle-duration) ease-in-out infinite; }
.walker-leg-front .walker-shoe { transform-box: view-box; transform-origin: 68px 137px; animation: walker-foot-front var(--walker-cycle-duration) ease-in-out infinite; }
.walker-torso {
    fill: #287361;
    stroke: #293941;
    stroke-linejoin: round;
    stroke-width: 2.5;
    transform-box: view-box;
    transform-origin: 52px 62px;
    animation: walker-torso-sway var(--walker-cycle-duration) ease-in-out infinite;
}
.walker-shirt-highlight {
    fill: none;
    stroke: #8bc0a3;
    stroke-linecap: round;
    stroke-width: 2;
    opacity: .8;
    transform-box: view-box;
    transform-origin: 52px 62px;
    animation: walker-torso-sway var(--walker-cycle-duration) ease-in-out infinite;
}
.walker-head {
    fill: #e5ad82;
    stroke: #293941;
    stroke-width: 2.5;
}
.walker-face-detail {
    fill: none;
    stroke: #293941;
    stroke-linecap: round;
    stroke-width: 2;
}
@keyframes walker-bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}
@keyframes walker-torso-sway {
    0%, 100% { transform: rotate(-1deg); }
    50% { transform: rotate(1deg); }
}
@keyframes walking-man-arm-back {
    0%, 100% { transform: rotate(14deg); }
    50% { transform: rotate(-14deg); }
}
@keyframes walking-man-arm-front {
    0%, 100% { transform: rotate(-14deg); }
    50% { transform: rotate(14deg); }
}
@keyframes walking-man-leg-back {
    0%, 100% { transform: rotate(-16deg); }
    50% { transform: rotate(16deg); }
}
@keyframes walking-man-leg-front {
    0%, 100% { transform: rotate(16deg); }
    50% { transform: rotate(-16deg); }
}
@keyframes walker-arm-back {
    0%, 100% { transform: rotate(22deg); }
    50% { transform: rotate(-22deg); }
}
@keyframes walker-arm-front {
    0%, 100% { transform: rotate(-22deg); }
    50% { transform: rotate(22deg); }
}
@keyframes walker-leg-back {
    0%, 100% { transform: rotate(-20deg); }
    50% { transform: rotate(20deg); }
}
@keyframes walker-leg-front {
    0%, 100% { transform: rotate(20deg); }
    50% { transform: rotate(-20deg); }
}
@keyframes walker-elbow-back {
    0%, 100% { transform: rotate(7deg); }
    50% { transform: rotate(4deg); }
}
@keyframes walker-elbow-front {
    0%, 100% { transform: rotate(4deg); }
    50% { transform: rotate(7deg); }
}
@keyframes walker-knee-back {
    0%, 100% { transform: rotate(0deg); }
    25%, 75% { transform: rotate(-3deg); }
    50% { transform: rotate(-9deg); }
}
@keyframes walker-knee-front {
    0%, 100% { transform: rotate(-9deg); }
    25%, 75% { transform: rotate(-3deg); }
    50% { transform: rotate(0deg); }
}
@keyframes walker-foot-back {
    0%, 100% { transform: rotate(0deg); }
    25%, 75% { transform: rotate(-3deg); }
    50% { transform: rotate(-7deg); }
}
@keyframes walker-foot-front {
    0%, 100% { transform: rotate(-7deg); }
    25%, 75% { transform: rotate(-3deg); }
    50% { transform: rotate(0deg); }
}
.walking-man-marker {
    position: absolute;
    right: 9%;
    bottom: 24px;
    width: 2px;
    height: 50px;
    background: #66696b;
}
.walking-man-marker::after {
    position: absolute;
    top: 0;
    left: 2px;
    width: 22px;
    height: 14px;
    background: #b7352e;
    clip-path: polygon(0 0, 100% 20%, 70% 100%, 0 82%);
    content: "";
}
.running-dino-question { padding-top: 16px; }
.running-dino-question h2 { margin-bottom: 12px; font-size: 1.08rem; line-height: 1.45; }
.running-dino-options { display: flex; flex-wrap: wrap; gap: 10px; }
.running-dino-option {
    min-height: 44px;
    padding: 9px 15px;
    border: 1px solid #d9dfe0;
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
}
.running-dino-option:hover:not(:disabled) { border-color: #b7352e; background: #fff5f3; }
.running-dino-option:focus-visible { outline: 3px solid #b7352e; outline-offset: 2px; }
.running-dino-option:disabled { cursor: default; opacity: .65; }
.running-dino-feedback { min-height: 24px; margin: 12px 0 0; color: #505b64; font-size: .88rem; font-weight: 700; }
.running-dino-result { padding: 15px; margin-top: 12px; border-radius: 12px; background: #f0f6f2; }
.running-dino-result > strong { display: block; margin-bottom: 12px; }
.running-dino-result #running-dino-result-message { font-size: 1.25rem; }
.falling-men-wheel-card { max-width: 560px; margin-inline: auto; }
.falling-men-wheel-card .practice-wheel-wrap { width: min(100%, 380px); }
.falling-men-game-card[hidden], .falling-men-overlay[hidden], .falling-men-result[hidden] { display: none; }
.falling-men-task {
    padding: 16px 20px;
    margin-top: 16px;
    border-radius: 12px;
    background: #fff9df;
    color: var(--ink);
}
.falling-men-task p { margin-bottom: 10px; font-weight: 800; }
.falling-men-task ul { display: flex; flex-wrap: wrap; gap: 10px 24px; padding: 0; margin: 0; list-style: none; }
.falling-men-task li span { color: #7a6a2c; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.falling-men-task li strong { margin-left: 6px; font-size: 1.1rem; }
.falling-men-overlay {
    position: fixed;
    z-index: 40;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}
.falling-man {
    position: absolute;
    top: 0;
    left: 0;
    width: 120px;
    height: 156px;
    overflow: visible;
    transform: translate3d(var(--falling-x, 0px), var(--falling-y, 0px), 0);
    filter: drop-shadow(0 4px 3px rgba(29, 44, 48, .2));
}
.parachute-rig {
    transform-box: view-box;
    transform-origin: 60px 4px;
    animation: parachute-sway 3.2s ease-in-out infinite;
}
.parachute-dome, .parachute-fill { fill: #1c2429; }
.parachute-panels { fill: #fff; stroke: #1c2429; stroke-linejoin: round; stroke-width: 2; }
.parachute-lines, .parachute-limb {
    fill: none;
    stroke: #1c2429;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.3;
}
.parachute-limb { stroke-width: 4.5; }
@keyframes parachute-sway {
    0%, 100% { transform: rotate(-3deg); }
    50% { transform: rotate(3deg); }
}
.passage-pick { cursor: pointer; border-radius: 3px; }
.passage-pick:hover { background: #fff1c4; }
.passage-pick.is-found, .passage-pick.is-found:hover { background: transparent; color: #d62828; font-weight: 900; }
.falling-men-game-card.is-over .passage-pick { cursor: default; pointer-events: none; }
.falling-men-result { padding: 20px 15px; margin-top: 16px; border-radius: 12px; background: #f0f6f2; text-align: center; }
.falling-men-timeup { display: block; color: #b7352e; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(1.4rem, 5vw, 2rem); }
.falling-men-answers {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 28px;
    margin: 16px 0;
    color: var(--green);
    font-family: "Arial Black", Arial, sans-serif;
    font-size: clamp(1.8rem, 7vw, 3.2rem);
    line-height: 1.1;
}
.unrelated-status {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 14px;
    border-radius: 12px;
    background: #f0f6f2;
}
.unrelated-status > div { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.unrelated-status-label { color: #505b64; font-size: .72rem; font-weight: 700; }
.unrelated-status strong { color: var(--ink); font-size: 1.05rem; }
.unrelated-status .unrelated-target { color: var(--green); font-size: 1.25rem; }
.unrelated-status .game-clock { color: #9c592a; }
.unrelated-instruction { min-height: 24px; margin: 14px 0 8px; color: #505b64; font-size: .9rem; font-weight: 700; }
.unrelated-fall-zone {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    border: 1px solid #dce6df;
    border-radius: 14px;
    background: linear-gradient(180deg, #f5fbff, #f5f8f1);
}
.falling-word {
    position: absolute;
    top: -48px;
    left: var(--fall-left);
    z-index: 1;
    max-width: 45%;
    padding: 9px 13px;
    border: 1px solid #b6d6c5;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 4px 10px rgba(25, 43, 58, .12);
    color: #111;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 900;
    white-space: nowrap;
    animation: falling-word-drop var(--fall-duration) linear forwards;
}
.falling-word:hover { border-color: var(--green); background: #eaf6ee; }
.falling-word:focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }
@keyframes falling-word-drop {
    to { transform: translateY(var(--fall-distance)); }
}
.unrelated-result { display: block; margin-top: 14px; }
.unrelated-result[hidden] { display: none; }
.unrelated-result > strong { display: block; }
.unrelated-result-success { color: #d62828; font-size: 2.5rem; font-weight: 900; }
.unrelated-result-failure {
    color: #1756b3;
    font-family: "Arial Black", Arial, sans-serif;
    font-size: 1.5rem;
    font-weight: 900;
}
.unrelated-result .play-again-button { margin-top: 14px; }
.unrelated-word-meanings { margin-top: 14px; }
.unrelated-word-meanings[hidden] { display: none; }
.unrelated-word-meanings h2 { margin-bottom: 10px; font-size: 1.05rem; }
.unrelated-word-meanings dl { display: grid; grid-template-columns: minmax(90px, .25fr) minmax(0, 1fr); gap: 8px 14px; margin: 0; }
.unrelated-word-meanings dt { color: var(--ink); font-weight: 800; }
.unrelated-word-meanings dd { margin: 0; color: #505b64; font-size: .9rem; line-height: 1.5; }
.message-form {
    display: grid;
    max-width: 680px;
    gap: 10px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(36,55,49,.05);
}
.message-form label { margin-top: 7px; color: var(--ink); font-size: .94rem; font-weight: 700; }
.message-form input, .message-form select, .message-form textarea {
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid #cbd4d0;
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    font: inherit;
}
.message-form textarea { min-height: 150px; resize: vertical; }
.message-form input:focus-visible, .message-form select:focus-visible, .message-form textarea:focus-visible {
    outline: 3px solid #9bc9b3;
    outline-offset: 2px;
}
.message-submit-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    justify-self: start;
    padding: 0 18px;
    margin-top: 8px;
    border: 0;
    border-radius: 11px;
    background: var(--green);
    color: #fff;
    cursor: pointer;
    font-size: .9rem;
    font-weight: 800;
}
.message-submit-button:hover { background: #194f42; }
.message-form-note { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.vanishing-level-select {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 15px;
}
.vanishing-level-button {
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid #d8e4dd;
    border-radius: 999px;
    background: white;
    color: #52636b;
    cursor: pointer;
    font-size: .84rem;
    font-weight: 700;
}
.vanishing-level-button[aria-pressed="true"] {
    border-color: var(--green);
    background: #eaf4ee;
    color: var(--green);
}
.vanishing-level-button:focus-visible {
    outline: 3px solid #293b4a;
    outline-offset: 3px;
}
.game-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 14px 16px;
    border-radius: 12px;
    background: #f0f6f2;
    color: #38594d;
    font-size: .9rem;
    font-weight: 600;
}
.game-clock {
    min-width: 65px;
    color: #9c592a;
    font: 800 1.15rem "Manrope", sans-serif;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.passage-card {
    margin: 16px 0 20px;
    padding: 23px 24px;
    border: 1px solid #ece8dc;
    border-radius: 14px;
    background: #fffdf7;
    font-family: "Manrope", sans-serif;
    font-size: clamp(1.04rem, 2vw, 1.27rem);
    font-weight: 600;
    line-height: 2;
}
.passage-card p { margin-bottom: 7px; }
.passage-card p:last-child { margin-bottom: 0; }
.passage-card h2 { margin-bottom: 12px; font-size: 1.35rem; }
.passage-word { transition: opacity 250ms ease, color 250ms ease; }
.passage-word.word-vanished { visibility: hidden; }
.passage-word.word-restored { visibility: visible; color: #d62828; font-weight: 800; transition: none; }
.answer-section { padding-top: 6px; }
.answer-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 13px;
}
.answer-heading h2 { margin-bottom: 5px; font-size: 1.15rem; }
.answer-heading p { margin-bottom: 0; color: var(--muted); font-size: .81rem; line-height: 1.45; }
.score-display {
    display: flex;
    min-width: 82px;
    flex-direction: column;
    align-items: center;
    padding: 8px 12px;
    border-radius: 12px;
    background: #fff2bc;
}
.score-display span { color: #7f6b32; font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.score-display strong { font: 800 1.3rem "Manrope", sans-serif; }
.answer-list { display: flex; flex-wrap: wrap; gap: 12px; }
.answer-option {
    display: flex;
    min-width: 88px;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border: 1px solid #e6e9e5;
    border-radius: 11px;
    background: white;
    color: var(--ink);
    cursor: pointer;
    text-align: center;
    transition: border-color 150ms ease, background-color 150ms ease;
}
.answer-option:hover:not(:disabled) { border-color: #89ae9f; background: #f8fbf8; }
.answer-word { font-family: "Manrope", sans-serif; font-size: .91rem; line-height: 1.3; text-transform: capitalize; }
.answer-option.answer-correct { border-color: #5ea787; background: #eaf6ee; }
.answer-option.answer-selected-wrong { border-color: #dc8b7d; background: #fff0ed; }
.answer-option.answer-missed { border-color: #d9b454; background: #fff9df; }
.answer-option:disabled { cursor: default; }
.game-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 14px 16px;
    border-radius: 12px;
    background: #f0f6f2;
}
.game-result strong { line-height: 1.5; }
.eyebrow {
    margin: 0 0 13px;
    color: var(--green);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .13em;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Arial Black", Arial, sans-serif; font-weight: 900; }
h1 {
    margin-bottom: 13px;
    font-size: clamp(2.5rem, 5.6vw, 4.1rem);
    font-weight: 800;
    letter-spacing: -.065em;
    line-height: 1.08;
}
h1 span { color: var(--green); }
.hero-description {
    max-width: 590px;
    margin-bottom: 30px;
    color: #505b64;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.7;
}
.site-guide {
    padding: 20px 22px;
    margin-top: 28px;
    border: 1px solid #e4e9df;
    border-radius: 17px;
    background: #fffefa;
}
.site-guide h2 {
    margin-bottom: 9px;
    font-size: 1.28rem;
    letter-spacing: -.035em;
}
.site-guide p {
    margin: 0;
    color: #505b64;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.65;
}
.site-guide p + p { margin-top: 7px; }
.site-guide strong { color: var(--ink); }
.home-learning-image {
    width: 100vw;
    position: relative;
    margin: 61px 0 0 calc(50% - 50vw);
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: #fffefa;
    box-shadow: none;
}
.home-learning-image::before {
    content: "";
    position: absolute;
    top: -30px;
    left: 0;
    width: 100%;
    height: 1px;
    background: #d9d3c4;
}
.home-learning-image { container-type: inline-size; }
.home-start-button {
    position: absolute;
    left: 4.96%; top: 60.04%;
    width: 18.78%; height: 7.76%;
    display: flex; align-items: center; justify-content: center; gap: .5em;
    border-radius: 999px;
    background: linear-gradient(180deg, #1a70ea, #0563e6);
    color: #fff;
    white-space: nowrap;
    font: 700 min(1.75cqw, 1.6rem)/1 "Baloo 2", "Fredoka", "Trebuchet MS", system-ui, sans-serif;
    text-decoration: none;
    box-shadow: 0 .25cqw .7cqw rgba(5, 80, 190, .35);
    transition: transform .15s, filter .15s;
}
.home-start-button:hover, .home-start-button:focus-visible { transform: translateY(-2px); filter: brightness(1.1); }
.home-start-button:focus-visible { outline: 3px solid #f58231; outline-offset: 2px; }
.home-learning-image img {
    display: block;
    width: 100%;
    height: auto;
}
.home-view .hero-copy h1 { margin-bottom: 14px; }
.home-view .hero-description.rainbow-text {
    max-width: none;
    margin: 18px 0 0;
    font-size: clamp(1.25rem, 3.6vw, 1.9rem);
    font-weight: 800;
    text-align: center;
}
.rainbow-text { line-height: 1.25; }
.rainbow-text b {
    --c: #f58231; --d: #b85a0c;
    display: inline-block;
    margin: 0 .08em;
    font-family: "Baloo 2", "Fredoka", "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif;
    font-weight: 900;
    font-size: 1.35em;
    letter-spacing: -.01em;
    color: var(--c);
    -webkit-text-stroke: .04em var(--d);
    paint-order: stroke fill;
    text-shadow: 0 .04em 0 var(--d), 0 .08em 0 var(--d), 0 .12em 0 var(--d), 0 .16em .08em rgba(0,0,0,.25);
}
.rainbow-text b:nth-child(1) { --c: #ffa21a; --d: #c4660a; font-size: 1.7em; }
.rainbow-text b:nth-child(2) { --c: #2fb7f0; --d: #1479b5; }
.rainbow-text b:nth-child(3) { --c: #4cc12f; --d: #2a7d1a; }
.rainbow-text b:nth-child(4) { --c: #b05be8; --d: #7432a8; }
.rainbow-text b:nth-child(5) { --c: #ff9a1f; --d: #c4600a; }
.rainbow-text b:nth-child(6) { --c: #2fb7f0; --d: #1479b5; }
.rainbow-text b:nth-child(7) { --c: #f23a62; --d: #a81c3c; }
.rainbow-text b:nth-child(8) { --c: #a855e0; --d: #6d2da0; }
.rainbow-text b:nth-child(9) { --c: #27b8f2; --d: #1274b0; }
.rainbow-text b:nth-child(10) { --c: #ffa21a; --d: #c4660a; }
.skill-wheel-card {
    max-width: 560px;
    margin: 28px auto 0;
    border-color: var(--paper);
    background: var(--paper);
    box-shadow: none;
}
.skill-wheel-card .practice-wheel-wrap { width: min(100%, 380px); }
.skill-wheel-card .wheel-result:empty { display: none; }
@media (max-width: 620px) {
    .main-nav { margin-top: 0; padding: 2px 6px; gap: 0; }
    .main-nav .header-button { flex-direction: column; gap: 0; min-height: 46px; padding: 2px 4px; font-size: .6rem; }
    .main-nav .header-button img { height: 22px; }
    .main-nav .home-nav-button { padding: 2px 10px; }
    main { width: min(100% - 32px, 440px);     }

    .site-footer { padding: 0 16px; margin-top: 40px; }
    .footer-inner { padding-top: 30px; }
    .footer-top { grid-template-columns: 1fr; gap: 22px; }
    .footer-links { grid-template-columns: 1fr; }
    .footer-game-group:nth-child(2) { grid-column: auto; grid-row: auto; }
    .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
    .page-view { padding: 43px 0 32px; }
    .home-view { padding-top: 48px; }
    h1 { font-size: clamp(2.45rem, 11vw, 3.3rem); }
    .hero-description { font-size: .92rem; }
    .site-guide { padding: 17px; margin-top: 22px; }
    .skill-wheel-card { margin-top: 22px; padding: 14px; }
    .age-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 22px; }
    .pupil-grade-grid { grid-template-columns: 1fr; gap: 10px; margin-top: 22px; }
    .footer-nav { gap: 4px 16px; }
    .footer-skills { gap: 3px 8px; }
    .footer-skills .footer-button { font-size: clamp(.72rem, 3.2vw, .82rem); }
    .age-button { min-height: 145px; }
    .speaking-practice-card, .vanishing-game-card { padding: 14px; }
    .unrelated-status { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .falling-men-game-status { align-items: flex-start; flex-direction: column; }
    .falling-men-passage { padding: 16px; }
    .falling-men-passage p { font-size: .88rem; }
    .unrelated-fall-zone { min-height: 390px; }
    .unrelated-word-meanings dl { grid-template-columns: 1fr; gap: 2px; }
    .unrelated-word-meanings dd { margin-bottom: 8px; }
    .message-form { padding: 16px; }
    .practice-wheel-wrap, .game-wheel-wrap { width: 100%; }
    .games-wheel-layout { grid-template-columns: 1fr; gap: 8px; padding: 12px; }
    .game-wheel-info { padding: 0 6px 10px; }
    .game-wheel-info .wheel-result { text-align: center; }
    .game-wheel-info > p:not(.wheel-result) { text-align: center; }
    .game-status { align-items: flex-start; font-size: .8rem; }
    .passage-card { padding: 16px; font-size: 1rem; line-height: 1.85; }
    .answer-list { gap: 10px; }
    .answer-heading { align-items: flex-start; }
    .game-result { align-items: flex-start; flex-direction: column; }
}

.home-view .site-guide {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: start;
    gap: 20px;
    padding: 26px;
}
.home-guide-illustration {
    display: grid;
    width: 78px;
    height: 78px;
    place-items: center;
    border-radius: 22px;
    background: #edf5ee;
    color: #38644a;
}
.home-guide-illustration svg { display: block; width: 66px; height: 58px; }
.home-guide-content { min-width: 0; }
.home-guide-content > .eyebrow { margin: 0 0 6px; color: #51765d; }
.home-view .site-guide h2 { margin-bottom: 9px; }
.home-guide-intro {
    margin: 0 0 17px !important;
    font-size: 1.05rem !important;
}
.home-guide-grid {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.home-guide-grid::-webkit-scrollbar { display: none; }
.home-guide-topic {
    flex: 0 0 100%;
    scroll-snap-align: start;
    padding: 14px;
    border: 1px solid #e6ebe2;
    border-radius: 13px;
    background: #fff;
}
.home-guide-topic h3 {
    margin: 0 0 6px;
    color: var(--ink);
    font-size: 1.12rem;
    letter-spacing: -.02em;
    line-height: 1.45;
}
.home-guide-topic p {
    font-size: .98rem;
    line-height: 1.65;
}
.home-guide-content .home-guide-contact {
    margin-top: 14px;
    font-size: .96rem;
}
.home-guide-carousel-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 12px;
    color: var(--muted);
    font-size: .9rem;
    font-weight: 700;
}
.home-guide-image {
    display: block;
    width: min(100%, 720px);
    height: auto;
    margin: 22px auto 0;
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(25, 42, 51, .12);
}
.home-guide-slide-indicators {
    display: flex;
    align-items: center;
    gap: 10px;
}
.home-guide-slide-indicator {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 3px solid transparent;
    border-radius: 50%;
    background: #ffe58a;
    color: #b34424;
    cursor: pointer;
    font-size: 1.3rem;
    font-weight: 900;
    line-height: 1;
    transition: transform 150ms ease, box-shadow 150ms ease;
}
.home-guide-slide-indicator:nth-child(2) {
    background: #bde58d;
    color: #28613b;
}
.home-guide-slide-indicator:nth-child(3) {
    background: #c7e5fb;
    color: #22577a;
}
.home-guide-slide-indicator:hover { transform: translateY(-2px); }
.home-guide-slide-indicator.is-active {
    border-color: currentColor;
    box-shadow: 0 3px 9px rgba(25, 42, 51, .2);
    transform: scale(1.08);
}
.home-guide-carousel-button {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid #cbd8ce;
    border-radius: 50%;
    background: #fff;
    color: var(--green);
    cursor: pointer;
    font-size: 1.15rem;
    font-weight: 800;
}
.home-guide-carousel-button:disabled {
    color: #9aa69f;
    cursor: not-allowed;
    opacity: .55;
}
.home-guide-carousel-button:focus-visible,
.home-guide-slide-indicator:focus-visible,
.home-guide-grid:focus-visible {
    outline: 3px solid #2f6fa2;
    outline-offset: 3px;
}
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.has-scroll-reveal .home-guide-topic[data-scroll-reveal] {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .55s ease, transform .55s ease;
}
.has-scroll-reveal .home-guide-topic[data-scroll-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}
.home-guide-topic[data-scroll-reveal]:nth-child(2) { transition-delay: .08s; }
.home-guide-topic[data-scroll-reveal]:nth-child(3) { transition-delay: .16s; }
@media (max-width: 760px) {
    .home-guide-topic { flex-basis: 100%; }
}
@media (max-width: 620px) {
    .home-view .site-guide { grid-template-columns: 1fr; gap: 12px; padding: 18px; }
    .home-guide-illustration { width: 58px; height: 58px; border-radius: 17px; }
    .home-guide-illustration svg { width: 51px; height: 45px; }
    .home-guide-topic { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .tests-cat-walker { left: calc(50% - 65px); animation: none !important; transform: none; }
    .tests-cat-bubble { display: none; }
    .cat-face-front, .cat-head-side { animation: none !important; }
    .cat-face-front { opacity: 0; }
    .cat-head-side { opacity: 1; }
    .tests-cat-stage .cat-leg, .tests-cat-stage .cat-upper, .tests-cat-stage .cat-tail-group { animation: none !important; }
    .cat-leg-bl, .cat-leg-br { transform: rotate(-12deg); }
    .cat-leg-fl, .cat-leg-fr { transform: rotate(10deg); }
}
@media (prefers-reduced-motion: reduce) {
    .walking-man-rig .walker-motion,
    .walking-man-rig .walker-arm,
    .walking-man-rig .walker-leg,
    .walking-man-rig .walker-arm-lower,
    .walking-man-rig .walker-leg-lower,
    .walking-man-rig .walker-torso,
    .walking-man-rig .walker-shirt-highlight,
    .walking-man-rig .walker-shoe { animation: none; }
}

.birds-stage { position: fixed; inset: 0; z-index: 4; overflow: hidden; pointer-events: none; }
.bird { position: absolute; left: 0; width: 96px; height: 58px; will-change: transform; }
.bird svg { display: block; width: 100%; height: 100%; overflow: visible; }
.bird-2 { top: 0; animation: bird-fly-up 8s linear 1 both; }
.bird-3 { bottom: 6px; animation: bird-land 6s ease-out 1 both; }
.bird-poop {
    position: absolute;
    width: 5px;
    height: 9px;
    margin-left: -2.5px;
    border-radius: 50% 50% 50% 50% / 65% 65% 35% 35%;
    background: #f7f5ef;
    box-shadow: 0 0 0 1px rgba(60, 50, 40, .5);
}
.bird-poop.is-splat {
    width: 20px;
    height: 7px;
    margin-left: -10px;
    border-radius: 50%;
    background: radial-gradient(ellipse at 45% 50%, #4a3f30 0 22%, #fff 24% 100%);
    box-shadow: 0 0 0 1px rgba(60, 50, 40, .45), 7px 1px 0 -1px #fff, -8px 0 0 -2px #fff;
}
.bird-wing { transform-box: view-box; transform-origin: 50px 29px; animation: bird-flap .32s ease-in-out infinite alternate; }
.bird-wing-far { animation-delay: -.08s; }
.bird-legs { opacity: 0; }
.bird-3.is-landed .bird-wing { animation: none; transform: rotate(-28deg) scaleY(.75); }
.bird-3.is-landed .bird-legs { opacity: 1; }
.bird-3.is-leaving { animation: bird-leave 4.5s ease-in 1 forwards; }
.bird-3.is-landed .bird-head { transform-box: view-box; transform-origin: 62px 30px; animation: bird-peck 3.2s ease-in-out infinite; }
.bird-3.is-landed svg { transform-origin: 50px 56px; animation: bird-hop 3.2s ease-in-out infinite; }
.bird-seed {
    position: absolute;
    width: 6px;
    height: 3.5px;
    border-radius: 50%;
    background: #c9a45c;
    box-shadow: inset -1px -1px 0 #8f6b2e;
    opacity: 0;
    transform: rotate(var(--seed-tilt, 0deg));
}
.bird-3.is-landed ~ .bird-seed {
    animation: bird-seed-drop .45s ease-in var(--seed-drop, 0ms) both, bird-seed-eaten .4s ease-in var(--seed-eat, 5s) forwards;
}
@keyframes bird-peck {
    0%, 8% { transform: rotate(0deg); }
    14% { transform: rotate(38deg); }
    20% { transform: rotate(2deg); }
    26% { transform: rotate(38deg); }
    32%, 48% { transform: rotate(0deg); }
    54% { transform: rotate(40deg); }
    60% { transform: rotate(4deg); }
    66% { transform: rotate(40deg); }
    72%, 100% { transform: rotate(0deg); }
}
@keyframes bird-hop {
    0%, 36% { transform: translateX(0) rotate(0deg); }
    42% { transform: translateX(5px) translateY(-6px) rotate(-4deg); }
    48%, 80% { transform: translateX(10px) rotate(0deg); }
    86% { transform: translateX(5px) translateY(-5px) rotate(-3deg); }
    92%, 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bird-seed-drop {
    from { opacity: 0; transform: translateY(-26px) rotate(var(--seed-tilt, 0deg)); }
    70% { opacity: 1; transform: translateY(1px) rotate(var(--seed-tilt, 0deg)); }
    to { opacity: 1; transform: translateY(0) rotate(var(--seed-tilt, 0deg)); }
}
@keyframes bird-seed-eaten {
    from { opacity: 1; transform: rotate(var(--seed-tilt, 0deg)) scale(1); }
    to { opacity: 0; transform: rotate(var(--seed-tilt, 0deg)) scale(.2); }
}
@keyframes bird-leave {
    0% { transform: translate(70vw, 0) rotate(0deg); }
    20% { transform: translate(74vw, -9vh) rotate(-24deg); }
    100% { transform: translate(calc(100vw + 130px), -42vh) rotate(-14deg); }
}
@keyframes bird-flap {
    from { transform: rotate(55deg) scaleY(1); }
    to { transform: rotate(-35deg) scaleY(.7); }
}
@keyframes bird-fly-up {
    0% { transform: translate(8vw, calc(100vh + 90px)) rotate(-30deg); }
    35% { transform: translate(36vw, 62vh) rotate(-27deg); }
    65% { transform: translate(62vw, 32vh) rotate(-22deg); }
    100% { transform: translate(calc(100vw + 110px), -110px) rotate(-18deg); }
}
@keyframes bird-land {
    0% { transform: translate(46vw, calc(-100vh - 90px)) rotate(38deg); }
    45% { transform: translate(57vw, -52vh) rotate(24deg); }
    80% { transform: translate(68vw, -8vh) rotate(8deg); }
    100% { transform: translate(70vw, 0) rotate(0deg); }
}
@media (max-width: 700px) {
    .bird { width: 68px; height: 41px; }
}
@media (prefers-reduced-motion: reduce) {
    .bird-2 { display: none; }
    .bird-seed { opacity: 1; animation: none !important; }
    .bird-3 { animation: none !important; transform: translate(70vw, 0); }
    .bird-3 .bird-wing { animation: none !important; transform: rotate(-28deg) scaleY(.75); }
    .bird-3 .bird-legs { opacity: 1; }
    .bird-3 .bird-head, .bird-3 svg { animation: none !important; }
}

.skill-about { width: min(100%, 760px); margin: 34px auto 0; color: var(--ink, #1f2a30); }
.skill-about h2 { margin: 0 0 10px; font-size: 1.3rem; }
.skill-about h4 { margin: 16px 0 6px; font-size: 1rem; }
.skill-about h3 { margin: 18px 0 6px; font-size: 1.1rem; }
.skill-about p { margin: 0 0 12px; line-height: 1.6; }
.skill-about-list { display: grid; gap: 6px; padding-left: 20px; margin: 0; }
.skill-about-list a { font-weight: 700; }
.skill-about-host { color: #5f6b72; font-size: .88rem; }
.skill-about[hidden] { display: none; }

.key-link,
a.footer-button.key-link {
    color: #b3261e;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.key-link:hover { color: #8c1c16; }
.key-link:focus-visible { outline: 3px solid #17212a; outline-offset: 3px; border-radius: 3px; }
.site-footer .key-link,
.site-footer a.footer-button.key-link { color: #ff9d94; }
.site-footer .key-link:hover { color: #ffc2bc; }
.site-footer .key-link:focus-visible { outline-color: #f2ca72; }

.home-seo-text { max-width: 760px; margin: 40px 0 0; color: var(--ink); }
.home-seo-text h2 { margin: 26px 0 8px; font-size: 1.3rem; }
.home-seo-text p { margin: 0 0 12px; line-height: 1.6; }
.home-seo-text a { font-weight: 700; }

.seo-content { width: min(100%, 760px); margin: 34px auto 0; color: var(--ink); }
.seo-content h2 { margin: 26px 0 8px; font-size: 1.3rem; }
.seo-content p { margin: 0 0 12px; line-height: 1.6; }
.seo-content a { font-weight: 700; }

.game-intro { display: none; width: min(100%, 760px); margin: 26px 0; color: var(--ink); }
.page-view.is-intro > .game-intro { display: block; }
.page-view.is-intro > :not(.back-link):not(.page-heading):not(.game-intro):not(.seo-content) { display: none !important; }
.game-intro h2 { margin: 0 0 10px; font-size: 1.3rem; }
.game-intro h3 { margin: 18px 0 6px; font-size: 1.1rem; }
.game-intro p { margin: 0 0 12px; line-height: 1.6; }
.game-intro a { font-weight: 700; }
.game-start-button { margin-top: 12px; min-width: 160px; }

body.tests-page-active .skill-about { color: #f3f4f6; }
body.tests-page-active .skill-about h2, body.tests-page-active .skill-about h3 { color: #fff; }
body.tests-page-active .skill-about .key-link, body.tests-page-active .skill-about a { color: #ff9d94; }
body.tests-page-active .skill-about a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.letter-challenge-view[data-pending-start="pupil"] .game-intro-adult { display: none; }

.page-title { margin-bottom: 13px; font-size: clamp(2.5rem, 5.6vw, 4.1rem); font-weight: 800; letter-spacing: -.065em; line-height: 1.08; }
.page-title span { color: var(--green); }
.page-heading .page-title { font-size: clamp(2.2rem, 5vw, 3.4rem); }
.home-view .hero-copy .page-title { margin-bottom: 14px; }
@media (max-width: 620px) { .page-title { font-size: clamp(2.45rem, 11vw, 3.3rem); } }

.key-link, a.footer-button.key-link,
.skill-about p a, .home-seo-text p a, .seo-content p a { color: #1558c0; }
.key-link:hover, .skill-about p a:hover, .home-seo-text p a:hover, .seo-content p a:hover { color: #0b3d8f; }
.site-footer .key-link, .site-footer a.footer-button.key-link,
body.tests-page-active .skill-about .key-link, body.tests-page-active .skill-about p a { color: #8fb8ff; }
.site-footer .key-link:hover, body.tests-page-active .skill-about p a:hover { color: #c3d9ff; }


/* Running Dino night event: full-page darkness, sky and readable game card */
.night-overlay, .night-sky { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; }
.night-overlay { z-index: 40; background: #050a1c; opacity: 0; }
.night-sky { z-index: 41; }
body.dino-night .running-dino-game-card { position: relative; z-index: 60; }
@media (prefers-reduced-motion: reduce) { .night-overlay, .night-sky { transition: none; } }
/* light text on the darkened page (the game card stays above the overlay, untouched) */
body.dino-night .site-footer, body.dino-night .site-footer *,
body.dino-night .running-dino-view > :not(.running-dino-game-card),
body.dino-night .running-dino-view > :not(.running-dino-game-card) * { color: #e8eefc !important; }

/* "For pupils" title: flat sticker-style words (bottom-left sample of resimler/yazi.jpeg) with the spin-wheel picture */
.pupils-title-row { display: flex; align-items: center; gap: clamp(10px, 2vw, 22px); margin: 0 0 13px; }
.pupils-title-wheel { flex: none; width: clamp(54px, 9vw, 84px); height: auto; }
.page-heading h1.pupils-title { margin: 0; font-family: "Baloo 2", "Fredoka", "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif; font-size: clamp(1.45rem, 4.2vw, 2.2rem); font-weight: 800; line-height: 1.75; text-shadow: none; letter-spacing: normal; }
.page-heading h1.pupils-title .sticker { display: inline-block; margin: 0 .12em; padding: 0 .38em; border-radius: .5em; line-height: 1.25; color: #14214a; background: var(--bg); }
.page-heading h1.pupils-title .sticker.is-light { color: #fff; }

/* Home page spacing: picture -> tagline is 3x, wheel -> carousel section is 2x the previous gap */
.home-view .hero-description.rainbow-text { margin-top: 54px; }
.home-view .site-guide { margin-top: 56px; }
@media (max-width: 620px) { .home-view .site-guide { margin-top: 44px; } }
.letter-challenge-passage .letter-challenge-source { margin-top: 14px; font-size: .9em; font-style: italic; }
.falling-men-passage .falling-men-source { margin-top: 12px; font-size: .9em; font-style: italic; }

.running-dino-reading-passage .running-dino-source { display: block; margin-top: 12px; color: #1d593d; font-size: .9rem; font-weight: 700; }
.passage-card .passage-source { display: block; margin-top: 12px; font-size: .9rem; font-weight: 700; }

/* Customize the menu palette and timing here. */
:root {
    --menu-bg: #00AAFF;
    --menu-text: #fff;
    --menu-accent: #ffd166;
    --menu-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
    --menu-duration: .8s;
}
.site-menu-bar {
    position: relative;
    z-index: 10001;
    display: flex;
    min-height: 68px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: max(8px, env(safe-area-inset-top)) clamp(18px, 4vw, 52px) 8px;
    background: #fbfaf7;
    box-shadow: 0 2px 14px rgba(16, 22, 30, .1);
    transition: background-color .3s ease, box-shadow .3s ease;
}
.site-menu-bar .site-brand {
    position: static;
    display: inline-flex;
    width: auto;
    height: auto;
    align-items: center;
    gap: 9px;
    padding: 6px 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #0b3a8c;
    font-family: "Manrope", "DM Sans", sans-serif;
    font-size: clamp(1.05rem, 3vw, 1.45rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.1;
    white-space: nowrap;
    transition: color .3s ease;
}
.site-menu-bar .site-brand-icon {
    display: block;
    width: clamp(14px, 1.5vw, 18px);
    height: auto;
    flex: 0 0 auto;
    object-fit: contain;
}
.site-menu-bar .site-brand:focus-visible { outline: 3px solid #0a5bd6; outline-offset: 5px; }
.site-menu-toggle {
    position: relative;
    z-index: 10002;
    display: flex;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #141414;
    cursor: pointer;
    transition: background-color .3s ease, color .3s ease;
}
.site-menu-toggle:hover { background: rgba(15, 25, 38, .08); }
.site-menu-toggle:focus-visible { outline: 3px solid #0a5bd6; outline-offset: 3px; }
.site-menu-toggle span {
    display: block;
    width: 25px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform-origin: center;
    transition:
        transform .25s cubic-bezier(.4, .01, .165, .99),
        opacity .2s ease,
        background-color .25s var(--menu-easing);
}
.site-menu-toggle[aria-expanded="true"] { color: #fff; }
.site-menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(8px) rotate(45deg); }
.site-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.site-menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-8px) rotate(-45deg); }
.site-menu-overlay {
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    overscroll-behavior: none;
    touch-action: none;
    background: var(--menu-bg);
    color: var(--menu-text);
    clip-path: inset(0 0 100% 0);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition:
        clip-path var(--menu-duration) var(--menu-easing),
        opacity var(--menu-duration) var(--menu-easing),
        visibility 0s linear var(--menu-duration);
}
.site-menu-overlay.is-open {
    clip-path: inset(0);
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition-delay: 0s;
}
.site-menu-overlay .main-nav {
    position: relative;
    top: auto;
    display: grid;
    width: min(100%, 980px);
    height: 100%;
    min-height: 0;
    box-sizing: border-box;
    align-content: center;
    justify-items: start;
    gap: clamp(8px, 1.8vh, 20px);
    margin: 0 auto;
    padding: max(96px, calc(72px + env(safe-area-inset-top))) clamp(24px, 8vw, 90px) max(32px, env(safe-area-inset-bottom));
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.site-menu-overlay .main-nav .header-button {
    position: relative;
    display: flex;
    flex-direction: row;
    width: fit-content;
    min-width: 0;
    min-height: 0;
    align-items: baseline;
    justify-content: flex-start;
    gap: clamp(12px, 2vw, 28px);
    margin: 0;
    padding: 5px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--menu-text);
    font-family: "Roboto", sans-serif;
    font-size: clamp(1.75rem, min(6.3vw, 5.8vh), 5.2rem);
    font-weight: 500;
    line-height: 1.08;
    text-align: left;
    text-decoration: none;
    white-space: normal;
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity .45s ease,
        transform .6s var(--menu-easing),
        color .25s ease;
    transition-delay: 0s;
}
.site-menu-overlay .main-nav .header-button::before {
    flex: 0 0 2.8ch;
    color: var(--menu-accent);
    content: counter(menu-item, decimal-leading-zero);
    counter-increment: menu-item;
    font-family: "DM Sans", sans-serif;
    font-size: .25em;
    font-weight: 600;
    letter-spacing: .08em;
}
.site-menu-overlay .main-nav { counter-reset: menu-item; }
.site-menu-overlay .main-nav .header-button::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: calc(2.8ch + clamp(12px, 2vw, 28px));
    height: 2px;
    background: var(--menu-accent);
    content: "";
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .3s var(--menu-easing);
}
.site-menu-overlay .main-nav .header-button:hover,
.site-menu-overlay .main-nav .header-button:focus-visible {
    color: var(--menu-accent);
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    filter: none;
    transform: translateX(5px);
}
.site-menu-overlay .main-nav .header-button:hover::after,
.site-menu-overlay .main-nav .header-button:focus-visible::after { transform: scaleX(1); }
.site-menu-overlay .main-nav .header-button:focus-visible { outline: 2px solid var(--menu-accent); outline-offset: 6px; }
.site-menu-overlay .main-nav .header-button img { display: none; }
.site-menu-overlay .main-nav .header-button span { display: inline; }
.site-menu-overlay.is-open .main-nav .header-button {
    opacity: 1;
    transform: translateY(0);
    transition-delay: calc(var(--menu-index, 0) * 55ms);
}
html.site-menu-open,
body.site-menu-open {
    overflow: hidden;
    overscroll-behavior: none;
}
/* Match the header to the menu only while open; the logo image stays untouched. */
body.site-menu-open .site-menu-bar {
    background-color: transparent;
    box-shadow: none;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
}
body.site-menu-open .site-menu-bar .site-brand {
    color: #fff;
}
body.site-menu-open .site-menu-toggle:hover {
    background: rgba(255, 255, 255, .12);
}
@media (max-width: 620px) {
    .site-menu-bar { min-height: 62px; }
    .site-menu-overlay .main-nav {
        align-content: center;
        gap: clamp(4px, 1.3vh, 12px);
        padding-inline: clamp(22px, 7vw, 48px);
        padding-block: max(86px, calc(62px + env(safe-area-inset-top))) max(20px, env(safe-area-inset-bottom));
    }
    .site-menu-overlay .main-nav .header-button { font-size: clamp(1.35rem, min(8vw, 4.8vh), 3.2rem); }
}
@media (max-height: 500px) {
    .site-menu-overlay .main-nav {
        align-content: center;
        gap: clamp(2px, 1vh, 5px);
        padding-block: max(68px, calc(62px + env(safe-area-inset-top))) max(12px, env(safe-area-inset-bottom));
    }
    .site-menu-overlay .main-nav .header-button {
        padding-block: 3px;
        font-size: clamp(1.2rem, 4vh, 1.8rem);
    }
}
@media (prefers-reduced-motion: reduce) {
    .site-menu-overlay,
    .site-menu-overlay .main-nav .header-button,
    .site-menu-bar,
    .site-menu-bar .site-brand,
    .site-menu-toggle,
    .site-menu-toggle span {
        transition-duration: .01ms;
        transition-delay: 0s;
    }
}

.site-menu-overlay {
    --menu-theme-color: #4A5AE4;
    background:
        radial-gradient(circle at 50% 30%, var(--menu-theme-color) 0%, transparent 60%),
        linear-gradient(160deg, #4A7BDC 0%, #4A5AE4 40%, #3F86E0 100%);
}
.site-menu-overlay .main-nav {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    justify-content: stretch;
    margin: 0;
    padding-inline: clamp(24px, 3vw, 32px);
}
.site-menu-overlay .main-nav .header-button {
    width: 100%;
    box-sizing: border-box;
    align-items: center;
    justify-content: space-between;
    padding-block: clamp(12px, 2.2vh, 18px);
    padding-right: 2.1em;
    border-bottom: 1px solid rgba(255, 255, 255, .25);
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 1.05em;
    color: #fff;
    font-family: "Outfit", sans-serif;
    font-weight: 300;
}
.site-menu-overlay .main-nav .header-button span {
    display: block;
    flex: 1 1 auto;
    color: inherit;
    font-family: inherit;
    font-weight: inherit;
    text-align: left;
}
.site-menu-overlay .main-nav .header-button:not(:has(span)) {
    justify-content: flex-start;
}
.site-menu-overlay .main-nav .header-button:hover,
.site-menu-overlay .main-nav .header-button:focus-visible {
    color: #fff;
    font-family: "Outfit", sans-serif;
    font-weight: 300;
}
