.battle-overlay{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:1.5rem;pointer-events:none;--battle-quiz-margin: clamp(1rem, 2.5vw, 2.25rem)}.battle-overlay__start-overlay{position:absolute;inset:0;background:#030712e6;display:flex;align-items:center;justify-content:center;z-index:4500;animation:battle-overlay-start-fade 1.2s ease forwards;pointer-events:none}.battle-overlay__start-text{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;letter-spacing:.35em;text-transform:uppercase;color:#f8fafc;text-shadow:0 8px 28px rgba(15,23,42,.65);animation:battle-overlay-start-scale 1.2s ease forwards}@keyframes battle-overlay-start-fade{0%{opacity:1}70%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes battle-overlay-start-scale{0%{transform:scale(.85);letter-spacing:.15em}50%{transform:scale(1.05)}to{transform:scale(1);letter-spacing:.35em}}.battle-overlay__backdrop{position:relative;width:min(1100px,90vw);height:min(650px,85vh);border-radius:24px;overflow:hidden;background-size:cover;background-position:center;box-shadow:0 20px 60px #000000a6}.battle-overlay__backdrop:after{content:"";position:absolute;inset:0;background:transparent}.battle-overlay--embedded{position:absolute;width:100%;height:100%;inset:0;padding:clamp(.75rem,1.5vw,1.5rem);pointer-events:none}.battle-overlay--embedded .battle-overlay__backdrop{width:100%;height:100%;border-radius:16px}.battle-overlay--embedded .battle-overlay__backdrop:after{background:transparent}.battle-overlay--embedded .battle-overlay__content{padding:clamp(1rem,2vw,2rem)}.battle-overlay__content{position:absolute;inset:0;z-index:100;padding:clamp(1.25rem,3vw,2.5rem);color:#fff;pointer-events:auto;box-sizing:border-box}.battle-overlay__hp-bar{position:absolute;width:280px;min-width:260px;max-width:320px;height:auto;min-height:75px;max-height:85px;pointer-events:auto;z-index:1;display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff1a inset,0 2px 4px #0003 inset;backdrop-filter:blur(10px)}.battle-overlay__hp-bar--enemy{top:16px;right:16px;background:linear-gradient(135deg,#1e293bf2,#0f172afa);color:#fff}.battle-overlay__hp-bar--character{bottom:16px;left:16px;background:linear-gradient(135deg,#1e293bf2,#0f172afa);color:#fff}.battle-overlay__hp-bar.is-clickable{cursor:pointer}.battle-overlay__hp-bar.is-selected{box-shadow:0 0 0 2px #ffd200f2}.battle-overlay__hp-bar.is-focused:not(.is-selected){box-shadow:0 0 0 2px #ffffffbf}.battle-overlay__hp-name-section{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:linear-gradient(90deg,#3b82f640,#2563eb59);border-radius:4px;border:1px solid rgba(59,130,246,.3);font-family:Courier New,monospace;font-weight:700;min-height:24px;box-shadow:0 1px 3px #0000004d inset}.battle-overlay__hp-name{font-size:.95rem;color:#e0e7ff;letter-spacing:.8px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.5)}.battle-overlay__hp-level{font-size:.95rem;color:#fbbf24;font-weight:700;margin-left:auto;text-shadow:0 1px 2px rgba(0,0,0,.5)}.battle-overlay__hp-bar-section{display:flex;align-items:center;gap:8px}.battle-overlay__hp-label{font-size:.8rem;font-weight:700;color:#f87171;min-width:28px;font-family:Courier New,monospace;text-shadow:0 1px 2px rgba(0,0,0,.5)}.battle-overlay__hp-track{position:relative;flex:1;height:12px;min-height:10px;max-height:14px;background:#0009;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.15);box-shadow:0 1px 3px #00000080 inset}.battle-overlay__hp-fill{height:100%;background:linear-gradient(90deg,#f87171,#ef4444,#dc2626);transition:width .9s ease;box-shadow:0 0 8px #ef444466}.battle-overlay__hp-numeric{font-size:.8rem;color:#cbd5e1;text-align:center;font-family:Courier New,monospace;font-weight:600;margin-top:2px;text-shadow:0 1px 2px rgba(0,0,0,.5);letter-spacing:.5px}.battle-overlay__enemy-hitbox{position:absolute;background:transparent;border:none;padding:0;margin:0;z-index:3;cursor:default;pointer-events:none}.battle-overlay__enemy-hitbox.is-selectable{pointer-events:auto;cursor:pointer}.battle-overlay__enemy-hitbox:focus{outline:none}.battle-overlay__target-arrow{position:absolute;top:-1.5rem;left:50%;transform:translate(-50%);font-size:1.7rem;color:#ffd200;text-shadow:0 0 12px rgba(0,0,0,.85);pointer-events:none;animation:battle-overlay-arrow-bounce 1s ease-in-out infinite}@keyframes battle-overlay-arrow-bounce{0%{transform:translate(-50%)}50%{transform:translate(-50%,-.35rem)}to{transform:translate(-50%)}}.battle-overlay__exp-track{margin-top:.55rem;height:10px;border:1px solid #000;border-radius:999px;background:linear-gradient(90deg,#e0e7ff,#c7d2fe);overflow:hidden}.battle-overlay__exp-fill{height:100%;background:linear-gradient(90deg,#818cf8,#6366f1);transition:width 1.5s ease}.battle-overlay__exp-value{margin-top:.4rem;text-align:right;font-size:.75rem;color:#4f46e5;font-weight:600}.battle-overlay__exp-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(1.5rem,4vw,3rem);font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:#fbbf24;-webkit-text-stroke:2px white;text-stroke:2px white;text-shadow:0 0 20px rgba(251,191,36,.8),0 0 30px rgba(251,191,36,.6),0 4px 8px rgba(0,0,0,.6);z-index:2000;pointer-events:none;animation:battle-overlay-exp-pop 2s ease-out forwards}@keyframes battle-overlay-exp-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}40%{transform:translate(-50%,-50%) scale(1)}70%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8) translateY(-20px)}}.battle-overlay__sprite-layer{position:absolute;top:0;left:0;transform:translate(0);pointer-events:none;z-index:0}.battle-overlay__sprite-layer--enemy-dimmed{opacity:.55;filter:saturate(.8)}.battle-overlay__sprite-layer img{display:block}.battle-overlay__sprite-placeholder{display:flex;align-items:center;justify-content:center;background:#0f172ad9;border-radius:16px;color:#f8fafccc;font-size:.9rem;padding:1rem}.battle-overlay__quiz{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,80%);max-height:calc(100% - 2 * var(--battle-quiz-margin, 1.25rem));background:linear-gradient(135deg,#1e293bf2,#0f172afa);border-radius:8px;padding:clamp(1rem,2vw,1.75rem);text-align:center;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff1a inset,0 2px 4px #0003 inset;backdrop-filter:blur(10px);pointer-events:auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;z-index:1000}.battle-overlay__quiz--faded{opacity:0;transition:opacity .2s ease}.battle-overlay__quiz--visible{opacity:1;transition:opacity .3s ease}.battle-overlay__quiz-wrapper{position:absolute;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;pointer-events:none}.battle-overlay__quiz-wrapper:not(.is-hidden){pointer-events:none}.battle-overlay__quiz-wrapper.is-hidden{pointer-events:none!important;z-index:-1;display:none}.battle-overlay__quiz-wrapper.is-hidden .battle-overlay__quiz{opacity:0!important;pointer-events:none}.battle-overlay__quiz--success{border-color:#4ade80;box-shadow:0 0 0 2px #4ade8080,0 4px 16px #0006,0 0 0 1px #ffffff1a inset}.battle-overlay__quiz--error{border-color:#f87171;box-shadow:0 0 0 2px #f8717180,0 4px 16px #0006,0 0 0 1px #ffffff1a inset}.battle-overlay__quiz-question{margin:0 0 1rem;font-size:1.1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#e0f2fe}.battle-overlay__quiz-question-row{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem}.battle-overlay__quiz-image-wrapper{width:100%;margin-bottom:1rem;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.25);background:#0f172aa6;box-shadow:0 12px 28px #0f172abf}.battle-overlay__quiz-image{display:block;width:100%;height:auto;max-height:220px;object-fit:contain;background:#0f172ad9;margin:0 auto}.battle-overlay__quiz-question-row .battle-overlay__quiz-question{flex:1;margin-bottom:0}.battle-overlay__quiz-audio-button{width:2.75rem;height:2.75rem;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:#0f172ae6;color:#38bdf8;font-size:1.3rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.battle-overlay__quiz-audio-button:hover{transform:translateY(-2px);border-color:#38bdf8;box-shadow:0 8px 20px #0ea5e959}.battle-overlay__quiz-audio-button:active{transform:translateY(0)}.battle-overlay__quiz-audio-center{display:flex;justify-content:center;margin-bottom:1rem}.battle-overlay__quiz-audio{display:none}.battle-overlay__quiz-placeholder{padding:2rem;font-size:1rem;color:#fff;background:#0f172aa6;border:1px dashed rgba(148,163,184,.6);border-radius:16px;text-align:center}.battle-overlay__quiz-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.battle-overlay__quiz-choice{border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:.85rem 1rem;background:#0f172aeb;color:#fff;font-weight:600;font-size:.95rem;letter-spacing:.02em;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.battle-overlay__quiz-choice:hover{transform:translateY(-2px);border-color:#38bdf8}.battle-overlay__quiz-choice.is-selected{background:linear-gradient(135deg,#38bdf8,#0ea5e9);border-color:transparent;box-shadow:0 10px 25px #0ea5e959}.battle-overlay__quiz-choice.is-correct{border-color:#4ade80;background:linear-gradient(135deg,#4ade8033,#22c55e59);box-shadow:0 10px 25px #22c55e40}.battle-overlay__quiz-choice.is-incorrect{border-color:#f87171;background:linear-gradient(135deg,#f871711a,#f8717140);box-shadow:0 10px 25px #f8717133}.battle-overlay__quiz-text-input{margin-top:1rem;width:100%}.battle-overlay__quiz-text-input input{width:100%;border:1px solid rgba(255,255,255,.35);border-radius:14px;background:#0f172aeb;color:#fff;font-size:1rem;letter-spacing:.02em;padding:.9rem 1rem;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.battle-overlay__quiz-text-input input:focus{outline:none;border-color:#38bdf8;box-shadow:0 8px 22px #0ea5e959;transform:translateY(-1px)}.battle-overlay__quiz-text-input input::placeholder{color:#fff9}.pinyin-quiz{text-align:center;color:#fff;display:flex;flex-direction:column;gap:1.25rem}.pinyin-quiz__question-heading{font-size:1.2rem;margin-bottom:.25rem}.pinyin-quiz__question-display{display:inline-block;padding:.6rem 1.4rem;border-radius:999px;border:2px solid rgba(59,130,246,.5);background:#3b82f626;font-weight:700;letter-spacing:.05em;color:#e0f2fe}.pinyin-quiz__hint{font-size:.95rem;color:#dbeafe;margin-top:-.25rem}.pinyin-quiz__sound-board{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.pinyin-quiz__sound-slot{display:flex;flex-direction:column;align-items:center;gap:.4rem}.pinyin-quiz__sound-button{width:90px;height:90px;border-radius:50%;border:2px solid #4a90e2;background:#fff;color:#4a90e2;font-size:1.8rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.pinyin-quiz__sound-button.is-active{background:#4a90e2;color:#fff;box-shadow:0 4px 12px #4a90e280}.pinyin-quiz__sound-button:disabled{opacity:.5;cursor:not-allowed}.pinyin-quiz__sound-label{font-weight:600;color:#dbeafe}.pinyin-quiz__replay-row{margin-top:-.5rem}.pinyin-quiz__replay-button{padding:.65rem 1.5rem;border-radius:999px;border:2px solid #dbeafe;background:transparent;color:#fff;font-weight:600;cursor:pointer;transition:border-color .2s ease,color .2s ease}.pinyin-quiz__replay-button:disabled{opacity:.5;cursor:not-allowed}.pinyin-quiz__choice-group{display:flex;flex-direction:column;gap:1rem;justify-content:center;align-items:center}.pinyin-quiz__choice-row{width:100%;display:flex;justify-content:center}.pinyin-quiz__choice{padding:.85rem 2rem;border-radius:10px;border:2px solid #d5dbea;background:#fff;color:#2c3e50;font-weight:600;width:100%;max-width:400px;transition:all .2s ease}.pinyin-quiz__choice.is-selected{border-color:#60a5fa;background:#60a5fa;color:#fff}.pinyin-quiz__choice.is-correct{border-color:#22c55e;background:#22c55e;color:#fff}.pinyin-quiz__choice.is-incorrect{border-color:#ef4444;background:#ef4444;color:#fff}.pinyin-quiz__feedback-card{padding:1.1rem;border-radius:12px;border:2px solid transparent;background:#0f172a99;text-align:left}.pinyin-quiz__feedback-card.is-correct{border-color:#22c55e;background:#22c55e1a}.pinyin-quiz__feedback-card.is-incorrect{border-color:#ef4444;background:#ef44441a}.pinyin-quiz__feedback-title{font-size:1.1rem;font-weight:700;margin:0 0 .35rem}.pinyin-quiz__feedback-body{margin:0}.pinyin-quiz__feedback-details{margin:.35rem 0 0;font-size:.95rem}.pinyin-quiz__audio-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.pinyin-quiz__audio-option{padding:.85rem 1rem;border-radius:12px;border:2px solid rgba(255,255,255,.15);background:#ffffff0d;color:#fff;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.pinyin-quiz__audio-option:hover:not(:disabled){border-color:#38bdf8;background:#38bdf833}.pinyin-quiz__audio-option.is-selected{border-color:#60a5fa;background:#60a5fa40}.pinyin-quiz__audio-option.is-correct{border-color:#22c55e;background:#22c55e40}.pinyin-quiz__audio-option.is-incorrect{border-color:#ef4444;background:#ef444440}.pinyin-quiz__audio-option:disabled{opacity:.7;cursor:not-allowed}.pinyin-quiz__audio-row{display:flex;justify-content:center}.pinyin-quiz__audio-trigger{width:110px;height:110px;border-radius:50%;border:2px solid #dbeafe;background:#fff;color:#4a90e2;font-size:2rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.pinyin-quiz__audio-trigger.is-playing{background:#4a90e2;color:#fff;box-shadow:0 4px 12px #4a90e266}.pinyin-quiz__audio-trigger:disabled{opacity:.5;cursor:not-allowed}.pinyin-quiz__mcq-list{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;max-width:480px;margin:0 auto}.pinyin-quiz__mcq-item{padding:.85rem 1rem;border-radius:12px;border:2px solid #dbeafe;background:#fff;color:#0f172a;font-weight:600;text-align:left;transition:all .2s ease}.pinyin-quiz__mcq-item.is-selected{border-color:#60a5fa;background:#60a5fa;color:#fff}.pinyin-quiz__mcq-item.is-correct{border-color:#22c55e;background:#22c55e;color:#fff}.pinyin-quiz__mcq-item.is-incorrect{border-color:#ef4444;background:#ef4444;color:#fff}.pinyin-quiz__input-wrapper{max-width:420px;margin:0 auto;text-align:center}.pinyin-quiz__input{width:100%;padding:.85rem 1rem;border-radius:999px;border:2px solid #dbeafe;font-size:1rem;text-align:center;background:#0f172ab3;color:#fff}.pinyin-quiz__input:disabled{opacity:.6;cursor:not-allowed}.pinyin-quiz__input-hint{margin-top:.5rem;font-size:.95rem;color:#dbeafe}.pinyin-quiz__dropdown-wrapper{max-width:420px;margin:0 auto;text-align:center}.pinyin-quiz__dropdown{width:100%;padding:.85rem 1rem;border-radius:12px;border:2px solid #dbeafe;font-size:1rem;text-align:left;background:#fff;color:#0f172a;font-weight:600;transition:all .2s ease;cursor:pointer}.pinyin-quiz__dropdown:disabled{opacity:.6;cursor:not-allowed}.pinyin-quiz__dropdown.is-correct{border-color:#22c55e;background:#22c55e;color:#fff}.pinyin-quiz__dropdown.is-incorrect{border-color:#ef4444;background:#ef4444;color:#fff}.pinyin-quiz__hint{margin-bottom:1rem;font-size:.9rem;color:#94a3b8;text-align:center}.pinyin-quiz__mix-match-container{display:flex;flex-wrap:nowrap;gap:1.5rem;max-width:600px;margin:0 auto;justify-content:center}.pinyin-quiz__mix-match-column{flex:1 1 0;min-width:0}.pinyin-quiz__mix-match-label{font-weight:600;margin-bottom:.75rem;color:#e2e8f0;font-size:.95rem}.pinyin-quiz__mix-match-list{display:flex;flex-direction:column;gap:.75rem}.pinyin-quiz__mix-match-audio-button,.pinyin-quiz__mix-match-word-button{padding:1rem;border-radius:10px;border:2px solid #dbeafe;background:#fff;color:#0f172a;font-weight:600;font-size:1.35rem;text-align:center;height:74px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-family:monospace}.pinyin-quiz__mix-match-audio-button:disabled,.pinyin-quiz__mix-match-word-button:disabled{opacity:.6;cursor:not-allowed}.pinyin-quiz__mix-match-audio-button.is-active{border-color:#60a5fa;background:#e8f4fd}.pinyin-quiz__mix-match-audio-button.is-matched,.pinyin-quiz__mix-match-word-button.is-matched{border-color:#22c55e;background:#d4edda;color:#155724;cursor:default}.pinyin-quiz__mix-match-audio-button.is-incorrect,.pinyin-quiz__mix-match-word-button.is-incorrect{border-color:#ef4444;background:#f8d7da;color:#721c24}.pinyin-quiz__mix-match-word-button{font-weight:700}.pinyin-quiz__mix-match-audio-icon{font-size:1rem;line-height:1}.pinyin-quiz__mix-match-error{margin-top:1rem;color:#ef4444;font-weight:600;text-align:center;font-size:.95rem}.pinyin-quiz__option-audio-buttons{display:flex;flex-direction:column;gap:.75rem;max-width:420px;margin:1rem auto 0}.pinyin-quiz__option-audio-button{padding:.75rem 1rem;border-radius:12px;border:2px solid #dbeafe;background:#0f172ab3;color:#fff;font-weight:600;text-align:left;transition:all .2s ease;cursor:pointer;display:flex;align-items:center;gap:.5rem}.pinyin-quiz__option-audio-button:hover:not(:disabled){border-color:#60a5fa;background:#60a5fa33}.pinyin-quiz__option-audio-button.is-playing{border-color:#4a90e2;background:#4a90e2;color:#fff;box-shadow:0 4px 12px #4a90e266}.pinyin-quiz__option-audio-button:disabled{opacity:.5;cursor:not-allowed}.pinyin-quiz__question-heading-wrapper{display:flex;align-items:center;justify-content:center;gap:.5rem;position:relative}.pinyin-quiz__help-icon-wrapper{position:relative;display:inline-flex;align-items:center}.pinyin-quiz__help-icon{width:24px;height:24px;border-radius:50%;border:2px solid #dbeafe;background:#0f172a99;color:#dbeafe;font-size:.9rem;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:0;line-height:1}.pinyin-quiz__help-icon:hover{background:#dbeafe;color:#0f172a;border-color:#dbeafe}.pinyin-quiz__help-icon:active{transform:scale(.95)}.pinyin-quiz__tone-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;z-index:1000;pointer-events:none}.pinyin-quiz__tone-tooltip-content{background:#000000f2;color:#fff;padding:.75rem 1rem;border-radius:8px;font-size:.95rem;white-space:nowrap;box-shadow:0 4px 12px #0000004d;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px)}.pinyin-quiz__tone-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#000000f2;pointer-events:none}.pinyin-quiz__placeholder{background:#0f172a99;border:1px dashed rgba(148,163,184,.8)}.battle-overlay__word-tiles{margin-top:1rem;display:flex;flex-direction:column;gap:.65rem}.battle-overlay__word-tiles-assembled{min-height:52px;border:1px dashed rgba(255,255,255,.35);border-radius:14px;padding:.75rem;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center;background:#0f172a99}.battle-overlay__word-tiles-placeholder{color:#fff9;font-style:italic;letter-spacing:.02em}.battle-overlay__word-tiles-actions{display:flex;justify-content:flex-end}.battle-overlay__word-tiles-clear{border:none;background:transparent;color:#f472b6;font-weight:600;cursor:pointer;letter-spacing:.02em;text-transform:uppercase}.battle-overlay__word-tiles-clear:disabled{opacity:.35;cursor:not-allowed}.battle-overlay__word-tiles-bank{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.battle-overlay__word-tile{border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:.4rem .9rem;background:#0f172ad9;color:#fff;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}.battle-overlay__word-tile:hover:not(:disabled){transform:translateY(-2px);border-color:#38bdf8}.battle-overlay__word-tile:disabled{opacity:.4;cursor:not-allowed}.battle-overlay__word-tile.is-used{border-style:dashed}.battle-overlay__word-tile--selected{background:linear-gradient(135deg,#38bdf8,#0ea5e9);border-color:transparent}.battle-overlay__quiz-feedback{margin-top:1rem;font-size:.95rem;color:#fee2e2;letter-spacing:.03em}.battle-overlay__quiz-feedback span{font-weight:700;color:#fca5a5}.battle-overlay__quiz-feedback.is-success{color:#bbf7d0}.battle-overlay__format-display{display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.battle-overlay__format-number{font-size:.875rem;font-weight:500;color:#e0f2fe;text-shadow:0 2px 6px rgba(14,165,233,.4);letter-spacing:.05em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-overlay__quiz-footer{margin-top:1rem;display:flex;align-items:center;justify-content:center;gap:1rem}.battle-overlay__quiz-footer--hidden{visibility:hidden;pointer-events:none}.battle-overlay__quiz-footer-buttons{display:flex;flex-shrink:0;align-items:center;gap:.75rem;justify-content:center}.battle-overlay__button{padding:.75rem 1.75rem;border-radius:999px;border:none;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;font-weight:700;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 25px #0f172acc;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.battle-overlay__button:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0f172ae6;filter:brightness(1.05)}.battle-overlay__button:active{transform:translateY(0);box-shadow:0 8px 18px #0f172acc}.battle-overlay__button--fight{background:linear-gradient(135deg,#22d3ee,#0ea5e9)}.battle-overlay__button--fire{background:linear-gradient(135deg,#f97316,#dc2626)}.battle-overlay__button--water{background:linear-gradient(135deg,#3b82f6,#1e40af)}.battle-overlay__button--seal{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}.battle-overlay__button--confirm{background:linear-gradient(135deg,#22c55e,#16a34a)}.battle-overlay__button:disabled{opacity:.65;cursor:not-allowed}.battle-overlay__sprite-layer--character-attack-right{animation:battle-overlay-character-attack-right var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--character-attack-back{animation:battle-overlay-character-attack-back var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--character-react-left{animation:battle-overlay-character-react-left var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--character-react-back{animation:battle-overlay-character-react-back var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--character-flash img{animation:battle-overlay-character-flash .6s ease-in-out forwards}.battle-overlay__sprite-layer--character-faint{animation:battle-overlay-character-faint 2s ease-out forwards}.battle-overlay__sprite-layer--character-faint img{animation:battle-overlay-character-faint-fade 2s ease-out forwards}.battle-overlay__sprite-layer--character-bounce{animation:battle-overlay-character-bounce .6s ease-out}.battle-overlay__sprite-layer--character-swap-out{animation:battle-overlay-character-swap-out var(--move-animation-duration, .6s) ease-in forwards;opacity:1}.battle-overlay__sprite-layer--character-swap-in{animation:battle-overlay-character-swap-in var(--move-animation-duration, .6s) ease-out forwards;opacity:0}@keyframes battle-overlay-character-swap-out{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-6%) scale(.9);opacity:0}}@keyframes battle-overlay-character-swap-in{0%{transform:translate(8%) scale(.9);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes battle-overlay-character-bounce{0%,to{transform:translateY(0)}25%{transform:translateY(-8px)}50%{transform:translateY(-4px)}75%{transform:translateY(-6px)}}@keyframes battle-overlay-character-attack-right{0%{transform:translate(0)}to{transform:translate(var(--character-attack-distance, 20%))}}@keyframes battle-overlay-character-attack-back{0%{transform:translate(var(--character-attack-distance, 20%))}to{transform:translate(0)}}@keyframes battle-overlay-character-react-left{0%{transform:translate(0)}to{transform:translate(var(--character-react-distance, -20%))}}@keyframes battle-overlay-character-react-back{0%{transform:translate(var(--character-react-distance, -20%))}to{transform:translate(0)}}@keyframes battle-overlay-character-flash{0%,to{filter:brightness(1)}10%{filter:brightness(2.5)}20%{filter:brightness(.5)}30%{filter:brightness(2)}40%{filter:brightness(.7)}50%{filter:brightness(1.8)}60%{filter:brightness(.9)}70%{filter:brightness(1.5)}80%{filter:brightness(1.1)}90%{filter:brightness(1.3)}}@keyframes battle-overlay-character-faint{0%{transform:translateY(0)}to{transform:translateY(50%)}}@keyframes battle-overlay-character-faint-fade{0%{clip-path:inset(0% 0% 0% 0%);opacity:1}to{clip-path:inset(100% 0% 0% 0%);opacity:0}}.battle-overlay__sprite-layer--enemy-react-right{animation:battle-overlay-enemy-react-right var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--enemy-react-back{animation:battle-overlay-enemy-react-back var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--enemy-block{animation:battle-overlay-enemy-block .4s ease-in-out forwards;transform-origin:center center}.battle-overlay__sprite-layer--enemy-flash img{animation:battle-overlay-enemy-flash .6s ease-in-out forwards}.battle-overlay__sprite-layer--enemy-fire-flash img{animation:battle-overlay-enemy-fire-flash .6s ease-in-out forwards}.battle-overlay__sprite-layer--enemy-attack-left{animation:battle-overlay-enemy-attack-left var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--enemy-attack-back{animation:battle-overlay-enemy-attack-back var(--move-animation-duration, .6s) ease-in-out forwards}.battle-overlay__sprite-layer--enemy-faint{animation:battle-overlay-enemy-faint 2s ease-out forwards}.battle-overlay__sprite-layer--enemy-faint img{animation:battle-overlay-enemy-faint-fade 2s ease-out forwards}@keyframes battle-overlay-enemy-react-right{0%{transform:translate(0)}to{transform:translate(var(--enemy-react-distance, 8%))}}@keyframes battle-overlay-enemy-react-back{0%{transform:translate(var(--enemy-react-distance, 8%))}to{transform:translate(0)}}@keyframes battle-overlay-enemy-block{0%{transform:translate(0) scale(1)}40%{transform:translate(-4%) scale(.9)}to{transform:translate(0) scale(1)}}@keyframes battle-overlay-enemy-flash{0%,to{filter:brightness(1)}10%{filter:brightness(2.5)}20%{filter:brightness(.5)}30%{filter:brightness(2)}40%{filter:brightness(.7)}50%{filter:brightness(1.8)}60%{filter:brightness(.9)}70%{filter:brightness(1.5)}80%{filter:brightness(1.1)}90%{filter:brightness(1.3)}}@keyframes battle-overlay-enemy-fire-flash{0%,to{filter:brightness(1)}10%{filter:brightness(1.5) sepia(1) saturate(2) hue-rotate(0deg)}20%{filter:brightness(.8) sepia(.8) saturate(1.5) hue-rotate(0deg)}30%{filter:brightness(1.8) sepia(1) saturate(2.5) hue-rotate(0deg)}40%{filter:brightness(.9) sepia(.7) saturate(1.8) hue-rotate(0deg)}50%{filter:brightness(2) sepia(1) saturate(3) hue-rotate(0deg)}60%{filter:brightness(1) sepia(.5) saturate(1.2) hue-rotate(0deg)}70%{filter:brightness(1.6) sepia(.9) saturate(2) hue-rotate(0deg)}80%{filter:brightness(1.1) sepia(.6) saturate(1.5) hue-rotate(0deg)}90%{filter:brightness(1.4) sepia(.8) saturate(1.8) hue-rotate(0deg)}}@keyframes battle-overlay-enemy-attack-left{0%{transform:translate(0)}to{transform:translate(var(--enemy-attack-distance, -15%))}}@keyframes battle-overlay-enemy-attack-back{0%{transform:translate(var(--enemy-attack-distance, -15%))}to{transform:translate(0)}}@keyframes battle-overlay-enemy-faint{0%{transform:translateY(0)}to{transform:translateY(50%)}}@keyframes battle-overlay-enemy-faint-fade{0%{clip-path:inset(0% 0% 0% 0%);opacity:1}to{clip-path:inset(100% 0% 0% 0%);opacity:0}}.battle-overlay__seal-scroll{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1);font-size:clamp(3rem,6vw,6rem);z-index:0;pointer-events:none}.battle-overlay__seal-scroll--modern{filter:drop-shadow(0 6px 14px rgba(59,130,246,.4))}.seal-phase-seal-appear .battle-overlay__seal-scroll--modern{animation:battle-overlay-seal-appear .4s ease-out forwards}.seal-phase-seal-absorb .battle-overlay__seal-scroll--modern{animation:battle-overlay-seal-absorb-scroll .7s ease-out forwards}.seal-phase-seal-final .battle-overlay__seal-scroll--modern{animation:battle-overlay-seal-final .5s ease-in-out forwards}.battle-overlay__sprite-layer--seal-absorb img{animation:battle-overlay-seal-absorb-sprite .7s ease-in forwards}.battle-overlay__sprite-layer--seal-hidden img{opacity:0;transform:scale(0)}.battle-overlay__sprite-layer--sealed{opacity:.3;filter:grayscale(100%)}.battle-overlay__sealed-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:900;text-transform:uppercase;letter-spacing:.2em;color:#8b5cf6;-webkit-text-stroke:2px white;text-stroke:2px white;text-shadow:0 0 20px rgba(139,92,246,.8),0 0 30px rgba(139,92,246,.6),0 4px 8px rgba(0,0,0,.6);z-index:1002;pointer-events:none}@keyframes battle-overlay-seal-appear{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes battle-overlay-seal-hold{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes battle-overlay-seal-absorb-scroll{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(1.35);opacity:1}}@keyframes battle-overlay-seal-absorb-sprite{0%{transform:scale(1);opacity:1}to{transform:scale(.1);opacity:0}}@keyframes battle-overlay-seal-final{0%{filter:hue-rotate(0deg) brightness(1);transform:translate(-50%,-50%) scale(1) rotate(0)}20%{transform:translate(-50%,-50%) scale(1.05) rotate(4deg)}40%{transform:translate(-50%,-50%) scale(1.02) rotate(-4deg)}60%{transform:translate(-50%,-50%) scale(1.04) rotate(0)}to{filter:hue-rotate(25deg) brightness(1.1);transform:translate(-50%,-50%) scale(1.05) rotate(0)}}@keyframes battle-overlay-seal-enemy-shrink{0%{transform:scale(1)}to{transform:scale(.1)}}@keyframes battle-overlay-seal-enemy-shrink-image{0%{opacity:1}to{opacity:.3}}@keyframes battle-overlay-seal-success{0%{transform:scale(.1)}50%{transform:scale(.05)}to{transform:scale(0);opacity:0}}@keyframes battle-overlay-seal-success-image{0%{opacity:.3}to{opacity:0}}@keyframes battle-overlay-seal-scroll-success{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}50%{transform:translate(-50%) translateY(-10px) scale(1.2)}to{opacity:0;transform:translate(-50%) translateY(-20px) scale(1.5)}}@keyframes battle-overlay-seal-failure{0%{transform:scale(.1)}to{transform:scale(.1)}}@keyframes battle-overlay-seal-enemy-enlarge{0%{transform:scale(.1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes battle-overlay-seal-enemy-enlarge-image{0%{opacity:.3}to{opacity:1}}@keyframes battle-overlay-seal-scroll-fade{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-30px) scale(.5)}}@keyframes battle-overlay-seal-struggle-1{0%{transform:scale(1) translate(0)}25%{transform:scale(1.05) translate(-5px)}50%{transform:scale(1) translate(5px)}75%{transform:scale(1.03) translate(-3px)}to{transform:scale(1) translate(0)}}@keyframes battle-overlay-seal-struggle-image-1{0%{opacity:1}50%{opacity:.9}to{opacity:1}}@keyframes battle-overlay-seal-struggle-2{0%{transform:scale(1) translate(0) translateY(0)}20%{transform:scale(1.08) translate(-8px) translateY(-3px)}40%{transform:scale(1) translate(8px) translateY(3px)}60%{transform:scale(1.06) translate(-6px) translateY(-2px)}80%{transform:scale(1) translate(6px) translateY(2px)}to{transform:scale(1) translate(0) translateY(0)}}@keyframes battle-overlay-seal-struggle-image-2{0%{opacity:1}50%{opacity:.85}to{opacity:1}}@keyframes battle-overlay-seal-struggle-3{0%{transform:scale(1) translate(0) translateY(0) rotate(0)}15%{transform:scale(1.1) translate(-10px) translateY(-5px) rotate(-5deg)}30%{transform:scale(1) translate(10px) translateY(5px) rotate(5deg)}45%{transform:scale(1.08) translate(-8px) translateY(-4px) rotate(-3deg)}60%{transform:scale(1) translate(8px) translateY(4px) rotate(3deg)}75%{transform:scale(1.05) translate(-5px) translateY(-2px) rotate(-2deg)}90%{transform:scale(1) translate(5px) translateY(2px) rotate(2deg)}to{transform:scale(1) translate(0) translateY(0) rotate(0)}}@keyframes battle-overlay-seal-struggle-image-3{0%{opacity:1}50%{opacity:.8}to{opacity:1}}@keyframes battle-overlay-seal-scroll-struggle{0%,to{transform:translate(-50%) translateY(0) scale(1)}25%{transform:translate(-50%) translateY(-5px) scale(1.1)}50%{transform:translate(-50%) translateY(0) scale(1)}75%{transform:translate(-50%) translateY(-3px) scale(1.05)}}.battle-overlay__hit-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(2rem,5vw,4rem);font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:gold;-webkit-text-stroke:2px white;text-stroke:2px white;text-shadow:0 0 20px rgba(255,215,0,.8),0 0 30px rgba(255,215,0,.6),0 4px 8px rgba(0,0,0,.6);z-index:1000;pointer-events:none;animation:battle-overlay-hit-pop .8s ease-out forwards}.battle-overlay__hit-indicator--miss{color:#ef4444;-webkit-text-stroke:2px white;text-stroke:2px white;text-shadow:0 0 20px rgba(239,68,68,.8),0 0 30px rgba(239,68,68,.6),0 4px 8px rgba(0,0,0,.6)}@keyframes battle-overlay-hit-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}40%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}.battle-overlay__fire-projectile{position:absolute;z-index:500;pointer-events:none;left:-9999px;top:-9999px;opacity:0}.battle-overlay__fire-projectile--1{animation:battle-overlay-fire-projectile-1 .6s ease-out forwards;animation-delay:0s}.battle-overlay__fire-projectile--2{animation:battle-overlay-fire-projectile-2 .6s ease-out forwards;animation-delay:.05s}.battle-overlay__fire-projectile--3{animation:battle-overlay-fire-projectile-3 .6s ease-out forwards;animation-delay:.1s}.battle-overlay__fire-projectile--4{animation:battle-overlay-fire-projectile-4 .6s ease-out forwards;animation-delay:.15s}.battle-overlay__fire-projectile--5{animation:battle-overlay-fire-projectile-5 .6s ease-out forwards;animation-delay:.2s}.battle-overlay__fire-projectile-flame{font-size:2.5rem;filter:drop-shadow(0 0 10px rgba(255,69,0,.8)) drop-shadow(0 0 20px rgba(255,140,0,.6));animation:battle-overlay-fire-flicker .1s infinite}@keyframes battle-overlay-fire-projectile-1{0%{left:18%;top:58%;opacity:1;transform:scale(.7)}50%{opacity:1;transform:scale(1.1)}to{left:63%;top:56%;opacity:0;transform:scale(.4)}}@keyframes battle-overlay-fire-projectile-2{0%{left:20%;top:60%;opacity:1;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{left:65%;top:57%;opacity:0;transform:scale(.5)}}@keyframes battle-overlay-fire-projectile-3{0%{left:22%;top:62%;opacity:1;transform:scale(.75)}50%{opacity:1;transform:scale(1.15)}to{left:67%;top:58%;opacity:0;transform:scale(.45)}}@keyframes battle-overlay-fire-projectile-4{0%{left:19%;top:59%;opacity:1;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}to{left:64%;top:56%;opacity:0;transform:scale(.55)}}@keyframes battle-overlay-fire-projectile-5{0%{left:21%;top:61%;opacity:1;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}to{left:66%;top:57%;opacity:0;transform:scale(.6)}}@keyframes battle-overlay-fire-flicker{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.1) rotate(-5deg)}50%{transform:scale(.95) rotate(5deg)}75%{transform:scale(1.05) rotate(-3deg)}}.battle-overlay__sprite-layer--enemy-fire-burning{position:relative}.battle-overlay__enemy-fire-burning{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:.5rem;align-items:center;justify-content:center;pointer-events:none}.battle-overlay__enemy-fire-burning-flame{font-size:2rem;filter:drop-shadow(0 0 8px rgba(255,69,0,.9)) drop-shadow(0 0 15px rgba(255,140,0,.7));animation:battle-overlay-enemy-fire-burning-flicker .15s infinite}.battle-overlay__enemy-fire-burning-flame--1{animation:battle-overlay-enemy-fire-burning-flicker .12s infinite;animation-delay:0s}.battle-overlay__enemy-fire-burning-flame--2{animation:battle-overlay-enemy-fire-burning-flicker .18s infinite;animation-delay:.05s}.battle-overlay__enemy-fire-burning-flame--3{animation:battle-overlay-enemy-fire-burning-flicker .14s infinite;animation-delay:.1s}@keyframes battle-overlay-enemy-fire-burning-flicker{0%,to{transform:translateY(0) scale(1) rotate(0);opacity:.9}25%{transform:translateY(-3px) scale(1.1) rotate(-8deg);opacity:1}50%{transform:translateY(-1px) scale(.95) rotate(8deg);opacity:.85}75%{transform:translateY(-2px) scale(1.05) rotate(-5deg);opacity:.95}}.battle-overlay__enemy-fire-projectile{position:absolute;z-index:500;pointer-events:none;left:-9999px;top:-9999px;opacity:0}.battle-overlay__enemy-fire-projectile--1{animation:battle-overlay-enemy-fire-projectile-1 .6s ease-out forwards;animation-delay:0s}.battle-overlay__enemy-fire-projectile--2{animation:battle-overlay-enemy-fire-projectile-2 .6s ease-out forwards;animation-delay:.05s}.battle-overlay__enemy-fire-projectile--3{animation:battle-overlay-enemy-fire-projectile-3 .6s ease-out forwards;animation-delay:.1s}.battle-overlay__enemy-fire-projectile--4{animation:battle-overlay-enemy-fire-projectile-4 .6s ease-out forwards;animation-delay:.15s}.battle-overlay__enemy-fire-projectile--5{animation:battle-overlay-enemy-fire-projectile-5 .6s ease-out forwards;animation-delay:.2s}@keyframes battle-overlay-enemy-fire-projectile-1{0%{left:63%;top:13%;opacity:1;transform:scale(.7)}50%{opacity:1;transform:scale(1.1)}to{left:18%;top:58%;opacity:0;transform:scale(.4)}}@keyframes battle-overlay-enemy-fire-projectile-2{0%{left:65%;top:15%;opacity:1;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{left:20%;top:60%;opacity:0;transform:scale(.5)}}@keyframes battle-overlay-enemy-fire-projectile-3{0%{left:67%;top:17%;opacity:1;transform:scale(.75)}50%{opacity:1;transform:scale(1.15)}to{left:22%;top:62%;opacity:0;transform:scale(.45)}}@keyframes battle-overlay-enemy-fire-projectile-4{0%{left:64%;top:14%;opacity:1;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}to{left:19%;top:59%;opacity:0;transform:scale(.55)}}@keyframes battle-overlay-enemy-fire-projectile-5{0%{left:66%;top:16%;opacity:1;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}to{left:21%;top:61%;opacity:0;transform:scale(.6)}}.battle-overlay__sprite-layer--character-fire-burning{position:relative}.battle-overlay__character-fire-burning{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:.5rem;align-items:center;justify-content:center;pointer-events:none}.battle-overlay__character-fire-burning-flame{font-size:2rem;filter:drop-shadow(0 0 8px rgba(255,69,0,.9)) drop-shadow(0 0 15px rgba(255,140,0,.7));animation:battle-overlay-character-fire-burning-flicker .15s infinite}.battle-overlay__character-fire-burning-flame--1{animation:battle-overlay-character-fire-burning-flicker .12s infinite;animation-delay:0s}.battle-overlay__character-fire-burning-flame--2{animation:battle-overlay-character-fire-burning-flicker .18s infinite;animation-delay:.05s}.battle-overlay__character-fire-burning-flame--3{animation:battle-overlay-character-fire-burning-flicker .14s infinite;animation-delay:.1s}@keyframes battle-overlay-character-fire-burning-flicker{0%,to{transform:translateY(0) scale(1) rotate(0);opacity:.9}25%{transform:translateY(-3px) scale(1.1) rotate(-8deg);opacity:1}50%{transform:translateY(-1px) scale(.95) rotate(8deg);opacity:.85}75%{transform:translateY(-2px) scale(1.05) rotate(-5deg);opacity:.95}}.battle-overlay__sprite-layer--character-fire-flash img{animation:battle-overlay-character-fire-flash .6s ease-in-out forwards}@keyframes battle-overlay-character-fire-flash{0%,to{filter:brightness(1) contrast(1)}25%{filter:brightness(1.8) contrast(1.2)}50%{filter:brightness(1.4) contrast(1.1)}75%{filter:brightness(1.6) contrast(1.15)}}.battle-overlay__water-projectile{position:absolute;z-index:100;pointer-events:none;animation:battle-overlay-water-projectile .6s ease-out forwards}.battle-overlay__water-projectile--1{animation:battle-overlay-water-projectile-1 .6s ease-out forwards}.battle-overlay__water-projectile--2{animation:battle-overlay-water-projectile-2 .6s ease-out forwards}.battle-overlay__water-projectile--3{animation:battle-overlay-water-projectile-3 .6s ease-out forwards}.battle-overlay__water-projectile--4{animation:battle-overlay-water-projectile-4 .6s ease-out forwards}.battle-overlay__water-projectile--5{animation:battle-overlay-water-projectile-5 .6s ease-out forwards}.battle-overlay__water-projectile--6{animation:battle-overlay-water-projectile-6 .6s ease-out forwards}.battle-overlay__water-projectile--7{animation:battle-overlay-water-projectile-7 .6s ease-out forwards}.battle-overlay__water-projectile--8{animation:battle-overlay-water-projectile-8 .6s ease-out forwards}.battle-overlay__water-projectile-bubble{font-size:1.5rem;filter:drop-shadow(0 0 8px rgba(64,169,255,.9)) drop-shadow(0 0 15px rgba(100,200,255,.7));animation:battle-overlay-water-bubble-float .6s ease-out forwards}@keyframes battle-overlay-water-projectile-1{0%{left:18%;top:58%;opacity:1;transform:scale(.7)}50%{opacity:1;transform:scale(1.1)}to{left:63%;top:56%;opacity:0;transform:scale(.4)}}@keyframes battle-overlay-water-projectile-2{0%{left:20%;top:60%;opacity:1;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{left:65%;top:57%;opacity:0;transform:scale(.5)}}@keyframes battle-overlay-water-projectile-3{0%{left:22%;top:62%;opacity:1;transform:scale(.75)}50%{opacity:1;transform:scale(1.15)}to{left:67%;top:58%;opacity:0;transform:scale(.45)}}@keyframes battle-overlay-water-projectile-4{0%{left:19%;top:59%;opacity:1;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}to{left:64%;top:56%;opacity:0;transform:scale(.55)}}@keyframes battle-overlay-water-projectile-5{0%{left:21%;top:61%;opacity:1;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}to{left:66%;top:57%;opacity:0;transform:scale(.6)}}@keyframes battle-overlay-water-projectile-6{0%{left:17%;top:57%;opacity:1;transform:scale(.75)}50%{opacity:1;transform:scale(1.15)}to{left:62%;top:56%;opacity:0;transform:scale(.45)}}@keyframes battle-overlay-water-projectile-7{0%{left:23%;top:63%;opacity:1;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{left:68%;top:58%;opacity:0;transform:scale(.5)}}@keyframes battle-overlay-water-projectile-8{0%{left:20%;top:60%;opacity:1;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}to{left:65%;top:57%;opacity:0;transform:scale(.55)}}@keyframes battle-overlay-water-bubble-float{0%,to{transform:translateY(0) scale(1)}25%{transform:translateY(-5px) scale(1.1)}50%{transform:translateY(-3px) scale(.95)}75%{transform:translateY(-4px) scale(1.05)}}.battle-overlay__enemy-water-projectile{position:absolute;z-index:100;pointer-events:none;animation:battle-overlay-enemy-water-projectile .6s ease-out forwards}.battle-overlay__enemy-water-projectile--1{animation:battle-overlay-enemy-water-projectile-1 .6s ease-out forwards}.battle-overlay__enemy-water-projectile--2{animation:battle-overlay-enemy-water-projectile-2 .6s ease-out forwards}.battle-overlay__enemy-water-projectile--3{animation:battle-overlay-enemy-water-projectile-3 .6s ease-out forwards}.battle-overlay__enemy-water-projectile--4{animation:battle-overlay-enemy-water-projectile-4 .6s ease-out forwards}.battle-overlay__enemy-water-projectile--5{animation:battle-overlay-enemy-water-projectile-5 .6s ease-out forwards}@keyframes battle-overlay-enemy-water-projectile-1{0%{left:63%;top:13%;opacity:1;transform:scale(.7)}50%{opacity:1;transform:scale(1.1)}to{left:18%;top:58%;opacity:0;transform:scale(.4)}}@keyframes battle-overlay-enemy-water-projectile-2{0%{left:65%;top:15%;opacity:1;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{left:20%;top:60%;opacity:0;transform:scale(.5)}}@keyframes battle-overlay-enemy-water-projectile-3{0%{left:67%;top:17%;opacity:1;transform:scale(.75)}50%{opacity:1;transform:scale(1.15)}to{left:22%;top:62%;opacity:0;transform:scale(.45)}}@keyframes battle-overlay-enemy-water-projectile-4{0%{left:64%;top:14%;opacity:1;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}to{left:19%;top:59%;opacity:0;transform:scale(.55)}}@keyframes battle-overlay-enemy-water-projectile-5{0%{left:66%;top:16%;opacity:1;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}to{left:21%;top:61%;opacity:0;transform:scale(.6)}}.battle-overlay__sprite-layer--enemy-water-bubbling{position:relative}.battle-overlay__enemy-water-bubbling{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:100%;height:100%;z-index:10;pointer-events:none;overflow:hidden}.battle-overlay__enemy-water-bubbling-bubble{position:absolute;font-size:1.5rem;filter:drop-shadow(0 0 8px rgba(64,169,255,.9)) drop-shadow(0 0 15px rgba(100,200,255,.7));bottom:0;left:50%;transform:translate(-50%)}.battle-overlay__enemy-water-bubbling-bubble--1{left:20%;animation:battle-overlay-enemy-water-bubble-rise .8s ease-out forwards;animation-delay:0s}.battle-overlay__enemy-water-bubbling-bubble--2{left:40%;animation:battle-overlay-enemy-water-bubble-rise .8s ease-out forwards;animation-delay:.1s}.battle-overlay__enemy-water-bubbling-bubble--3{left:50%;animation:battle-overlay-enemy-water-bubble-rise .8s ease-out forwards;animation-delay:.2s}.battle-overlay__enemy-water-bubbling-bubble--4{left:60%;animation:battle-overlay-enemy-water-bubble-rise .8s ease-out forwards;animation-delay:.3s}.battle-overlay__enemy-water-bubbling-bubble--5{left:80%;animation:battle-overlay-enemy-water-bubble-rise .8s ease-out forwards;animation-delay:.4s}@keyframes battle-overlay-enemy-water-bubble-rise{0%{bottom:0;opacity:.8;transform:translate(-50%) scale(.8)}50%{opacity:1;transform:translate(-50%) scale(1.1)}to{bottom:100%;opacity:0;transform:translate(-50%) scale(.6)}}.battle-overlay__sprite-layer--character-water-bubbling{position:relative}.battle-overlay__character-water-bubbling{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:100%;height:100%;z-index:10;pointer-events:none;overflow:hidden}.battle-overlay__character-water-bubbling-bubble{position:absolute;font-size:1.5rem;filter:drop-shadow(0 0 8px rgba(64,169,255,.9)) drop-shadow(0 0 15px rgba(100,200,255,.7));bottom:0;left:50%;transform:translate(-50%)}.battle-overlay__character-water-bubbling-bubble--1{left:20%;animation:battle-overlay-character-water-bubble-rise .8s ease-out forwards;animation-delay:0s}.battle-overlay__character-water-bubbling-bubble--2{left:40%;animation:battle-overlay-character-water-bubble-rise .8s ease-out forwards;animation-delay:.1s}.battle-overlay__character-water-bubbling-bubble--3{left:50%;animation:battle-overlay-character-water-bubble-rise .8s ease-out forwards;animation-delay:.2s}.battle-overlay__character-water-bubbling-bubble--4{left:60%;animation:battle-overlay-character-water-bubble-rise .8s ease-out forwards;animation-delay:.3s}.battle-overlay__character-water-bubbling-bubble--5{left:80%;animation:battle-overlay-character-water-bubble-rise .8s ease-out forwards;animation-delay:.4s}@keyframes battle-overlay-character-water-bubble-rise{0%{bottom:0;opacity:.8;transform:translate(-50%) scale(.8)}50%{opacity:1;transform:translate(-50%) scale(1.1)}to{bottom:100%;opacity:0;transform:translate(-50%) scale(.6)}}.battle-overlay__sprite-layer--enemy-water-flash img{animation:battle-overlay-enemy-water-flash .6s ease-in-out forwards}@keyframes battle-overlay-enemy-water-flash{0%,to{filter:brightness(1) contrast(1)}25%{filter:brightness(1.6) contrast(1.1) hue-rotate(180deg)}50%{filter:brightness(1.3) contrast(1.05) hue-rotate(180deg)}75%{filter:brightness(1.5) contrast(1.08) hue-rotate(180deg)}}.battle-overlay__sprite-layer--character-water-flash img{animation:battle-overlay-character-water-flash .6s ease-in-out forwards}@keyframes battle-overlay-character-water-flash{0%,to{filter:brightness(1) contrast(1)}25%{filter:brightness(1.6) contrast(1.1) hue-rotate(180deg)}50%{filter:brightness(1.3) contrast(1.05) hue-rotate(180deg)}75%{filter:brightness(1.5) contrast(1.08) hue-rotate(180deg)}}.battle-overlay__victory-message{position:absolute;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;background:#000000b3;backdrop-filter:blur(4px);pointer-events:auto;animation:battle-overlay-victory-fade-in .3s ease-out forwards}@keyframes battle-overlay-victory-fade-in{0%{opacity:0}to{opacity:1}}.battle-overlay__victory-content{background:linear-gradient(135deg,#0f172af2,#1e293bf2);border:2px solid rgba(255,255,255,.3);border-radius:24px;padding:2.5rem 3rem;text-align:center;box-shadow:0 20px 60px #000c;max-width:500px;width:90%;animation:battle-overlay-victory-pop .4s ease-out forwards}@keyframes battle-overlay-victory-pop{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.battle-overlay__victory-title{font-size:clamp(2rem,5vw,3rem);font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:gold;-webkit-text-stroke:2px white;text-stroke:2px white;text-shadow:0 0 20px rgba(255,215,0,.8),0 0 30px rgba(255,215,0,.6),0 4px 8px rgba(0,0,0,.6);margin-bottom:1.5rem}.battle-overlay__victory-exp{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700;color:#fbbf24;text-shadow:0 0 15px rgba(251,191,36,.6);margin-bottom:1.5rem;letter-spacing:.05em}.battle-overlay__victory-exp-bar-container{margin:1.5rem 0;width:100%}.battle-overlay__victory-exp-bar-label{font-size:clamp(.9rem,2vw,1.1rem);font-weight:600;color:#fff;text-align:left;margin-bottom:.5rem;letter-spacing:.02em}.battle-overlay__victory-exp-bar-track{height:20px;border:2px solid rgba(255,255,255,.3);border-radius:999px;background:#0000004d;overflow:hidden;position:relative;box-shadow:inset 0 2px 4px #0000004d}.battle-overlay__victory-exp-bar-fill{height:100%;background:linear-gradient(90deg,#818cf8,#6366f1,#4f46e5);border-radius:999px;transition:width .1s linear;box-shadow:0 0 10px #6366f199;position:relative;overflow:hidden}.battle-overlay__victory-exp-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:battle-overlay-exp-shine 2s infinite}@keyframes battle-overlay-exp-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.battle-overlay__victory-levelup{margin:1.5rem 0;padding:1.5rem 0}.battle-overlay__victory-levelup-text{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:#fff;text-shadow:0 0 20px rgba(255,255,255,.8),0 0 30px rgba(255,255,255,.6),0 4px 8px rgba(0,0,0,.8);margin-bottom:.75rem;animation:battle-overlay-levelup-text-glow 2s ease-in-out infinite}@keyframes battle-overlay-levelup-text-glow{0%,to{text-shadow:0 0 20px rgba(255,255,255,.8),0 0 30px rgba(255,255,255,.6),0 4px 8px rgba(0,0,0,.8)}50%{text-shadow:0 0 30px rgba(255,255,255,1),0 0 40px rgba(255,255,255,.8),0 0 50px rgba(255,255,255,.6),0 4px 8px rgba(0,0,0,.8)}}.battle-overlay__victory-levelup-levels{font-size:clamp(1.5rem,3.5vw,2rem);font-weight:800;color:#fff;letter-spacing:.08em;text-shadow:0 0 15px rgba(255,255,255,.7),0 0 25px rgba(255,255,255,.5),0 2px 4px rgba(0,0,0,.7)}.battle-overlay__victory-skills-learned{margin-top:1rem;padding-top:1rem;display:flex;flex-direction:column;gap:.75rem}.battle-overlay__victory-skill-learned{font-size:clamp(1.5rem,3.5vw,2rem);font-weight:800;color:#fff;letter-spacing:.08em;text-shadow:0 0 15px rgba(255,255,255,.7),0 0 25px rgba(255,255,255,.5),0 2px 4px rgba(0,0,0,.7);animation:battle-overlay-skill-learned-fade-in .5s ease-out forwards}.battle-overlay__victory-skill-learned strong{color:#fff;font-weight:900;text-shadow:0 0 20px rgba(255,255,255,.9),0 0 30px rgba(255,255,255,.7),0 0 40px rgba(255,255,255,.5)}@keyframes battle-overlay-skill-learned-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.battle-overlay__victory-button{margin-top:2rem;padding:1rem 2.5rem;border-radius:999px;border:none;background:linear-gradient(135deg,#22d3ee,#0ea5e9);color:#fff;font-weight:700;font-size:1.1rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 25px #0ea5e966;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.battle-overlay__victory-button:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0ea5e980;filter:brightness(1.1)}.battle-overlay__victory-button:active{transform:translateY(0);box-shadow:0 8px 18px #0ea5e966}@media (max-width: 768px){.battle-overlay{--battle-quiz-margin: clamp(.5rem, 4vw, 1.25rem)}.battle-overlay__content{padding:clamp(.75rem,4vw,1.25rem)}.battle-overlay--embedded .battle-overlay__quiz{width:calc(100% - 2 * var(--battle-quiz-margin, 1rem));max-width:calc(100% - 2 * var(--battle-quiz-margin, 1rem));padding:clamp(.75rem,4vw,1.25rem);border-radius:16px}.battle-overlay__quiz-footer{flex-direction:column;align-items:center}.battle-overlay__quiz-footer-buttons{width:100%;justify-content:center}.battle-overlay__victory-content{padding:2rem 1.5rem}.pinyin-quiz{gap:.9rem}.pinyin-quiz__sound-button,.pinyin-quiz__audio-trigger{width:72px;height:72px;font-size:1.35rem}.pinyin-quiz__choice{padding:.75rem 1.25rem}.pinyin-quiz__mcq-list{grid-template-columns:1fr}.pinyin-quiz__mix-match-container{flex-direction:column;gap:1rem}.pinyin-quiz__mix-match-column{width:100%}.pinyin-quiz__mix-match-list{max-height:180px;overflow-y:auto}}.battle-menu{position:absolute;top:16px;left:16px;display:flex;align-items:flex-start;gap:10px;z-index:1100;pointer-events:auto}.battle-menu__fight-button{display:flex;align-items:center;justify-content:center;width:120px;height:256px;padding:0;background:linear-gradient(135deg,#1e293bf2,#0f172afa);border:1px solid rgba(255,255,255,.15);border-radius:8px;cursor:pointer;box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff1a inset,0 2px 4px #0003 inset;backdrop-filter:blur(10px);transition:all .2s ease;position:relative}.battle-menu__fight-button:hover{background:linear-gradient(135deg,#334155f2,#1e293bfa);border-color:#ffffff40;box-shadow:0 6px 20px #00000080,0 0 0 1px #ffffff26 inset;transform:translateY(-2px)}.battle-menu__fight-button:active{transform:translateY(0);box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff1a inset}.battle-menu__fight-button:focus{outline:none;box-shadow:0 0 0 2px #3b82f680,0 4px 16px #0006,0 0 0 1px #ffffff1a inset}.battle-menu__fight-icon{font-size:2.5rem;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5)}.battle-menu__fight-button:before{content:"▶";position:absolute;left:-20px;top:50%;transform:translateY(-50%);font-size:1rem;color:#3b82f6;opacity:0;transition:opacity .2s ease;pointer-events:none}.battle-menu__fight-button:focus:before,.battle-menu__fight-button:hover:before{opacity:1}.battle-menu__right-column{display:flex;flex-direction:column;gap:8px}.battle-menu__action-button{width:140px;height:80px;padding:0;background:linear-gradient(135deg,#1e293bf2,#0f172afa);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:1.125rem;font-weight:600;font-family:Courier New,monospace;cursor:pointer;box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff1a inset,0 2px 4px #0003 inset;backdrop-filter:blur(10px);transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.battle-menu__action-button:hover{background:linear-gradient(135deg,#334155f2,#1e293bfa);border-color:#ffffff40;box-shadow:0 6px 20px #00000080,0 0 0 1px #ffffff26 inset;transform:translateY(-2px)}.battle-menu__action-button:active{transform:translateY(0);box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff1a inset}.battle-menu__action-button:focus{outline:none;box-shadow:0 0 0 2px #3b82f680,0 4px 16px #0006,0 0 0 1px #ffffff1a inset}.battle-menu{transition:opacity .3s ease,transform .3s ease}.battle-menu--hidden{opacity:0;transform:translateY(20px);pointer-events:none}.battle-menu__skills-container{position:absolute;top:16px;left:16px;display:flex;flex-direction:column;gap:8px;z-index:1100;pointer-events:auto;animation:battle-menu-skills-appear .3s ease forwards}@keyframes battle-menu-skills-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.battle-menu__skill-box{position:relative;z-index:1101;width:100px;height:60px;padding:0;background:linear-gradient(135deg,#1e293bf2,#0f172afa);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:.875rem;font-weight:600;font-family:Courier New,monospace;cursor:pointer;box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff1a inset,0 2px 4px #0003 inset;backdrop-filter:blur(10px);transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}.battle-menu__skill-box:hover:not(:disabled){background:linear-gradient(135deg,#334155f2,#1e293bfa);border-color:#ffffff40;box-shadow:0 6px 20px #00000080,0 0 0 1px #ffffff26 inset;transform:translateY(-2px)}.battle-menu__skill-box:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff1a inset}.battle-menu__skill-box:focus:not(:disabled){outline:none;box-shadow:0 0 0 2px #3b82f680,0 4px 16px #0006,0 0 0 1px #ffffff1a inset}.battle-menu__skill-box:disabled{opacity:.4;cursor:not-allowed}.battle-menu__skill-name{font-weight:600}.battle-menu__skill-empty{opacity:.5;font-size:1.2rem}.battle-menu__return-button{position:relative;z-index:1101;width:100px;height:50px;padding:0;background:linear-gradient(135deg,#1e293bf2,#0f172afa);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:.875rem;font-weight:600;font-family:Courier New,monospace;cursor:pointer;box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff1a inset,0 2px 4px #0003 inset;backdrop-filter:blur(10px);transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:4px}.battle-menu__return-button:hover{background:linear-gradient(135deg,#334155f2,#1e293bfa);border-color:#ffffff40;box-shadow:0 6px 20px #00000080,0 0 0 1px #ffffff26 inset;transform:translateY(-2px)}.battle-menu__return-button:active{transform:translateY(0);box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff1a inset}.battle-menu__return-button:focus{outline:none;box-shadow:0 0 0 2px #3b82f680,0 4px 16px #0006,0 0 0 1px #ffffff1a inset}.battle-menu__return-icon{font-size:1.2rem;font-weight:700}.battle-menu__return-text{font-weight:600}.battle-encounter-dialogue{position:absolute;left:50%;bottom:1.5rem;transform:translate(-50%);z-index:900;max-width:900px;width:calc(100% - 3rem)}.battle-encounter-dialogue__inner{background:#000000d9;border-radius:12px;border:1px solid rgba(255,255,255,.15);box-shadow:0 12px 40px #0009;padding:1rem 1.25rem .75rem;color:#fff}.battle-encounter-dialogue__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.9rem}.battle-encounter-dialogue__label{color:#ccc}.battle-encounter-dialogue__next{background:#fff;color:#000;border:none;border-radius:999px;padding:.25rem .9rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease}.battle-encounter-dialogue__next:hover{background:#e6e6e6;transform:translateY(-1px)}.battle-encounter-dialogue__body{cursor:pointer}.battle-encounter-dialogue__chinese{font-size:1.4rem;line-height:1.6;margin-bottom:.35rem}.battle-encounter-dialogue__translation{font-size:.95rem;line-height:1.5;color:#d0d0d0}.battle-encounter-dialogue__footer{display:flex;justify-content:flex-end;margin-top:.35rem}.battle-encounter-dialogue__grammar-btn{background:transparent;border-radius:999px;border:1px solid rgba(255,255,255,.4);padding:.2rem .75rem;font-size:.8rem;color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease}.battle-encounter-dialogue__grammar-btn:hover{background:#ffffff14;border-color:#ffffffb3}.battle-encounter-dialogue__grammar-panel{margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.12)}.battle-encounter-dialogue__grammar-loading{font-size:.85rem;color:#ccc}.battle-encounter-dialogue__grammar-list{list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto;overflow-x:hidden}.battle-encounter-dialogue__grammar-list::-webkit-scrollbar{width:8px}.battle-encounter-dialogue__grammar-list::-webkit-scrollbar-track{background:#0003;border-radius:4px}.battle-encounter-dialogue__grammar-list::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.battle-encounter-dialogue__grammar-list::-webkit-scrollbar-thumb:hover{background:#ffffff80}.battle-encounter-dialogue__grammar-item+.battle-encounter-dialogue__grammar-item{margin-top:.5rem}.battle-encounter-dialogue__grammar-item--known{opacity:.8}.battle-encounter-dialogue__grammar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem;gap:.5rem}.battle-encounter-dialogue__grammar-title{font-weight:600;flex:1}.battle-encounter-dialogue__grammar-actions{display:flex;gap:.3rem;align-items:center}.battle-encounter-dialogue__grammar-mark-known-btn,.battle-encounter-dialogue__grammar-mark-unknown-btn,.battle-encounter-dialogue__grammar-expand-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.2rem .4rem;border-radius:3px;cursor:pointer;font-size:.8rem;transition:all .2s ease;min-width:24px;height:24px;display:flex;align-items:center;justify-content:center}.battle-encounter-dialogue__grammar-mark-known-btn:hover{background:#22c55e4d;border-color:#22c55e99;transform:scale(1.05)}.battle-encounter-dialogue__grammar-mark-unknown-btn:hover{background:#fbbf244d;border-color:#fbbf2499;transform:scale(1.05)}.battle-encounter-dialogue__grammar-expand-btn:hover{background:#3b82f64d;border-color:#3b82f699;transform:scale(1.05)}.battle-encounter-dialogue__grammar-content{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.battle-encounter-dialogue__grammar-body{font-size:.85rem;color:#d0d0d0;line-height:1.5}.battle-encounter-dialogue__grammar-body p{margin:.3rem 0}.battle-encounter-dialogue__grammar-body p:first-child{margin-top:0}.battle-encounter-dialogue__grammar-body p:last-child{margin-bottom:0}.battle-encounter-dialogue__grammar-structure{margin-top:.5rem;padding:.5rem;background:#3b82f626;border-left:3px solid rgba(59,130,246,.5);border-radius:4px}.battle-encounter-dialogue__grammar-structure strong{display:block;font-size:.8rem;color:#60a5fa;margin-bottom:.3rem}.battle-encounter-dialogue__grammar-structure p{font-size:.85rem;color:#bfdbfe;margin:0;font-family:Courier New,monospace}.battle-encounter-dialogue__grammar-examples{margin-top:.5rem;padding:.5rem;background:#22c55e26;border-left:3px solid rgba(34,197,94,.5);border-radius:4px}.battle-encounter-dialogue__grammar-examples strong{display:block;font-size:.8rem;color:#4ade80;margin-bottom:.3rem}.battle-encounter-dialogue__grammar-examples p{font-size:.85rem;color:#86efac;margin:.3rem 0}.battle-encounter-dialogue__grammar-examples p:first-of-type{margin-top:.3rem}.battle-encounter-dialogue__grammar-examples p:last-child{margin-bottom:0}@media (max-width: 768px){.battle-encounter-dialogue{bottom:.75rem;width:calc(100% - 1.5rem)}.battle-encounter-dialogue__inner{padding:.75rem .9rem .6rem}.battle-encounter-dialogue__chinese{font-size:1.1rem}.battle-encounter-dialogue__translation{font-size:.85rem}}.battle-squad-modal__overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(4px);animation:battle-squad-modal-fade-in .3s ease;pointer-events:auto}@keyframes battle-squad-modal-fade-in{0%{opacity:0}to{opacity:1}}.battle-squad-modal__container{background:linear-gradient(135deg,#1e293bfa,#0f172afa);border:1px solid rgba(255,255,255,.15);border-radius:12px;width:min(90%,800px);max-height:80vh;box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff1a inset;backdrop-filter:blur(10px);display:flex;flex-direction:column;animation:battle-squad-modal-slide-up .3s ease;overflow:hidden;pointer-events:auto}@keyframes battle-squad-modal-slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.battle-squad-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);position:relative;z-index:2001}.battle-squad-modal__title{margin:0;font-size:1.5rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em}.battle-squad-modal__close-button{width:32px;height:32px;border:none;background:#ffffff1a;border-radius:6px;color:#fff;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1;pointer-events:auto;z-index:2001;position:relative}.battle-squad-modal__close-button:hover{background:#fff3;transform:scale(1.1)}.battle-squad-modal__close-button:active{transform:scale(.95)}.battle-squad-modal__content{padding:1.5rem;overflow-y:auto;flex:1}.battle-squad-modal__spirits-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.battle-squad-modal__spirit-card{background:#0f172a99;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;transition:all .2s ease}.battle-squad-modal__spirit-card:hover{border-color:#3b82f680;box-shadow:0 4px 12px #3b82f633;transform:translateY(-2px)}.battle-squad-modal__spirit-image{width:80px;height:80px;display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden;background:#0000004d}.battle-squad-modal__spirit-image img{width:100%;height:100%;object-fit:contain}.battle-squad-modal__spirit-info{text-align:center;width:100%}.battle-squad-modal__spirit-name{font-size:1rem;font-weight:600;color:#fff;margin-bottom:.25rem}.battle-squad-modal__spirit-level{font-size:.875rem;color:#94a3b8;margin-bottom:.25rem}.battle-squad-modal__spirit-hp{font-size:.875rem;color:#94a3b8}.battle-squad-modal__swap-button{margin-top:.5rem;padding:.4rem .8rem;background:linear-gradient(135deg,#3b82f6e6,#2563ebe6);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s ease}.battle-squad-modal__swap-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #3b82f659}.battle-squad-modal__active-chip{margin-top:.5rem;padding:.25rem .6rem;border-radius:999px;background:#10b98133;color:#34d399;font-weight:700;font-size:.8rem;border:1px solid rgba(52,211,153,.4)}.battle-squad-modal__empty{text-align:center;padding:3rem;color:#94a3b8;font-size:1rem}.battle-items-modal__overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(4px);animation:battle-items-modal-fade-in .3s ease}@keyframes battle-items-modal-fade-in{0%{opacity:0}to{opacity:1}}.battle-items-modal__container{background:linear-gradient(135deg,#1e293bfa,#0f172afa);border:1px solid rgba(255,255,255,.15);border-radius:12px;width:min(90%,800px);max-height:80vh;box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff1a inset;backdrop-filter:blur(10px);display:flex;flex-direction:column;animation:battle-items-modal-slide-up .3s ease;overflow:hidden}@keyframes battle-items-modal-slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.battle-items-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);position:relative;z-index:2001}.battle-items-modal__title{margin:0;font-size:1.5rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em}.battle-items-modal__close-button{width:32px;height:32px;border:none;background:#ffffff1a;border-radius:6px;color:#fff;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1;pointer-events:auto;z-index:2001;position:relative}.battle-items-modal__close-button:hover{background:#fff3;transform:scale(1.1)}.battle-items-modal__close-button:active{transform:scale(.95)}.battle-items-modal__content{padding:1.5rem;overflow-y:auto;flex:1;pointer-events:auto}.battle-items-modal__items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.battle-items-modal__item-card{background:#0f172a99;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;transition:all .2s ease;position:relative;pointer-events:auto}.battle-items-modal__item-card--usable{cursor:pointer;pointer-events:auto}.battle-items-modal__item-card--usable:hover{background:#1e293bcc;border-color:#3b82f680;transform:translateY(-2px)}.battle-items-modal__item-card:hover{border-color:#3b82f680;box-shadow:0 4px 12px #3b82f633;transform:translateY(-2px)}.battle-items-modal__item-icon{font-size:3rem;line-height:1}.battle-items-modal__item-info{text-align:center;width:100%}.battle-items-modal__item-name{font-size:1rem;font-weight:600;color:#fff;margin-bottom:.25rem}.battle-items-modal__item-description{font-size:.875rem;color:#94a3b8;margin-bottom:.25rem}.battle-items-modal__item-quantity{font-size:.875rem;color:#38bdf8;font-weight:600}.battle-items-modal__empty{text-align:center;padding:3rem;color:#94a3b8;font-size:1rem}
