.kor-cat-helper {
    position: fixed;
    z-index: 880;
    right: 22px;
    bottom: 16px;
    display: grid;
    justify-items: center;
    width: 270px;
    font-family: inherit;
    user-select: none;
}

.kor-cat-helper[hidden],
.kor-cat-helper [hidden] {
    display: none !important;
}
.kor-cat-helper.is-hidden .kor-cat-helper-bubble,
.kor-cat-helper.is-hidden .kor-cat-helper-mascot { display: none; }
/* Hidden-pet geometry is shared in study-pet-peek.css. */

.kor-cat-helper-mascot {
    position: relative;
    display: grid;
    place-items: center;
    width: 118px;
    height: 118px;
    margin: -2px 0 0;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    filter: drop-shadow(0 9px 9px rgba(24, 37, 62, 0.18));
    cursor: grab;
    touch-action: none;
}
.kor-cat-helper[data-vocabulary-card-state="question"] .kor-cat-helper-mascot::before,
.kor-cat-helper[data-vocabulary-card-state="question"] .kor-cat-helper-mascot::after {
    position: absolute;
    z-index: 2;
    display: grid;
    place-items: center;
    border: solid #0b2a63;
    border-radius: 50%;
    color: #0b2a63;
    font-weight: 950;
    line-height: 1;
    filter: drop-shadow(0 3px 3px rgba(24, 37, 62, .18));
    pointer-events: none;
}
.kor-cat-helper[data-vocabulary-card-state="question"] .kor-cat-helper-mascot::before {
    content: "?";
    top: -12px;
    right: 0;
    width: 34px;
    height: 34px;
    border-width: 3px;
    background: #ffd84d;
    font-size: 24px;
    animation: kor-vocabulary-question-pop .72s ease-in-out infinite alternate;
}
.kor-cat-helper[data-vocabulary-card-state="question"] .kor-cat-helper-mascot::after {
    content: "?";
    top: 25px;
    right: -12px;
    width: 22px;
    height: 22px;
    border-width: 2px;
    background: #fff4cf;
    font-size: 15px;
    animation: kor-vocabulary-question-pop .72s -.36s ease-in-out infinite alternate;
}
.kor-cat-helper[data-vocabulary-card-state="answer"] .kor-cat-helper-mascot::after {
    content: "!";
    position: absolute;
    top: -10px;
    right: 5px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 3px solid #0b2a63;
    border-radius: 50%;
    background: #ffd84d;
    color: #0b2a63;
    font-size: 24px;
    font-weight: 950;
    line-height: 1;
    filter: drop-shadow(0 3px 3px rgba(24, 37, 62, 0.18));
    animation: kor-vocabulary-aha .48s ease-in-out infinite alternate;
    pointer-events: none;
}
.kor-cat-helper-mascot:active { cursor: grabbing; }
.kor-cat-helper-mascot:focus-visible {
    outline: 3px solid rgba(232, 135, 76, 0.42);
    outline-offset: 2px;
    border-radius: 45%;
}
.kor-cat-helper-visual {
    position: relative;
    display: block;
    width: 118px;
    height: 118px;
    pointer-events: none;
    transform-origin: 50% 72%;
    animation: kor-cat-float 3.2s ease-in-out infinite;
}
/* Keep the image and eye overlay in the same animated coordinate system. */
.kor-cat-helper-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}
.kor-cat-helper-princess-blink {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
}
.kor-cat-helper[data-pet="princess"][data-expression="normal"].is-princess-blinking .kor-cat-helper-princess-blink {
    animation: kor-princess-eye-blink 1s steps(1, end) 1;
}

.kor-cat-helper-bubble {
    position: relative;
    width: max-content;
    min-width: 178px;
    max-width: min(290px, calc(100vw - 24px));
    padding: 8px 9px;
    border: 1px solid #efb083;
    border-radius: 17px 17px 17px 5px;
    background: rgba(255, 253, 250, 0.98);
    color: #703b24;
    box-shadow: 0 9px 24px rgba(80, 47, 29, 0.14);
    transform-origin: 76% bottom;
    animation: kor-cat-bubble-in 0.2s ease-out;
}
.kor-cat-helper-bubble::after {
    position: absolute;
    right: 42px;
    bottom: -8px;
    width: 14px;
    height: 14px;
    border-right: 1px solid #efb083;
    border-bottom: 1px solid #efb083;
    background: #fffdfa;
    content: "";
    transform: rotate(45deg);
}
.kor-cat-helper-bubble.is-expanded { width: min(270px, calc(100vw - 24px)); }
.kor-cat-helper-bubble.is-attendance,
.kor-cat-helper-bubble.is-saved-files {
    min-height: 142px;
    padding: 12px;
}
.kor-cat-helper.is-vocabulary-game-open .kor-cat-helper-bubble { display: none; }
.kor-cat-helper.is-vocabulary-game-open { z-index: 1100; }
.kor-cat-helper.is-word-game-open .kor-cat-helper-bubble { display: none; }
.kor-cat-helper.is-word-game-open { z-index: 1100; }
.kor-word-panel {
    position: fixed;
    right: 12px;
    bottom: 140px;
    width: min(390px, calc(100vw - 24px));
    max-height: calc(100dvh - 164px);
    overflow-y: auto;
    padding: 18px;
    box-sizing: border-box;
    border: 1px solid #efb083;
    border-radius: 20px 20px 8px 20px;
    background: #fffdfa;
    color: #17233a;
    box-shadow: 0 18px 46px #321f1633;
    user-select: text;
    overflow-wrap: anywhere;
}
.kor-word-panel[hidden] { display: none; }
.kor-word-panel header { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.kor-word-panel h2 { margin: 0; font-size: 19px; }
.kor-word-panel-tools { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.kor-word-panel-tools > button { margin: 0; }
.kor-word-panel button { padding: 10px 14px; margin: 5px 4px 5px 0; border: 1px solid #efb083; border-radius: 10px; background: #fff; color: #8d3d18; cursor: pointer; }
.kor-word-panel button:disabled { opacity: .5; cursor: wait; }
.kor-word-panel button:focus-visible { outline: 3px solid #235fe3; outline-offset: 2px; }
.kor-word-panel [data-kor-word-progress] {
    margin: 0;
    padding: 6px 10px;
    border: 1px solid #efc09e;
    border-radius: 999px;
    background: #fff5eb;
    color: #8d3d18;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}
.kor-word-panel [data-kor-word-progress]:empty { display: none; }
.kor-word-panel [data-kor-word-body] { display: grid; gap: 9px; line-height: 1.55; }
.kor-word-panel [data-kor-word-body] > p { margin: 4px 0; }
.kor-word-panel [data-kor-word-body] button { display: block; width: 100%; margin: 0; text-align: left; }
.kor-word-panel [data-kor-word-speech] { font-weight: 700; color: #8d3d18; }
.kor-word-question,
.kor-word-answer,
.kor-word-explanation {
    padding: 12px 13px;
    border: 2px solid;
    border-radius: 12px;
    box-shadow: 0 5px 14px rgba(24, 37, 62, .08);
}
.kor-word-question { border-color: #ed8a4c; background: #fff6ec; }
.kor-word-answer { border-color: #42a876; background: #effbf5; }
.kor-word-explanation { border-color: #5f8ee8; background: #f1f6ff; }
.kor-word-section-label {
    display: inline-flex;
    min-width: 42px;
    justify-content: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: #b64f20;
    color: #fff;
    font-size: 12px;
    letter-spacing: .04em;
}
.kor-word-answer .kor-word-section-label { background: #238457; }
.kor-word-explanation .kor-word-section-label { background: #3569ca; }
.kor-word-section-copy {
    margin: 7px 0 0;
    color: #17233a;
    font-size: 16px;
    font-weight: 750;
    line-height: 1.55;
    white-space: pre-wrap;
}
.kor-word-question-guide {
    margin: 7px 0 0;
    color: #7a513a;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
}
.kor-word-question-focus {
    margin: 8px 0 0;
    padding: 9px 10px;
    border-left: 4px solid #dd642c;
    border-radius: 8px;
    background: #fff;
    color: #102a56;
    font-size: 17px;
    font-weight: 850;
    line-height: 1.5;
}
.kor-word-answer .kor-word-section-copy { color: #176640; }
.kor-word-source {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 10px;
    padding: 2px 3px;
    color: #69788d;
    font-size: 12px;
}
.kor-word-source a { color: #355f9b; font-weight: 700; }

.kor-vocabulary-game {
    position: relative;
    justify-self: end;
    width: min(430px, calc(100vw - 24px));
    margin-bottom: 10px;
    padding: 17px;
    border: 1px solid #efb083;
    border-radius: 20px 20px 20px 8px;
    background: rgba(255, 253, 250, .99);
    color: #17233a;
    box-shadow: 0 18px 46px rgba(50, 31, 22, .2);
    user-select: text;
    animation: kor-cat-bubble-in .22s ease-out;
}
.kor-vocabulary-game-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    margin-bottom: 13px;
}
.kor-vocabulary-game-head h2 {
    grid-row: 1;
    grid-column: 1;
    margin: 0;
    color: #17233a;
    font-size: 19px;
    letter-spacing: -.035em;
    white-space: nowrap;
}
.kor-vocabulary-game-progress {
    grid-column: 2;
    justify-self: center;
    color: #7c8798;
    font-size: 12px;
    font-weight: 850;
    text-align: center;
}
.kor-vocabulary-game-progress.is-status-message {
    grid-row: 2;
    grid-column: 1 / -1;
}
.kor-vocabulary-game-close {
    grid-row: 1;
    grid-column: 3;
    justify-self: end;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid #f0d3bf;
    border-radius: 10px;
    background: #fff8f2;
    color: #9b4e2e;
    font: inherit;
    font-size: 21px;
    cursor: pointer;
}
.kor-vocabulary-game-loading {
    display: grid;
    place-items: center;
    min-height: 150px;
    gap: 12px;
    color: #64748b;
    font-size: 13px;
    font-weight: 750;
    text-align: center;
}
.kor-vocabulary-game-loading button {
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid #e7b18d;
    border-radius: 11px;
    background: #fff;
    color: #8c482a;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}
.kor-vocabulary-card-shell { position: relative; }
.kor-vocabulary-nav {
    position: absolute;
    z-index: 3;
    top: 50%;
    display: grid;
    place-items: center;
    width: 34px;
    height: 48px;
    padding: 0;
    border: 1px solid #e7b18d;
    border-radius: 13px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 6px 16px rgba(91, 54, 32, .14);
    color: #e36f34;
    font: inherit;
    cursor: pointer;
    transform: translateY(-50%);
}
.kor-vocabulary-nav svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.kor-vocabulary-prev { left: -12px; }
.kor-vocabulary-next { right: -12px; }
.kor-vocabulary-nav:hover:not(:disabled) { border-color: #e9874c; background: #fff7f0; }
.kor-vocabulary-nav:focus-visible { outline: 3px solid rgba(37, 99, 235, .28); outline-offset: 2px; }
.kor-vocabulary-nav:disabled { opacity: .25; cursor: default; }
.kor-vocabulary-flip-card {
    /* Leave room for the header and pet while showing the full answer on desktop. */
    height: min(460px, calc(100vh - 240px));
    height: min(460px, calc(100dvh - 240px));
    outline: none;
    perspective: 1200px;
    cursor: pointer;
}
.kor-vocabulary-flip-card:focus-visible { outline: 3px solid rgba(37, 99, 235, .28); outline-offset: 3px; border-radius: 16px; }
.kor-vocabulary-flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform .55s cubic-bezier(.2, .72, .2, 1);
    transform-style: preserve-3d;
}
.kor-vocabulary-flip-card.is-flipped .kor-vocabulary-flip-card-inner { transform: rotateY(180deg); }
.kor-vocabulary-face {
    position: absolute;
    inset: 0;
    box-sizing: border-box;
    overflow: hidden;
    border: 1px solid #dbe6f3;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(37, 67, 101, .08);
    backface-visibility: hidden;
}
.kor-vocabulary-front {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 18px;
    padding: 30px;
    text-align: center;
    background: linear-gradient(145deg, #fffaf6, #fff 58%, #eff6ff);
}
.kor-vocabulary-front > span,
.kor-vocabulary-answer > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: #e9874c;
    color: #fff;
    font-size: 15px;
    font-weight: 900;
}
.kor-vocabulary-front strong { color: #10233f; font-size: clamp(25px, 7vw, 34px); line-height: 1.3; word-break: keep-all; }
.kor-vocabulary-front small { color: #7c8798; font-size: 12px; font-weight: 700; }
.kor-vocabulary-back {
    padding: 18px;
    overflow-y: auto;
    transform: rotateY(180deg);
}
.kor-vocabulary-answer { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; padding-bottom: 13px; border-bottom: 1px solid #e5edf6; }
.kor-vocabulary-answer strong { color: #1559c9; font-size: 19px; line-height: 1.4; }
.kor-vocabulary-details { display: grid; gap: 9px; margin: 13px 0 0; }
.kor-vocabulary-details > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; }
.kor-vocabulary-details dt { color: #9b4e2e; font-size: 11px; font-weight: 900; }
.kor-vocabulary-details dd { margin: 0; color: #475569; font-size: 12px; line-height: 1.55; word-break: keep-all; }
.kor-vocabulary-quote {
    margin: 13px 0 0;
    padding: 10px 12px;
    border: 1px solid #cfe4ec;
    border-left: 3px solid #3b9ab5;
    border-radius: 5px;
    background: #f2f9fb;
}
.kor-vocabulary-quote > span { display: block; color: #9b4e2e; font-size: 10px; font-weight: 900; }
.kor-vocabulary-quote strong { display: block; color: #b35b2b; font-size: 11px; line-height: 1.4; }
.kor-vocabulary-quote p { margin: 5px 0 0; color: #475569; font-size: 12px; line-height: 1.55; word-break: keep-all; }
.kor-vocabulary-notes { margin: 9px 0 0; color: #64748b; font-size: 11px; line-height: 1.45; }
.kor-vocabulary-rating {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 12px;
}
.kor-vocabulary-rating button {
    min-height: 36px;
    border: 1px solid #d8e3ef;
    border-radius: 11px;
    background: #fff;
    color: #475569;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}
.kor-vocabulary-rating button:first-child[aria-pressed="true"] {
    border-color: #3aa675;
    background: #eaf9f1;
    color: #16704a;
}
.kor-vocabulary-rating button:last-child[aria-pressed="true"] {
    border-color: #e9874c;
    background: #fff2e9;
    color: #a34820;
}
.kor-vocabulary-rating button:disabled { opacity: .45; cursor: default; }
.kor-vocabulary-result {
    box-sizing: border-box;
    display: grid;
    place-items: center;
    align-content: center;
    min-height: 350px;
    padding: 28px;
    overflow: hidden;
    border: 1px solid #dbe6f3;
    border-radius: 16px;
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 220, 155, .34), transparent 34%),
        linear-gradient(145deg, #fffaf6, #fff 58%, #effaf5);
    box-shadow: 0 8px 20px rgba(37, 67, 101, .08);
    text-align: center;
    animation: kor-vocabulary-result-in .48s cubic-bezier(.18, .8, .25, 1.15);
}
.kor-vocabulary-result[hidden] { display: none; }
.kor-vocabulary-result:focus { outline: none; }
.kor-vocabulary-result-badge {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 10px;
    border-radius: 50%;
    background: #e9874c;
    box-shadow: 0 9px 20px rgba(233, 135, 76, .3);
    color: #fff;
    font-size: 25px;
    font-weight: 950;
}
.kor-vocabulary-result-label {
    margin: 0;
    color: #9b4e2e;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
}
.kor-vocabulary-result-score {
    display: flex;
    align-items: baseline;
    margin-top: 4px;
    color: #1559c9;
    font-size: 46px;
    line-height: 1;
}
.kor-vocabulary-result-score small { color: #64748b; font-size: 19px; }
.kor-vocabulary-result-summary {
    max-width: 310px;
    margin: 14px 0 18px;
    color: #475569;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.55;
    word-break: keep-all;
}
.kor-vocabulary-result-counts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: min(260px, 100%);
    overflow: hidden;
    border: 1px solid #dbe6f3;
    border-radius: 13px;
    background: rgba(255, 255, 255, .82);
}
.kor-vocabulary-result-counts > span { display: grid; gap: 2px; padding: 10px 16px; }
.kor-vocabulary-result-counts > span + span { border-left: 1px solid #dbe6f3; }
.kor-vocabulary-result-counts small { color: #64748b; font-size: 11px; font-weight: 800; }
.kor-vocabulary-result-counts strong { color: #16704a; font-size: 20px; }
.kor-vocabulary-result-counts > span:last-child strong { color: #a34820; }
@keyframes kor-vocabulary-result-in {
    from { opacity: 0; transform: translateY(12px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes kor-vocabulary-question-pop {
    from { opacity: .72; transform: translateY(3px) rotate(-7deg) scale(.88); }
    to { opacity: 1; transform: translateY(-3px) rotate(6deg) scale(1.08); }
}
.kor-cat-helper-bubble-head {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 25px;
    align-items: center;
    gap: 2px;
}
.kor-cat-helper-prompt,
.kor-cat-helper-more {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
}
.kor-cat-helper-prompt {
    min-height: 28px;
    padding: 2px 4px;
    overflow: hidden;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.35;
    text-align: left;
}
.kor-cat-helper-game-name {
    display: inline-block;
    padding: 2px 6px;
    border: 1px solid rgba(232, 135, 76, .5);
    border-radius: 7px;
    background: #fff0e5;
    color: #a33f16;
    font-size: 13px;
    font-weight: 950;
    letter-spacing: -.025em;
    box-shadow: 0 2px 5px rgba(163, 63, 22, .12);
}
.kor-cat-helper-more {
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    padding: 0;
    border-radius: 50%;
    color: #a46a4a;
    font-size: 15px;
    line-height: 1;
}
.kor-cat-helper-more:hover { background: #fff0e5; color: #7b381d; }

.product-ui-site .account-menu-pet {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    object-fit: contain;
}
.kor-cat-helper-search {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 6px;
    overflow: hidden;
    border: 1px solid #e7b18d;
    border-radius: 11px;
    background: #fff;
}
.kor-cat-helper-search input {
    width: 100%;
    min-width: 0;
    height: 34px;
    padding: 6px 9px;
    border: 0;
    outline: 0;
    color: #17233a;
    font: inherit;
    font-size: 12px;
}
.kor-cat-helper-search button,
.kor-cat-helper-confirm button {
    min-width: 52px;
    border: 0;
    background: #e9874c;
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}
.kor-cat-helper-search button:disabled { opacity: 0.55; }
.kor-cat-helper-confirm {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin-top: 7px;
}
.kor-cat-helper-bubble.is-attendance .kor-cat-helper-confirm,
.kor-cat-helper-bubble.is-saved-files .kor-cat-helper-confirm {
    margin-bottom: 12px;
}
.kor-cat-helper-bubble.is-attendance .kor-cat-helper-search,
.kor-cat-helper-bubble.is-saved-files .kor-cat-helper-search {
    margin-top: 0;
}
.kor-cat-helper-confirm button { min-height: 32px; border-radius: 10px; }
.kor-cat-helper-confirm button:last-child {
    border: 1px solid #e7b18d;
    background: #fff;
    color: #7b442b;
}
.kor-cat-helper-actions {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    margin-top: 7px;
}
.kor-cat-helper-actions a,
.kor-cat-helper-actions button {
    display: grid;
    place-items: center;
    min-height: 31px;
    padding: 5px 7px;
    border: 1px solid #f0d3bf;
    border-radius: 9px;
    background: #fff8f2;
    color: #7b442b;
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.kor-cat-helper.is-reacting .kor-cat-helper-visual { animation: kor-cat-pop 0.38s ease-in-out 2 alternate; }
.kor-cat-helper.is-dragging .kor-cat-helper-visual { animation: kor-cat-drag 0.22s ease-in-out infinite alternate; }
.kor-cat-helper.is-searching .kor-cat-helper-visual { animation: kor-cat-search 0.3s ease-in-out infinite alternate; }
.kor-cat-helper.is-bored .kor-cat-helper-visual { animation: kor-cat-bored 2.8s ease-in-out infinite; }
.kor-cat-helper.is-sleeping .kor-cat-helper-visual { animation: kor-cat-sleep 3.8s ease-in-out infinite; }
.kor-cat-helper[data-expression="happy"] .kor-cat-helper-visual { animation: kor-cat-pop .7s ease-in-out infinite alternate; }
.kor-cat-helper[data-expression="curious"] .kor-cat-helper-visual { animation: kor-cat-curious 1.8s ease-in-out infinite; }
.kor-cat-helper[data-expression="focus"] .kor-cat-helper-visual { animation: kor-cat-focus 2.4s ease-in-out infinite; }
.kor-cat-helper[data-expression="starry"] .kor-cat-helper-visual { animation: kor-cat-starry 1.7s ease-in-out infinite; }
.kor-cat-helper[data-expression="found"] .kor-cat-helper-visual { animation: kor-cat-found 0.48s ease-in-out infinite alternate; }
.kor-cat-helper[data-expression="confused"] .kor-cat-helper-visual { animation: kor-cat-confused 1.25s ease-in-out infinite; }
.kor-cat-helper[data-expression="pleading"] .kor-cat-helper-visual { animation: kor-cat-pleading 2.2s ease-in-out infinite; }
.kor-cat-helper[data-expression="greeting"] .kor-cat-helper-visual { animation: kor-pet-wave .72s ease-in-out infinite alternate; }
.kor-cat-helper[data-expression="thumbsup"] .kor-cat-helper-visual { animation: kor-pet-thumbsup .68s ease-in-out infinite alternate; }
.kor-cat-helper[data-expression="frustrated"] .kor-cat-helper-visual { animation: kor-pet-frustrated .58s cubic-bezier(.32, .72, .38, 1.2) 3 alternate; }

@keyframes kor-cat-float { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(1deg); } }
@keyframes kor-vocabulary-aha { from { transform: scale(.82) rotate(-8deg); } to { transform: scale(1.08) rotate(6deg); } }
@keyframes kor-pet-frustrated {
    from { transform: translateY(1px) rotate(-1.5deg) scale(1); }
    to { transform: translateY(7px) rotate(1.5deg) scale(1.03, .96); }
}
@keyframes kor-cat-pop { from { transform: scale(1) rotate(-3deg); } to { transform: scale(1.09) rotate(4deg); } }
@keyframes kor-cat-drag { from { transform: scale(1.03) rotate(-7deg); } to { transform: scale(1.03) rotate(7deg); } }
@keyframes kor-cat-search { from { transform: rotate(-5deg); } to { transform: rotate(5deg); } }
@keyframes kor-cat-bored { 0%,100% { transform: translateY(1px) rotate(-2deg); } 50% { transform: translateY(5px) rotate(2deg); } }
@keyframes kor-cat-sleep { 0%,100% { transform: translateY(3px) rotate(-2deg) scale(.98); } 50% { transform: translateY(6px) rotate(1deg) scale(1); } }
@keyframes kor-cat-curious { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes kor-cat-focus { 0%,100% { transform: translateY(1px) scale(1); } 50% { transform: translateY(-3px) scale(1.025); } }
@keyframes kor-cat-starry { 0%,100% { transform: translateY(0) rotate(-1deg) scale(1); } 50% { transform: translateY(-7px) rotate(2deg) scale(1.045); } }
@keyframes kor-cat-found { from { transform: translateY(0) scale(1) rotate(-2deg); } to { transform: translateY(-9px) scale(1.06) rotate(3deg); } }
@keyframes kor-cat-confused { 0%,100% { transform: translateX(0) rotate(-2deg); } 35% { transform: translateX(-3px) rotate(-4deg); } 70% { transform: translateX(3px) rotate(3deg); } }
@keyframes kor-cat-pleading { 0%,100% { transform: translateY(1px) rotate(-1deg) scale(1); } 50% { transform: translateY(-3px) rotate(1deg) scale(1.025); } }
@keyframes kor-cat-bubble-in { from { opacity: 0; transform: translateY(7px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes kor-pet-wave { from { transform: translateY(0) rotate(-5deg); } to { transform: translateY(-7px) rotate(6deg) scale(1.04); } }
@keyframes kor-pet-thumbsup { from { transform: translateY(0) scale(1); } to { transform: translateY(-9px) scale(1.08) rotate(2deg); } }
@keyframes kor-princess-eye-blink {
    0%, 24%, 39%, 64%, 79%, 100% { opacity: 0; }
    25%, 38%, 65%, 78% { opacity: 1; }
}

@media (max-width: 640px) {
    .kor-cat-helper { right: 8px; bottom: 8px; width: min(260px, calc(100vw - 16px)); }
    .kor-cat-helper-mascot,
    .kor-cat-helper-visual { width: 96px; height: 96px; }
    .kor-cat-helper-bubble { min-width: 165px; max-width: min(260px, calc(100vw - 16px)); }
    .kor-vocabulary-game { width: min(390px, calc(100vw - 16px)); padding: 13px; }
    .kor-vocabulary-flip-card {
        height: min(460px, calc(100vh - 220px));
        height: min(460px, calc(100dvh - 220px));
    }
    .kor-vocabulary-back { padding: 14px; }
    .kor-vocabulary-details > div { grid-template-columns: 62px minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .kor-cat-helper-visual,
    .kor-cat-helper-princess-blink,
    .kor-cat-helper-bubble,
    .kor-vocabulary-game,
    .kor-vocabulary-result,
    .kor-vocabulary-flip-card-inner { animation: none !important; transition: none !important; }
    .kor-cat-helper[data-vocabulary-result="retry"] .kor-cat-helper-mascot::before {
        animation: none !important;
        opacity: 1;
        transform: translate(31px, 54px) rotate(108deg);
    }
    .kor-cat-helper[data-vocabulary-result="retry"] .kor-cat-helper-mascot::after { animation: none !important; }
}
