*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{touch-action:manipulation;overscroll-behavior:none}button{touch-action:manipulation;-webkit-user-select:none;user-select:none}:root{--bg1: #ffd6ec;--bg2: #e8d5ff;--ink: #3a2e57;--ink-soft: #cc5de8;--card: #ffffff;--radius: 22px;--fs-xs: 14px;--fs-sm: 16px;--fs-md: 18px;--fs-lg: 22px;--fs-xl: 28px;--fs-2xl: 36px;--fs-3xl: 48px;--brand: #e64980;--brand-warm: #ff922b;--brand-good: #51cf66;--brand-bad: #ff8787;--brand-celebrate: #f783ac;--touch-min: 70px}html,body,#root{height:100%}body{font-family:Comic Sans MS,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(160deg,#ffd6ecd9,#e8d5ffd9 40%,#fff0f5d9),url(/assets/bg-home-0nt0DkUp.jpg) center/cover fixed;min-height:100vh;overflow-x:hidden}.app{min-height:100vh;position:relative}.app:before,.app:after{position:fixed;opacity:.5;z-index:0;pointer-events:none;animation:floatCloud 14s ease-in-out infinite}.app:before{content:"✨";top:8%;left:4%;font-size:40px}.app:after{content:"🐾";top:22%;right:6%;font-size:36px;animation-delay:-6s}@keyframes floatCloud{0%,to{transform:translate(0)}50%{transform:translate(24px)}}.home{max-width:780px;margin:0 auto;padding:28px 18px 60px;position:relative;z-index:1}.home-header{text-align:center;margin-bottom:30px;animation:dropIn .6s ease}.logo-emoji{font-size:64px;animation:bounce 2s ease-in-out infinite}.logo-title{font-size:44px;letter-spacing:4px;background:linear-gradient(90deg,#e64980,#cc5de8,#f783ac,#faa2c1);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 3px 0 rgba(255,255,255,.7)}.logo-sub{font-size:var(--fs-md);color:#7a6aa5;margin-top:6px}.total-stars{display:inline-block;margin-top:14px;background:#fff7db;border:3px solid #ffd43b;border-radius:999px;padding:10px 22px;font-size:var(--fs-lg);font-weight:700;color:#b8860b}.subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}.subject-card{position:relative;background:var(--card);border:4px solid var(--card-color);border-radius:var(--radius);padding:24px 18px 20px;cursor:pointer;text-align:center;box-shadow:0 8px #00000014;transition:transform .12s ease,box-shadow .12s ease;animation:popIn .5s ease backwards;font-family:inherit;color:var(--ink);min-height:var(--touch-min)}.subject-card:nth-child(2){animation-delay:.08s}.subject-card:nth-child(3){animation-delay:.16s}.subject-card:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 14px #0000001a}.subject-card:active{transform:translateY(2px) scale(.98);box-shadow:0 3px #00000014}.subject-emoji{font-size:56px}.subject-name{font-size:var(--fs-xl);font-weight:700;margin-top:8px;color:var(--card-color)}.subject-desc{font-size:var(--fs-sm);color:#8b7fb0;margin-top:4px}.subject-progress{margin-top:12px;display:flex;gap:8px;justify-content:center}.chip{background:#fce7f4;border-radius:999px;padding:5px 14px;font-size:var(--fs-xs);color:#c2256b}.subject-go{position:absolute;top:-14px;right:-10px;background:var(--card-color);color:#fff;border-radius:999px;padding:8px 16px;font-size:var(--fs-sm);font-weight:700;transform:rotate(8deg);box-shadow:0 3px 6px #00000026}.home-footer{text-align:center;margin-top:36px;font-size:var(--fs-xs);color:#a598c7}.battle{max-width:780px;margin:0 auto;padding:16px 16px 50px;position:relative;z-index:1}.battle-single{min-height:100vh;max-width:780px;margin:0 auto;padding:12px 14px 16px;display:flex;flex-direction:column;position:relative;z-index:1;overflow:hidden}.battle-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.btn-back{background:#fff;border:3px solid #d9cfff;border-radius:999px;padding:8px 16px;font-size:15px;cursor:pointer;font-family:inherit;color:var(--ink);font-weight:700}.btn-back:active{transform:scale(.95)}.battle-title{font-size:18px;font-weight:700;display:flex;gap:10px;align-items:center}.streak{background:#fff0f6;color:#c2256b;border-radius:999px;padding:3px 10px;font-size:13px}.battle-count{background:#fff;border:3px solid var(--subject-color, #ffd43b);border-radius:999px;padding:6px 14px;font-weight:700;font-size:16px}.progress-bar{height:12px;background:#fff9;border-radius:999px;overflow:hidden;margin-bottom:10px;box-shadow:inset 0 2px 4px #0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,#51cf66,#40c057);border-radius:999px;transition:width .4s ease}.level-desc-bar{text-align:center;font-size:14px;color:#7a6aa5;background:#fff9;border-radius:12px;padding:6px 12px;margin-bottom:6px;font-weight:600}.wrong-indicator{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:#868e96;margin-bottom:8px}.wrong-dot{color:#dee2e6;font-size:16px}.wrong-dot.used{color:#ff6b6b}.wrong-hint{margin-left:6px;font-weight:600}.result-coins-muted{color:#adb5bd;font-size:16px;font-weight:600}.arena{position:relative;display:flex;align-items:flex-end;justify-content:space-between;background:linear-gradient(180deg,#ffd6ec,#e8d5ff,#d0ebff);border:4px solid #ffffff;border-radius:var(--radius);padding:26px 22px 20px;box-shadow:inset 0 -18px #0000000d,0 8px #00000014;min-height:240px}.arena-side{display:flex;flex-direction:column;align-items:center;gap:10px;width:44%}.vs-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:26px;font-weight:900;color:#fff;background:#ff922b;border:3px solid #fff;border-radius:50%;width:62px;height:62px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #0003}.monster.idle{animation:idleBob 2.4s ease-in-out infinite}.player.idle{animation:idleBob 2.4s ease-in-out infinite .4s}@keyframes idleBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.monster.hurt,.player.hurt{animation:hurtShake .5s ease}@keyframes hurtShake{0%,to{transform:translate(0);filter:none}20%{transform:translate(-10px);filter:brightness(1.6) saturate(2)}40%{transform:translate(10px)}60%{transform:translate(-8px)}80%{transform:translate(6px)}}.player.attacking{animation:lungeRight .45s ease}@keyframes lungeRight{0%,to{transform:translate(0)}50%{transform:translate(50px) rotate(6deg)}}.monster.attacking{animation:lungeLeft .45s ease}@keyframes lungeLeft{0%,to{transform:translate(0)}50%{transform:translate(-50px) rotate(-6deg)}}.monster.fainted{animation:faint .8s ease forwards}@keyframes faint{to{transform:rotate(90deg) translateY(20px);opacity:.35}}.player.cheering{animation:cheerJump .7s ease infinite}@keyframes cheerJump{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}.hpbar{width:100%;max-width:190px}.hpbar-label{font-size:13px;font-weight:700;margin-bottom:4px;text-align:center}.hpbar-track{background:#00000026;border-radius:999px;height:14px;overflow:hidden;border:2px solid #fff}.hpbar-fill{height:100%;border-radius:999px}.hpbar-num{font-size:12px;text-align:center;margin-top:3px;color:#5a4a8a}.feedback{margin:14px auto 0;max-width:560px;text-align:center;font-size:var(--fs-lg);font-weight:700;padding:12px 18px;border-radius:16px;animation:popIn .3s ease}.feedback.good{background:#d3f9d8;color:#2b8a3e;border:3px solid #69db7c}.feedback.bad{background:#fff4e6;color:#d9480f;border:3px solid #ffa94d}.battle-single .feedback{margin:8px auto 0}.question-card{margin-top:16px;background:var(--card);border-radius:var(--radius);padding:22px 18px;border:4px solid #f3d9ff;box-shadow:0 8px #0000000f;animation:popIn .35s ease}.battle-single .question-card{flex:1;display:flex;flex-direction:column;justify-content:center;margin-top:8px;padding:16px 18px;overflow-y:auto}.battle-single .options{margin-top:auto}.question-prompt{font-size:var(--fs-lg);font-weight:700;text-align:center;color:#5a4a8a}.question-big-emoji{font-size:76px;text-align:center;margin:12px 0 4px}.question-big-char{font-size:68px;text-align:center;margin:12px 0 4px;font-weight:900}.question-big-math{font-size:46px;text-align:center;margin:12px 0 4px;font-weight:900;color:#4dabf7;letter-spacing:3px}.question-poem{text-align:center;margin:12px 0 4px;padding:10px 14px;background:#fbf7ff;border:2px dashed #d9cfff;border-radius:16px}.question-poem .poem-title{font-size:var(--fs-lg);font-weight:900;color:#cc5de8;margin-bottom:6px}.question-poem .poem-line{font-size:var(--fs-xl);font-weight:700;color:#5a4a8a;line-height:1.7;letter-spacing:2px}.question-tag{display:inline-block;font-size:var(--fs-xs);font-weight:700;color:#fff;background:#ff922b;padding:4px 14px;border-radius:20px;margin-bottom:8px}.record-section{text-align:center;margin-top:18px}.record-result{border-radius:16px;padding:12px 16px;margin-bottom:14px}.record-result.good{background:#d3f9d8;border:3px solid #51cf66}.record-result.bad{background:#ffe3e3;border:3px solid #ff6b6b}.record-score{font-size:36px;font-weight:900;color:#5a4a8a}.record-detail{font-size:18px;font-weight:700;margin-top:4px}.record-recognized{font-size:14px;color:#868e96;margin-top:6px}.record-controls{display:flex;justify-content:center}.btn-record{min-height:72px;min-width:200px;border:none;border-radius:36px;font-size:20px;font-weight:900;color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff6b6b,#ff922b);display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 28px;box-shadow:0 6px #0000001f;transition:transform .15s;touch-action:manipulation}.btn-record:active{transform:translateY(3px);box-shadow:0 3px #0000001f}.btn-record-stop{background:linear-gradient(135deg,#fa5252,#e64980)}.record-icon{font-size:32px}.record-icon.pulse{animation:recordPulse 1s ease-in-out infinite}.record-recognizing{min-height:72px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:18px;font-weight:700;color:#5a4a8a}.record-spinner{font-size:32px;animation:recordSpin 1s linear infinite}.record-hint{font-size:var(--fs-xs);color:#868e96;margin-top:10px}@keyframes recordPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes recordSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.options{display:grid;gap:14px;margin-top:18px}.options.cols-2{grid-template-columns:repeat(2,1fr)}.options.cols-3{grid-template-columns:repeat(3,1fr)}.options.cols-4{grid-template-columns:repeat(2,1fr)}.option{background:#fef5fb;border:4px solid #f3d9ff;border-radius:18px;padding:18px 10px;font-size:var(--fs-2xl);font-weight:700;cursor:pointer;font-family:inherit;color:var(--ink);transition:transform .12s ease,background .2s;box-shadow:0 5px #d9cfff;min-height:var(--touch-min)}.option:hover:not(:disabled){transform:translateY(-3px);background:#ece5ff}.option:active:not(:disabled){transform:translateY(2px) scale(.97);box-shadow:0 2px #d9cfff}.option.correct{background:#d3f9d8!important;border-color:#51cf66!important;box-shadow:0 5px #51cf66;animation:winPulse .6s ease}.option.wrong{background:#fff4e6!important;border-color:#ffa94d!important;box-shadow:0 5px #ffa94d;animation:softShake .5s ease}@keyframes softShake{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-6px) rotate(-2deg)}75%{transform:translate(6px) rotate(2deg)}}.option:disabled{cursor:default;opacity:.9}@keyframes winPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.result{margin-top:18px;background:var(--card);border-radius:var(--radius);padding:30px 20px;text-align:center;border:4px solid #ffd43b;animation:popIn .4s ease}.battle-single .result{flex:1;display:flex;flex-direction:column;justify-content:center}.result.win{border-color:#ffd43b}.result.lose{border-color:#a5d8ff}.result-title{font-size:40px;font-weight:900}.result-stars{font-size:40px;margin:12px 0;letter-spacing:6px}.result-text{font-size:18px;color:#7a6aa5;margin-bottom:20px}.result-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.btn{border:none;border-radius:999px;padding:14px 30px;font-size:19px;font-weight:700;cursor:pointer;font-family:inherit;transition:transform .12s;color:#fff}.btn:active{transform:scale(.95)}.btn-next{background:linear-gradient(90deg,#51cf66,#20c997);box-shadow:0 5px #2b8a3e}.btn-home{background:#cc5de8;box-shadow:0 5px #9c36b5}@keyframes popIn{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes dropIn{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@media (max-width: 520px){.logo-title{font-size:34px}.arena{flex-direction:column;align-items:center;gap:10px}.arena-side{width:100%}.vs-badge{position:static;transform:none;margin:4px 0}.options.cols-3{grid-template-columns:repeat(3,1fr)}.option{font-size:22px;padding:14px 6px}}.login{max-width:560px;margin:0 auto;padding:28px 18px 60px;position:relative;z-index:1}.login-header{text-align:center;margin-bottom:26px;animation:dropIn .6s ease}.login-section{background:var(--card);border:4px solid #f3d9ff;border-radius:var(--radius);padding:20px 18px;margin-bottom:18px;box-shadow:0 8px #0000000f}.login-section-title{font-size:16px;font-weight:700;color:#7a6aa5;margin-bottom:14px}.user-list{display:flex;flex-wrap:wrap;gap:12px}.user-chip{display:flex;align-items:center;gap:8px;background:#f6f3ff;border:3px solid #d9cfff;border-radius:999px;padding:8px 16px 8px 8px;cursor:pointer;font-family:inherit;font-size:17px;color:var(--ink);font-weight:700;transition:transform .12s}.user-chip:hover{transform:translateY(-3px);background:#ece5ff}.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;background:#fff;border-radius:50%;font-size:22px}.login-input-row{display:flex;gap:10px}.login-input{flex:1;border:3px solid #f3d9ff;border-radius:16px;padding:12px 16px;font-size:18px;font-family:inherit;color:var(--ink);outline:none}.login-input:focus{border-color:#e64980}.btn-start{background:linear-gradient(90deg,#f783ac,#e64980);box-shadow:0 5px #5f3dc4;padding:12px 24px;font-size:18px}.login-error{color:#c92a2a;font-size:14px;margin-top:10px;font-weight:700}.login-switch{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:18px}.link-btn{background:none;border:none;color:#7048e8;font-size:15px;font-weight:700;cursor:pointer;padding:4px 6px;text-decoration:underline}.link-btn:active{opacity:.6}.login-input[type=password]{width:100%;box-sizing:border-box}.home-user-actions{display:flex;align-items:center;gap:8px}.btn-parent{background:#ffffff80;border:1px solid rgba(112,72,232,.2);border-radius:50%;width:36px;height:36px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}.btn-parent:active{transform:scale(.92)}.parent-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#f3f0ff,#e7f5ff)}.parent-gate-card{background:#fff;border-radius:24px;padding:32px 28px;max-width:360px;width:100%;text-align:center;box-shadow:0 8px 32px #7048e826}.parent-gate-icon{font-size:48px}.parent-gate-title{font-size:22px;font-weight:900;color:#343a40;margin-top:8px}.parent-gate-desc{font-size:14px;color:#868e96;margin:6px 0 16px}.parent-gate-math{font-size:28px;font-weight:900;color:#7048e8;letter-spacing:2px;margin:10px 0}.parent-dashboard{max-width:820px;margin:0 auto;padding:16px;min-height:100vh;background:linear-gradient(180deg,#f8f9fa,#fff)}.parent-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.parent-stat-card{background:#fff;border-radius:16px;padding:14px 8px;text-align:center;box-shadow:0 2px 8px #0000000f}.parent-stat-num{font-size:20px;font-weight:900;color:#343a40}.parent-stat-label{font-size:12px;color:#868e96;margin-top:4px}.parent-section{background:#fff;border-radius:16px;padding:16px;margin:12px 0;box-shadow:0 2px 8px #0000000f}.parent-section-title{font-size:17px;font-weight:900;color:#343a40;margin-bottom:12px}.parent-table{width:100%}.parent-row{display:grid;grid-template-columns:1.4fr 1fr .9fr .9fr .7fr;gap:6px;padding:9px 4px;border-bottom:1px solid #f1f3f5;font-size:14px;align-items:center}.parent-row-head{font-weight:900;color:#495057;font-size:13px;background:#f8f9fa;border-radius:8px}.parent-subject-cell{font-weight:700}.parent-good{color:#2f9e44;font-weight:700}.parent-warn{color:#e8590c;font-weight:700}.parent-bad{color:#e03131;font-weight:700}.parent-muted{color:#adb5bd}.parent-empty{text-align:center;color:#adb5bd;font-size:14px;padding:20px}.parent-wrong-list{display:flex;flex-direction:column;gap:10px}.parent-wrong-item{background:#fff4e6;border-radius:12px;padding:10px 12px;border-left:4px solid #ffa94d}.parent-wrong-head{display:flex;justify-content:space-between;align-items:center;font-size:13px}.parent-wrong-subject{font-weight:700;color:#e8590c}.parent-wrong-time{color:#adb5bd;font-size:12px}.parent-wrong-prompt{font-size:14px;color:#343a40;margin-top:4px}.parent-wrong-answer{font-size:13px;color:#2f9e44;margin-top:2px}@media (max-width: 600px){.parent-overview{grid-template-columns:repeat(2,1fr)}.parent-row{grid-template-columns:1.2fr .8fr .7fr .7fr .6fr;font-size:12px}.parent-row-head{font-size:11px}}.home-user-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.home-user{font-size:18px;font-weight:700;color:#5a4a8a}.btn-logout{background:#fff;border:3px solid #ffd6e0;border-radius:999px;padding:6px 16px;font-size:14px;cursor:pointer;font-family:inherit;color:#c92a2a;font-weight:700}.btn-logout:active{transform:scale(.95)}.home-stats{display:flex;gap:12px;justify-content:center;margin-top:14px;flex-wrap:wrap}.total-coins{display:inline-block;background:#fff3d6;border:3px solid #ffd43b;border-radius:999px;padding:8px 20px;font-size:18px;font-weight:700;color:#b8860b}.hub-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.hub-card{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--card);border:4px solid;border-radius:var(--radius);padding:22px 14px;cursor:pointer;font-family:inherit;transition:transform .15s;box-shadow:0 8px #00000014}.hub-pet{border-color:#ffa8c0;color:#e8590c}.hub-shop{border-color:#ffd43b;color:#b8860b}.hub-card:hover{transform:translateY(-5px) rotate(-1deg)}.hub-card:active{transform:translateY(2px)}.hub-emoji{font-size:48px}.hub-name{font-size:22px;font-weight:700}.hub-desc{font-size:13px;color:#8b7fb0}.subject-title{font-size:18px;font-weight:700;color:#5a4a8a;margin-bottom:12px;text-align:center}.daily-tasks{background:var(--card);border:4px solid #b2f2bb;border-radius:var(--radius);margin-bottom:22px;overflow:hidden;box-shadow:0 6px #0000000f;animation:popIn .4s ease backwards}.daily-header{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;background:linear-gradient(90deg,#69db7c,#51cf66);color:#fff;font-family:inherit}.daily-title{font-size:var(--fs-lg);font-weight:700;flex:1;text-align:left}.daily-summary{font-size:var(--fs-sm);background:#ffffff4d;border-radius:999px;padding:4px 12px;font-weight:700}.daily-toggle{font-size:var(--fs-xs);background:#ffffff40;border-radius:999px;padding:4px 10px;min-width:48px;text-align:center}.daily-list{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.daily-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#f8fff8;border:3px solid #d3f9d8;border-radius:16px;transition:all .2s}.daily-item.ready{border-color:var(--brand-celebrate);background:#fff9db;animation:popIn .3s ease}.daily-item.done{opacity:.65;background:#f1f3f5;border-color:#dee2e6}.daily-emoji{font-size:32px;flex-shrink:0}.daily-body{flex:1;min-width:0}.daily-name{font-size:var(--fs-md);font-weight:700;color:#2b8a3e;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.daily-reward{font-size:var(--fs-xs);background:#fff3d6;color:#b8860b;border-radius:999px;padding:2px 10px}.daily-track{position:relative;margin-top:6px;background:#00000014;border-radius:999px;height:18px;overflow:hidden}.daily-fill{height:100%;background:linear-gradient(90deg,#69db7c,#51cf66);border-radius:999px;transition:width .5s ease}.daily-prog-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#2b8a3e}.daily-check{font-size:24px;flex-shrink:0}.daily-claim{flex-shrink:0;background:var(--brand-celebrate);color:#5a4a8a;border:none;border-radius:999px;padding:10px 18px;font-size:var(--fs-sm);font-weight:700;cursor:pointer;font-family:inherit;min-height:var(--touch-min);min-width:var(--touch-min);box-shadow:0 4px #f59f00;animation:popIn .3s ease}.daily-claim:active{transform:translateY(2px);box-shadow:0 2px #f59f00}.daily-claim-big{background:var(--brand-warm);color:#fff;box-shadow:0 4px #e8590c}.daily-claim-big:active{box-shadow:0 2px #e8590c}.daily-pending{flex-shrink:0;font-size:var(--fs-xs);color:#868e96;font-weight:700;min-width:50px;text-align:center}.daily-bonus{display:flex;align-items:center;gap:12px;padding:14px;background:#fff9db;border:3px dashed var(--brand-celebrate);border-radius:16px}.daily-bonus.done{opacity:.6;background:#f1f3f5;border-color:#dee2e6}.daily-bonus.ready{background:linear-gradient(90deg,#fff3d6,#ffe8cc);animation:popIn .4s ease}.daily-bonus-emoji{font-size:32px;flex-shrink:0}.daily-bonus-text{flex:1;font-size:var(--fs-md);color:#5a4a8a;font-weight:700}.pet-screen,.shop-screen{max-width:760px;margin:0 auto;padding:16px 16px 60px;position:relative;z-index:1}.pet-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.pet-title{font-size:20px;font-weight:700}.pet-coins{background:#fff;border:3px solid #ffd43b;border-radius:999px;padding:6px 16px;font-weight:700;color:#b8860b}.room-stage{border:4px solid #fff;border-radius:var(--radius);padding:0;overflow:hidden;box-shadow:0 8px #00000014;position:relative;transition:background .4s}.room-floor{position:relative;min-height:260px;display:flex;align-items:flex-end;justify-content:center;padding:16px 12px 8px;border-top:6px solid rgba(0,0,0,.05);transition:background .4s}.room-toy{position:absolute;left:16px;bottom:14px;font-size:40px;animation:toyWobble 3s ease-in-out infinite}@keyframes toyWobble{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.corgi-stage{position:relative;cursor:pointer}.cat3d{position:relative;touch-action:none;user-select:none;-webkit-user-select:none}.cat3d canvas{display:block;touch-action:none;outline:none}.cat3d:active{cursor:grabbing}.speech-bubble{position:absolute;left:50%;top:-6px;transform:translate(-50%);background:#fff;border:3px solid #d9cfff;border-radius:18px;padding:6px 14px;font-size:15px;font-weight:700;color:#5a4a8a;white-space:nowrap;animation:popIn .3s ease;z-index:5}.speech-bubble:after{content:"";position:absolute;left:50%;bottom:-10px;transform:translate(-50%);border:7px solid transparent;border-top-color:#fff}.room-hint{text-align:center;padding:10px;font-size:16px;font-weight:700;background:#ffffffb3}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.stat-item{background:var(--card);border:3px solid #e6dcff;border-radius:14px;padding:10px 8px;text-align:center}.stat-label{font-size:13px;font-weight:700;color:#5a4a8a;margin-bottom:6px}.stat-track{background:#0000001a;border-radius:999px;height:12px;overflow:hidden}.stat-fill{height:100%;border-radius:999px;transition:width .5s ease}.stat-num{font-size:13px;font-weight:700;margin-top:4px;color:#5a4a8a}.action-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:16px}.action-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--card);border:3px solid #ffd6e0;border-radius:16px;padding:14px 6px;cursor:pointer;font-family:inherit;color:var(--ink);transition:transform .12s;box-shadow:0 5px #00000014}.action-btn:hover:not(:disabled){transform:translateY(-3px)}.action-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #00000014}.action-btn:disabled{opacity:.5;cursor:default}.action-emoji{font-size:28px}.action-label{font-size:13px;font-weight:700}.pet-tip{text-align:center;margin-top:14px;font-size:13px;color:#a598c7}.shop-tabs{display:flex;gap:10px;margin-bottom:12px}.shop-tab{flex:1;background:#fff;border:3px solid #d9cfff;border-radius:16px;padding:12px;font-size:17px;font-weight:700;cursor:pointer;font-family:inherit;color:#7a6aa5}.shop-tab.active{background:#9775fa;color:#fff;border-color:#7048e8}.shop-hint{text-align:center;font-size:14px;color:#7a6aa5;margin-bottom:16px}.shop-group{margin-bottom:18px}.shop-group-title{font-size:17px;font-weight:700;color:#5a4a8a;margin-bottom:10px}.shop-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.shop-item{display:flex;align-items:center;gap:10px;background:var(--card);border:3px solid #e6dcff;border-radius:16px;padding:12px}.shop-item-emoji{font-size:34px}.shop-item-info{flex:1}.shop-item-name{font-size:16px;font-weight:700}.shop-item-price{font-size:14px;color:#b8860b;font-weight:700}.btn-buy{background:linear-gradient(90deg,#fcc419,#f59f00);color:#fff;border:none;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 4px #d9930a}.btn-buy:active{transform:scale(.95)}.btn-equip{background:linear-gradient(90deg,#51cf66,#2b8a3e);color:#fff;border:none;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 4px #2b8a3e}.btn-equip:active{transform:scale(.95)}.badge-equipped{background:#d3f9d8;color:#2b8a3e;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.shop-toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%);background:#fff;border:4px solid #ffd43b;border-radius:999px;padding:12px 24px;font-size:17px;font-weight:700;color:#5a4a8a;box-shadow:0 8px 20px #00000026;animation:popIn .3s ease;z-index:50}.shop-toast.bad{border-color:#ff6b6b;color:#c92a2a}.result-coins{font-size:24px;font-weight:700;color:#b8860b;margin:8px 0;animation:popIn .5s ease}.corgi{position:relative;display:inline-block}.corgi svg{display:block;overflow:visible}.corgi-shadow{animation:shadowPulse 2.4s ease-in-out infinite;transform-origin:center}@keyframes shadowPulse{0%,to{transform:scaleX(1);opacity:.18}50%{transform:scaleX(.82);opacity:.24}}.corgi-body{transform-origin:120px 170px;transition:transform .3s ease}.corgi-head{transform-origin:110px 120px}.corgi-belly{transform-origin:118px 150px}.corgi.action-idle .corgi-body{animation:corgiBreathe 2.8s ease-in-out infinite}@keyframes corgiBreathe{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-6px) scale(1.01,.99)}70%{transform:translateY(-8px) scale(.995,1.005)}}.corgi.action-idle .corgi-head{animation:headBob 2.8s ease-in-out infinite .15s}@keyframes headBob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(1deg)}}.corgi.action-idle .corgi-belly{animation:bellyBreathe 2.8s ease-in-out infinite}@keyframes bellyBreathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.04)}}.corgi.action-idle .corgi-eye{animation:eyeBlink 4s ease-in-out infinite;transform-origin:center}@keyframes eyeBlink{0%,92%,to{transform:scaleY(1)}94%,97%{transform:scaleY(.1)}}.corgi.action-idle .corgi-ear-l{transform-origin:70px 92px;animation:earTwitchL 5s ease-in-out infinite 1s}.corgi.action-idle .corgi-ear-r{transform-origin:150px 92px;animation:earTwitchR 5s ease-in-out infinite 2.5s}@keyframes earTwitchL{0%,to{transform:rotate(0)}8%{transform:rotate(-8deg)}16%{transform:rotate(0)}}@keyframes earTwitchR{0%,to{transform:rotate(0)}8%{transform:rotate(8deg)}16%{transform:rotate(0)}}.corgi-tail{transform-origin:168px 150px;animation:tailWag 1.1s ease-in-out infinite}@keyframes tailWag{0%,to{transform:rotate(-12deg)}50%{transform:rotate(22deg)}}.corgi-eyes-closed,.corgi-eyes-happy,.corgi-eyes-sad,.corgi-eyes-sleepy{display:none}.corgi-tongue{opacity:0;transform-origin:110px 138px;transition:opacity .2s}.corgi.action-idle.mood-happy .corgi-eyes{display:none}.corgi.action-idle.mood-happy .corgi-eyes-happy{display:block}.corgi.action-idle.mood-sad .corgi-eyes{display:none}.corgi.action-idle.mood-sad .corgi-eyes-sad{display:block}.corgi.action-idle.mood-sad .corgi-tear{animation:tearDrop 2.5s ease-in-out infinite}@keyframes tearDrop{0%,80%{opacity:0;transform:translateY(0)}90%{opacity:.8;transform:translateY(2px)}to{opacity:0;transform:translateY(8px)}}.corgi.action-idle.mood-sleepy .corgi-eyes{display:none}.corgi.action-idle.mood-sleepy .corgi-eyes-sleepy{display:block}.corgi.action-idle.mood-sleepy .corgi-head{animation:headBob 3.5s ease-in-out infinite}.corgi.action-idle.mood-sleepy .corgi-body{animation:corgiBreathe 4s ease-in-out infinite}.corgi-whiskers{animation:whiskerTwitch 4s ease-in-out infinite;transform-origin:center}@keyframes whiskerTwitch{0%,90%,to{transform:translate(0)}95%{transform:translate(1px)}}.corgi.action-eat .corgi-head{animation:corgiEat .45s ease-in-out infinite}@keyframes corgiEat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(12px) rotate(10deg)}}.corgi.action-eat .corgi-tail{animation:tailWag .5s ease-in-out infinite}.corgi.action-eat .corgi-tongue{opacity:1;animation:tongueLick .45s ease-in-out infinite}@keyframes tongueLick{0%,to{transform:scaleY(1)}50%{transform:scaleY(.5) translateY(2px)}}.corgi.action-eat .corgi-belly{animation:bellyChew .45s ease-in-out infinite}@keyframes bellyChew{0%,to{transform:scale(1)}50%{transform:scale(1.02,.98)}}.fx-eat .fx-pop{animation:fxPop 1s ease infinite}.fx-eat .fx-crumb{animation:crumbFly .6s ease-out infinite}.fx-eat .fx-crumb.c2{animation-delay:.3s}@keyframes crumbFly{0%{transform:translateY(0);opacity:1}to{transform:translateY(-12px) translate(4px);opacity:0}}.corgi.action-run .corgi-body{animation:corgiRun .3s ease-in-out infinite}@keyframes corgiRun{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-7px) rotate(-10deg)}}.corgi.action-run .corgi-leg{animation:legRun .28s ease-in-out infinite}.corgi.action-run .corgi-leg-back,.corgi.action-run .corgi-leg-front2{animation-delay:.14s}@keyframes legRun{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-10px) rotate(5deg)}}.corgi.action-run .corgi-tail{animation:tailWag .35s ease-in-out infinite}.corgi.action-run .corgi-ear-l{animation:earFly .3s ease-in-out infinite}.corgi.action-run .corgi-ear-r{animation:earFly .3s ease-in-out infinite .15s}@keyframes earFly{0%,to{transform:rotate(0)}50%{transform:rotate(15deg)}}.fx-run .fx-line{animation:speedLine .3s ease-in infinite}.fx-run .fx-line.l2{animation-delay:.1s}.fx-run .fx-line.l3{animation-delay:.05s}@keyframes speedLine{0%{transform:translate(0);opacity:.85}to{transform:translate(-20px);opacity:0}}.fx-run .fx-dust{animation:dustPuff .4s ease-out infinite}.fx-run .fx-dust.d2{animation-delay:.2s}@keyframes dustPuff{0%{transform:translateY(0);opacity:.6}to{transform:translateY(-8px) scale(.5);opacity:0}}.corgi.action-walk .corgi-body{animation:corgiWalk .9s ease-in-out infinite}@keyframes corgiWalk{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(3deg)}}.corgi.action-walk .corgi-leg{animation:legRun .9s ease-in-out infinite}.corgi.action-walk .corgi-leg-back,.corgi.action-walk .corgi-leg-front2{animation-delay:.45s}.corgi.action-walk .corgi-tail{animation:tailWag 1.2s ease-in-out infinite}.fx-walk .fx-bag{animation:bagSway .9s ease-in-out infinite;transform-origin:180px 64px}.fx-walk .fx-bag2{animation:bagSway .9s ease-in-out infinite .3s;transform-origin:200px 80px}@keyframes bagSway{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.corgi.action-bath .corgi-body{animation:corgiBath .5s ease-in-out infinite}@keyframes corgiBath{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-4px) rotate(-3deg)}75%{transform:translateY(-4px) rotate(3deg)}}.corgi.action-bath .corgi-ear-l{animation:earShake .5s ease-in-out infinite}.corgi.action-bath .corgi-ear-r{animation:earShake .5s ease-in-out infinite .25s}@keyframes earShake{0%,to{transform:rotate(0)}50%{transform:rotate(-12deg)}}.fx-bath .fx-bubble{animation:bubbleRise 2s ease-in-out infinite}.fx-bath .fx-bubble.b2{animation-delay:.4s}.fx-bath .fx-bubble.b3{animation-delay:.8s}.fx-bath .fx-bubble.b4{animation-delay:.2s}.fx-bath .fx-bubble.b5{animation-delay:.6s}@keyframes bubbleRise{0%,to{transform:translateY(0) scale(1);opacity:.9}50%{transform:translateY(-18px) scale(1.1);opacity:.4}}.fx-bath .fx-pop{animation:fxPop 1.2s ease infinite}.corgi.action-sleep .corgi-body{animation:corgiSleep 3s ease-in-out infinite;transform-origin:120px 190px}@keyframes corgiSleep{0%,to{transform:rotate(0) translateY(0) scale(1)}50%{transform:rotate(0) translateY(3px) scale(1.01,.99)}}.corgi.action-sleep .corgi-eyes{display:none}.corgi.action-sleep .corgi-eyes-closed{display:block}.corgi.action-sleep .corgi-tail{animation:tailWag 4s ease-in-out infinite}.corgi.action-sleep .corgi-ear-l{animation:earSleep 3s ease-in-out infinite}.corgi.action-sleep .corgi-ear-r{animation:earSleep 3s ease-in-out infinite 1.5s}@keyframes earSleep{0%,to{transform:rotate(0)}50%{transform:rotate(-5deg)}}.fx-sleep .fx-zzz{animation:zzzFloat 2.5s ease-in-out infinite}.fx-sleep .fx-zzz.z2{animation-delay:.8s}.fx-sleep .fx-zzz.z3{animation-delay:1.6s}@keyframes zzzFloat{0%{transform:translate(0) scale(.6);opacity:0}30%{opacity:1;transform:translate(8px,-12px) scale(1)}to{transform:translate(24px,-36px) scale(1.2);opacity:0}}.fx-sleep .fx-dream{animation:dreamFloat 4s ease-in-out infinite}@keyframes dreamFloat{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:.8}}.corgi.action-park .corgi-body{animation:corgiJump .65s ease-in-out infinite}@keyframes corgiJump{0%,to{transform:translateY(0) rotate(0) scale(1)}40%{transform:translateY(-30px) rotate(-6deg) scale(.98,1.02)}60%{transform:translateY(-30px) rotate(6deg) scale(.98,1.02)}80%{transform:translateY(0) rotate(0) scale(1.05,.95)}}.corgi.action-park .corgi-tail{animation:tailWag .4s ease-in-out infinite}.corgi.action-park .corgi-ear-l{animation:earFly .65s ease-in-out infinite}.corgi.action-park .corgi-ear-r{animation:earFly .65s ease-in-out infinite .3s}.fx-park .fx-ball{animation:ballBounce .65s ease-in-out infinite}@keyframes ballBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.fx-park .fx-fly{animation:butterflyFly 3s ease-in-out infinite}@keyframes butterflyFly{0%{transform:translate(0) rotate(0)}25%{transform:translate(-15px,-10px) rotate(-10deg)}50%{transform:translate(-8px,-20px) rotate(5deg)}75%{transform:translate(10px,-12px) rotate(8deg)}to{transform:translate(0) rotate(0)}}.corgi.action-happy .corgi-body,.corgi.action-pet .corgi-body{animation:corgiHappy .6s ease-in-out infinite}@keyframes corgiHappy{0%,to{transform:translateY(0) rotate(0) scale(1)}30%{transform:translateY(-22px) rotate(-8deg) scale(.95,1.05)}60%{transform:translateY(-22px) rotate(8deg) scale(.95,1.05)}80%{transform:translateY(0) rotate(0) scale(1.08,.92)}}.corgi.action-happy .corgi-tail,.corgi.action-pet .corgi-tail{animation:tailWag .3s ease-in-out infinite}.corgi.action-happy .corgi-ear-l,.corgi.action-pet .corgi-ear-l{animation:earFly .6s ease-in-out infinite}.corgi.action-happy .corgi-ear-r,.corgi.action-pet .corgi-ear-r{animation:earFly .6s ease-in-out infinite .3s}.corgi.action-happy .corgi-eye,.corgi.action-pet .corgi-eye{animation:happyEye .6s ease-in-out infinite}@keyframes happyEye{0%,to{transform:scaleY(1)}50%{transform:scaleY(.6)}}.fx-happy .fx-heart{animation:heartFloat 1.4s ease-in-out infinite}.fx-happy .fx-heart.h2{animation-delay:.35s}.fx-happy .fx-heart.h3{animation-delay:.7s}.fx-happy .fx-heart.h4{animation-delay:1.05s}@keyframes heartFloat{0%{transform:translateY(0) scale(.5);opacity:0}25%{opacity:1;transform:translateY(-8px) scale(1)}to{transform:translateY(-34px) scale(1.3);opacity:0}}.fx-happy .fx-sparkle{animation:sparkleSpin 1.2s ease-in-out infinite;transform-origin:center}.fx-happy .fx-sparkle.s2{animation-delay:.6s}@keyframes sparkleSpin{0%,to{transform:rotate(0) scale(.8);opacity:.5}50%{transform:rotate(180deg) scale(1.3);opacity:1}}@keyframes fxPop{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.decor-hat,.decor-scarf,.decor-collar{pointer-events:none}@media (max-width: 560px){.stat-grid{grid-template-columns:repeat(2,1fr)}.action-grid{grid-template-columns:repeat(3,1fr)}.hub-row{grid-template-columns:1fr}}.btn-read{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:10px;flex-shrink:0;background:#fff;border:3px solid #d9cfff;border-radius:50%;font-size:20px;cursor:pointer;font-family:inherit;vertical-align:middle;transition:transform .12s;box-shadow:0 3px #0000001a}.btn-read:active{transform:scale(.9)}.question-prompt{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px}@media (min-width: 768px){.home,.login,.pet-screen,.shop-screen{max-width:900px;padding-left:32px;padding-right:32px}.logo-emoji{font-size:80px}.logo-title{font-size:56px;letter-spacing:6px}.logo-sub{font-size:20px}.hub-card{padding:28px 18px}.hub-emoji{font-size:60px}.hub-name{font-size:26px}.subject-grid{grid-template-columns:repeat(4,1fr);gap:22px}.subject-emoji{font-size:56px}.subject-name{font-size:24px}.room-floor{min-height:340px}.corgi-stage .corgi{width:280px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px}.action-grid{grid-template-columns:repeat(6,1fr);gap:14px}.action-emoji{font-size:36px}.action-label{font-size:15px}.shop-items{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.shop-item-emoji{font-size:40px}.question-big-emoji,.question-big-char{font-size:120px}.question-big-math{font-size:72px}.question-poem .poem-title{font-size:30px}.question-poem .poem-line{font-size:32px}.option{font-size:26px;padding:18px 10px}}@media (min-width: 1024px){.home,.login,.pet-screen,.shop-screen{max-width:1040px}.subject-grid{gap:26px}.login-input{font-size:20px}.room-stage{border-radius:26px}.room-floor{min-height:380px}.corgi-stage .corgi{width:300px}}@media (min-width: 1024px) and (orientation: landscape){.pet-screen .room-stage{max-height:52vh;overflow:hidden}.room-floor{min-height:44vh}}@supports (padding: max(0px)){.home,.login,.pet-screen,.shop-screen,.battle{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(40px,env(safe-area-inset-bottom))}.pet-top,.battle-top{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}}.eye-care-warn,.eye-care-rest{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#3a2e5773;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.eye-care-warn-card,.eye-care-rest-card{background:var(--card);border-radius:28px;padding:36px 32px;text-align:center;max-width:340px;box-shadow:0 12px 40px #0003;animation:popIn .4s ease;border:4px solid #b2f2bb}.eye-care-rest-card{border-color:#69db7c}.eye-care-emoji,.eye-care-rest-emoji{font-size:64px;animation:bounce 2s ease-in-out infinite}.eye-care-title,.eye-care-rest-title{font-size:var(--fs-xl);font-weight:900;color:var(--ink);margin-top:12px}.eye-care-text,.eye-care-rest-text{font-size:var(--fs-md);color:#7a6aa5;margin-top:10px;line-height:1.6}.eye-care-btn{margin-top:20px;background:var(--brand-good);color:#fff;border:none;border-radius:999px;padding:14px 36px;font-size:var(--fs-lg);font-weight:900;cursor:pointer;font-family:inherit;box-shadow:0 5px #2b8a3e;min-height:var(--touch-min);min-width:160px}.eye-care-btn:active{transform:translateY(3px);box-shadow:0 2px #2b8a3e}.eye-care-rest-circle{width:100px;height:100px;border-radius:50%;margin:20px auto 8px;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:900;color:#fff;background:linear-gradient(135deg,#51cf66,#40c057);box-shadow:0 6px 20px #41b85866}.eye-care-rest-hint{font-size:var(--fs-sm);color:#adb5bd}@media (pointer: coarse){button,.option,.action-btn,.subject-card,.hub-card,.user-chip,.level-card,.btn-record,.btn-back{min-height:var(--touch-min)}.btn-back,.btn-logout,.btn-read{min-width:44px;min-height:44px}.subject-card:hover,.hub-card:hover,.user-chip:hover{transform:none}}@media (pointer: coarse){.subject-card,.hub-card,.corgi-stage,.room-toy,.logo-emoji{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}@media (pointer: fine) and (hover: hover){.subject-card:hover{transform:translateY(-6px) scale(1.02)}.hub-card:hover{transform:translateY(-5px) rotate(-1deg)}.user-chip:hover{transform:translateY(-3px)}.action-btn:hover:not(:disabled){transform:translateY(-3px)}.btn:hover{filter:brightness(1.06)}.btn-buy:hover,.btn-equip:hover{filter:brightness(1.08)}.option:hover:not(:disabled){transform:translateY(-2px)}.btn-read:hover{transform:scale(1.1)}}@media (min-width: 1280px){.home,.login,.pet-screen,.shop-screen{max-width:1100px}}.logo-title{-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}body{background:-webkit-linear-gradient(160deg,var(--bg1) 0%,#c9f0ff 40%,var(--bg2) 100%)}.login-input,button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;overflow:hidden}.celebration-star{position:absolute;top:-30px;animation:starFall linear forwards}@keyframes starFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(360deg);opacity:0}}.celebration-confetti{position:absolute;top:-20px;width:10px;height:14px;border-radius:2px;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.celebration-firework{position:absolute;top:50%;border-radius:50%;animation:fireworkBurst linear forwards}@keyframes fireworkBurst{0%{transform:translate(0) scale(0);opacity:1}50%{opacity:1}to{transform:translate(var(--tx, 0),50vh) scale(1.5);opacity:0}}.celebration-combo-text{position:absolute;top:30%;left:50%;transform:translate(-50%);text-align:center;animation:comboPop 1s ease}.combo-num{display:block;font-size:72px;font-weight:900;color:#ff6b6b;text-shadow:4px 4px 0 #fff,-2px -2px 0 #fff;animation:comboNumPulse .5s ease}.combo-label{display:block;font-size:24px;font-weight:700;color:#ff922b}@keyframes comboPop{0%{transform:translate(-50%) scale(0)}40%{transform:translate(-50%) scale(1.3)}70%{transform:translate(-50%) scale(1)}to{transform:translate(-50%) scale(1);opacity:0}}@keyframes comboNumPulse{0%{transform:scale(0)}50%{transform:scale(1.5)}to{transform:scale(1)}}.celebration-win-text{position:absolute;top:20%;left:50%;transform:translate(-50%);font-size:36px;font-weight:900;color:#fff;text-shadow:3px 3px 0 #ff6b6b;animation:winTextPop 1.5s ease}@keyframes winTextPop{0%{transform:translate(-50%) scale(0) rotate(-10deg)}30%{transform:translate(-50%) scale(1.2) rotate(5deg)}50%{transform:translate(-50%) scale(1) rotate(0)}to{opacity:0}}.monster-emoji{font-size:80px;line-height:1;animation:monsterIdle 2s ease-in-out infinite;transition:transform .2s}.monster-emoji.boss{font-size:110px;filter:drop-shadow(0 0 12px rgba(255,100,100,.5))}.monster-emoji.hurt{animation:monsterHurt .4s ease}.monster-emoji.attacking{animation:monsterAttack .4s ease}.monster-emoji.fainted{animation:monsterFaint .6s ease forwards}@keyframes monsterIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes monsterHurt{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes monsterAttack{0%{transform:translate(0)}50%{transform:translate(-20px) scale(1.1)}to{transform:translate(0)}}@keyframes monsterFaint{0%{transform:rotate(0) translateY(0);opacity:1}to{transform:rotate(90deg) translateY(20px);opacity:.3}}.boss-banner{text-align:center;background:#ff6b6b26;border:2px solid #ff6b6b;border-radius:12px;padding:8px 16px;margin-bottom:10px;font-weight:700;color:#c92a2a;animation:bossBlink 1s ease-in-out infinite}@keyframes bossBlink{0%,to{opacity:1}50%{opacity:.6}}.pet-level-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.pet-level-badge{background:linear-gradient(90deg,#fcc419,#f59f00);color:#fff;font-weight:900;font-size:16px;padding:4px 14px;border-radius:999px;box-shadow:0 3px #d9930a}.pet-exp-track{flex:1;height:14px;background:#00000014;border-radius:999px;overflow:hidden}.pet-exp-fill{height:100%;background:linear-gradient(90deg,#51cf66,#2b8a3e);border-radius:999px;transition:width .6s ease}.pet-exp-text{font-size:13px;color:#7a6f95;font-weight:700;white-space:nowrap}.night-overlay{position:absolute;top:8px;right:10px;background:#5c7cfacc;color:#fff;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.corgi-pajamas{animation:corgiIdle 2.4s ease-in-out infinite .2s}.egg-bubble{position:absolute;left:50%;top:-30px;transform:translate(-50%);background:#fff3d6;border:3px solid #ffd43b;border-radius:18px;padding:8px 16px;font-size:15px;font-weight:700;color:#b8860b;white-space:nowrap;animation:popIn .3s ease,eggShake .5s ease-in-out 3;z-index:6}@keyframes eggShake{0%,to{transform:translate(-50%) rotate(0)}25%{transform:translate(-50%) rotate(-3deg)}75%{transform:translate(-50%) rotate(3deg)}}.checkin-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.checkin-box{background:#fff;border-radius:24px;padding:28px 24px;max-width:360px;width:90%;text-align:center;box-shadow:0 20px 60px #0000004d;animation:popIn .4s ease}.checkin-title{font-size:24px;font-weight:900;color:#5a4a8a;margin-bottom:8px}.checkin-streak{font-size:16px;color:#7a6f95;margin-bottom:16px}.checkin-wheel-wrap{position:relative;width:220px;height:220px;margin:0 auto 16px}.checkin-wheel{width:100%;height:100%;border-radius:50%;border:6px solid #ffd43b;position:relative;box-shadow:0 0 0 4px #fff,0 8px 20px #00000026}.wheel-slice{position:absolute;top:0;left:50%;width:2px;height:50%;transform-origin:bottom center}.wheel-prize{position:absolute;top:20px;left:-20px;font-size:16px;font-weight:700;white-space:nowrap}.wheel-pointer{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:28px;color:#ff6b6b;z-index:5;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.checkin-hint{font-size:13px;color:#7a6f95;margin-bottom:16px}.btn-spin{background:linear-gradient(90deg,#ff6b6b,#ff922b);color:#fff;border:none;border-radius:999px;padding:14px 36px;font-size:18px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 5px #e8590c}.btn-spin:active{transform:scale(.95)}.btn-spin:disabled{opacity:.6}.checkin-close{background:none;border:none;color:#7a6f95;font-size:14px;cursor:pointer;font-family:inherit;margin-top:12px}.checkin-result{animation:popIn .4s ease}.checkin-result-emoji{font-size:56px;margin-bottom:8px}.checkin-result-text{font-size:22px;font-weight:900;color:#51cf66}.checkin-result-reward{font-size:28px;font-weight:900;color:#b8860b;margin:8px 0}.checkin-result-streak{font-size:16px;color:#7a6f95}.checkin-result-bonus{background:#fff3d6;border:2px solid #ffd43b;border-radius:12px;padding:8px 16px;margin:10px 0;font-weight:700;color:#b8860b}.badge-wall{max-width:760px;margin:0 auto;padding:16px 16px 60px;position:relative;z-index:1}.badge-hint{text-align:center;font-size:14px;color:#7a6f95;margin-bottom:16px}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}.badge-card{background:var(--card);border:3px solid #e6dcff;border-radius:16px;padding:16px 12px;text-align:center;transition:transform .15s}.badge-card.unlocked{border-color:#ffd43b;background:linear-gradient(180deg,#fffbe6,#fff9db);box-shadow:0 4px 12px #ffd43b33}.badge-card.locked{opacity:.55}.badge-emoji{font-size:40px;margin-bottom:6px}.badge-card.unlocked .badge-emoji{animation:badgeShine 2s ease-in-out infinite}@keyframes badgeShine{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.badge-name{font-size:15px;font-weight:700;color:#5a4a8a}.badge-desc{font-size:12px;color:#7a6f95;margin-top:4px;line-height:1.4}.badge-status{display:inline-block;margin-top:6px;background:#d3f9d8;color:#2b8a3e;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700}.egg-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .3s ease}.egg-box{background:#fff;border-radius:24px;padding:32px 28px;text-align:center;animation:eggRumble .6s ease,popIn .4s ease}@keyframes eggRumble{0%,to{transform:translate(0)}20%{transform:translate(-8px) rotate(-2deg)}40%{transform:translate(8px) rotate(2deg)}60%{transform:translate(-6px) rotate(-1deg)}80%{transform:translate(6px) rotate(1deg)}}.egg-emoji{font-size:64px;margin-bottom:12px;animation:eggShake .5s ease-in-out 3}.egg-text{font-size:20px;font-weight:700;color:#5a4a8a}.hub-row{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:24px}.hub-checkin{border-color:#74c0fc;color:#1971c2}.hub-checkin.has-new{animation:checkinPulse 1.5s ease-in-out infinite;border-color:#ff6b6b}@keyframes checkinPulse{0%,to{transform:scale(1)}50%{transform:scale(1.03);box-shadow:0 0 0 6px #ff6b6b26}}.total-streak{display:inline-block;background:#ffe8e8;border:3px solid #ff6b6b;border-radius:999px;padding:8px 18px;font-size:16px;font-weight:700;color:#c92a2a}.result-combo{font-size:18px;font-weight:700;color:#ff6b6b;margin:6px 0}.result-badges{margin:10px 0}.result-badge{background:#fff3d6;border:2px solid #ffd43b;border-radius:12px;padding:6px 14px;margin:4px 0;font-weight:700;color:#b8860b;animation:popIn .5s ease}.level-map{max-width:780px;margin:0 auto;padding:16px 16px 50px}.level-map-top{display:flex;align-items:center;gap:12px;margin-bottom:18px}.level-map-title{font-size:22px;font-weight:900;color:var(--ink);display:flex;align-items:center;gap:8px}.level-map-emoji{font-size:28px}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.level-card{background:var(--card);border:4px solid #e6dcff;border-radius:var(--radius);padding:16px 14px;text-align:center;cursor:pointer;font-family:inherit;position:relative;transition:transform .15s,box-shadow .15s;min-height:44px;box-shadow:0 6px #0000000f}.level-card:active{transform:translateY(3px);box-shadow:0 3px #0000000f}.level-card.unlocked{border-color:var(--subject-color, #ff922b)}.level-card.completed{border-color:#69db7c;background:#f8fff8}.level-card.locked{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.level-num{width:48px;height:48px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;color:#fff;background:var(--subject-color, #ff922b)}.level-card.completed .level-num{background:#51cf66}.level-check{font-size:24px}.level-card-title{font-size:17px;font-weight:900;color:var(--ink);margin-bottom:4px}.level-card-desc{font-size:13px;color:#868e96;line-height:1.4}.level-stars{font-size:16px;margin-top:6px;letter-spacing:2px}.level-play{font-size:13px;font-weight:700;color:var(--subject-color, #ff922b);margin-top:6px}.level-lock{font-size:13px;color:#adb5bd;margin-top:6px}.level-map-story{padding-bottom:40px}.story-progress{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:0 4px}.story-progress-bar{flex:1;background:#00000014;border-radius:999px;height:16px;overflow:hidden}.story-progress-fill{height:100%;background:linear-gradient(90deg,#69db7c,#51cf66);border-radius:999px;transition:width .5s ease}.story-progress-text{font-size:var(--fs-sm);font-weight:700;color:#5a4a8a;white-space:nowrap}.story-path{position:relative;padding:8px 0}.story-start,.story-end{text-align:center;margin:8px 0 18px}.story-start-flag,.story-end-trophy{font-size:44px;display:block;animation:bounce 2s ease-in-out infinite}.story-start-text,.story-end-text{font-size:var(--fs-md);font-weight:700;color:#5a4a8a}.story-chapter{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px auto 14px;padding:10px 24px;border-radius:999px;width:fit-content;border:3px solid rgba(255,255,255,.8);box-shadow:0 4px #0000000f}.story-chapter-emoji{font-size:28px}.story-chapter-name{font-size:var(--fs-lg);font-weight:900;color:#5a4a8a}.story-row{position:relative;display:flex;margin-bottom:8px}.story-row-left{justify-content:flex-start}.story-row-right{justify-content:flex-end}.story-connector{position:absolute;top:-8px;bottom:-8px;width:4px;background:repeating-linear-gradient(to bottom,var(--subject-color, #ff922b) 0 8px,transparent 8px 16px);opacity:.5}.story-row-left .story-connector{left:50%;transform:translate(-50%)}.story-row-right .story-connector{right:50%;transform:translate(50%)}.story-node{position:relative;display:flex;align-items:center;gap:14px;background:var(--card);border:4px solid #e6dcff;border-radius:var(--radius);padding:14px 18px;cursor:pointer;font-family:inherit;width:78%;max-width:340px;box-shadow:0 6px #0000000f;transition:transform .15s,box-shadow .15s;animation:popIn .4s ease backwards}.story-row-left .story-node{border-top-left-radius:8px;border-bottom-left-radius:8px}.story-row-right .story-node{border-top-right-radius:8px;border-bottom-right-radius:8px;flex-direction:row-reverse;text-align:right}.story-node:active{transform:translateY(3px);box-shadow:0 3px #0000000f}.story-node.unlocked{border-color:var(--subject-color, #ff922b)}.story-node.completed{border-color:#69db7c;background:#f8fff8}.story-node.locked{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.story-node.current{border-color:var(--brand-celebrate);box-shadow:0 6px #f59f00;animation:popIn .4s ease,storyPulse 1.8s ease-in-out infinite .4s}@keyframes storyPulse{0%,to{box-shadow:0 6px #f59f00,0 0 #ffd43b66}50%{box-shadow:0 6px #f59f00,0 0 0 10px #ffd43b00}}.story-scene-emoji{position:absolute;top:-18px;font-size:32px;opacity:.85}.story-row-left .story-scene-emoji{right:-8px}.story-row-right .story-scene-emoji{left:-8px}.story-level-circle{width:52px;height:52px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl);font-weight:900;color:#fff;background:var(--subject-color, #ff922b);box-shadow:0 3px #00000026}.story-node.completed .story-level-circle{background:#51cf66}.story-check{font-size:26px}.story-guide{position:absolute;top:-22px;left:50%;transform:translate(-50%);font-size:32px;animation:bounce 1s ease-in-out infinite;z-index:3}.story-info{flex:1;min-width:0}.story-title{font-size:var(--fs-md);font-weight:900;color:var(--ink);margin-bottom:2px}.story-desc{font-size:var(--fs-xs);color:#868e96;line-height:1.4}.story-stars{font-size:var(--fs-sm);margin-top:4px;letter-spacing:2px}.story-play{font-size:var(--fs-xs);font-weight:700;color:var(--subject-color, #ff922b);margin-top:4px}.story-lock{font-size:var(--fs-xs);color:#adb5bd;margin-top:4px}@media (min-width: 768px){.badge-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.hub-row{grid-template-columns:repeat(4,1fr)}.monster-emoji{font-size:100px}.monster-emoji.boss{font-size:130px}}@media (max-width: 560px){.hub-row{grid-template-columns:repeat(2,1fr);gap:10px}.hub-emoji{font-size:38px}.hub-name{font-size:16px}.hub-desc{font-size:11px}}.room-stage>div[class*=scene-bg],.room-stage>div:first-child{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;animation:sceneFadeIn .5s ease}@keyframes sceneFadeIn{0%{opacity:0}to{opacity:1}}.room-floor{position:relative;z-index:1}.cloud{animation:cloudDrift 20s linear infinite}@keyframes cloudDrift{0%{transform:translate(-20px)}to{transform:translate(420px)}}.twinkle{animation:twinkle 2s ease-in-out infinite}.twinkle:nth-child(2){animation-delay:.5s}.twinkle:nth-child(3){animation-delay:1s}.twinkle:nth-child(4){animation-delay:1.5s}.twinkle:nth-child(5){animation-delay:.3s}.twinkle:nth-child(6){animation-delay:.8s}.twinkle:nth-child(7){animation-delay:1.3s}.twinkle:nth-child(8){animation-delay:1.8s}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:1}}.corgi-fur-texture{transform-origin:118px 150px}@keyframes floatSparkle{0%,to{transform:translateY(0) rotate(0) scale(1);opacity:.6}50%{transform:translateY(-18px) rotate(15deg) scale(1.15);opacity:1}}@keyframes floatPaw{0%,to{transform:translateY(0) rotate(-8deg);opacity:.4}50%{transform:translateY(-12px) rotate(8deg);opacity:.7}}@keyframes rainbowSweep{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.story-progress-fill{background:linear-gradient(90deg,#ff6b9d,#cc5de8,#4dabf7,#51cf66,#ffd43b,#ff6b9d);background-size:200% 100%;animation:rainbowSweep 3s ease infinite}.login{background:linear-gradient(180deg,#ffd6ecb3,#e8d5ffb3,#d0ebffb3);border-radius:24px}.story-node.unlocked:hover{border-color:#f783ac!important;box-shadow:0 8px #f783ac33,0 0 20px #f783ac26!important}.story-chapter{border:3px solid transparent;background-image:linear-gradient(#fff,#fff),linear-gradient(90deg,#ff6b9d,#cc5de8,#4dabf7);background-origin:border-box;background-clip:padding-box,border-box}.hub-checkin{border-color:#b3d9ff;color:#1971c2}.hub-badge{border-color:#ffd43b;color:#b8860b}.hub-card:hover{box-shadow:0 12px #0000000f,0 0 24px #f783ac1f}.daily-header{background:linear-gradient(90deg,#f783ac,#cc5de8)!important}.daily-item{background:#fef5fb!important;border-color:#f3d9ff!important}.daily-item.ready{border-color:var(--brand-celebrate)!important;background:#fff0f6!important}.result.win{border-color:#f783ac!important}.result.lose{border-color:#d0ebff!important}.option:hover:not(:disabled){background:#fef0f6!important}.shop-tab.active{background:#e64980!important;border-color:#c2256b!important}.shop-item.equipped{border-color:#51cf66;background:#f0fff4}.btn-buy{background:linear-gradient(90deg,#f783ac,#e64980)!important;box-shadow:0 4px #c2256b!important}.action-btn{border-color:#f3d9ff!important}.action-btn:hover:not(:disabled){background:#fef0f6!important}.room-stage{border-color:#fff!important}.stat-item{border-color:#f3d9ff!important}.capy2d{display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none}.capy2d-svg{width:100%;height:100%;overflow:visible}.capy2d--idle .capy-body-group{animation:capyBreathe 3s ease-in-out infinite;transform-origin:100px 130px}@keyframes capyBreathe{0%,to{transform:scaleY(1) scaleX(1) translateY(0)}50%{transform:scaleY(1.06) scaleX(.97) translateY(-3px)}}.capy2d--idle .capy-head-group{animation:capyHeadIdle 5s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyHeadIdle{0%,to{transform:rotate(0) translateY(0)}25%{transform:rotate(-4deg) translateY(-1px)}75%{transform:rotate(3deg) translateY(-1px)}}.capy2d--idle .capy-ears{animation:capyEarWiggle 3.5s ease-in-out infinite;transform-origin:100px 72px}@keyframes capyEarWiggle{0%,70%,to{transform:rotate(0)}80%{transform:rotate(-6deg)}90%{transform:rotate(4deg)}}.capy2d--idle .capy-tail{animation:capyTailWag 2.5s ease-in-out infinite;transform-origin:150px 140px}@keyframes capyTailWag{0%,to{transform:rotate(0)}50%{transform:rotate(12deg)}}.capy2d--idle .capy-nostril-l{animation:capyTwitchL 3s ease-in-out infinite}.capy2d--idle .capy-nostril-r{animation:capyTwitchR 3s ease-in-out infinite}@keyframes capyTwitchL{0%,85%,to{rx:4}92%{rx:2}}@keyframes capyTwitchR{0%,85%,to{rx:4}92%{rx:5.5}}.capy2d--eat .capy-body-group{animation:capyChewBody .35s cubic-bezier(.34,1.56,.64,1) infinite;transform-origin:100px 130px}@keyframes capyChewBody{0%,to{transform:scaleY(1) scaleX(1) translateY(0)}50%{transform:scaleY(.94) scaleX(1.05) translateY(2px)}}.capy2d--eat .capy-head-group{animation:capyChewHead .35s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyChewHead{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(3px) rotate(-2deg)}}.capy2d--eat .capy-cheeks{animation:capyCheekPuff .35s ease-in-out infinite}@keyframes capyCheekPuff{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.capy2d--eat .capy-mouth{animation:capyChewMouth .35s ease-in-out infinite}@keyframes capyChewMouth{0%,to{transform:scaleY(1)}50%{transform:scaleY(.3)}}.capy2d--eat .crumb{animation:crumbExplode .5s cubic-bezier(.22,1,.36,1) infinite}.capy2d--eat .c1{animation-delay:0s;--tx: 20px;--ty: -25px}.capy2d--eat .c2{animation-delay:.12s;--tx: -18px;--ty: -20px}.capy2d--eat .c3{animation-delay:.24s;--tx: 25px;--ty: -15px}.capy2d--eat .c4{animation-delay:.36s;--tx: -22px;--ty: -22px}.capy2d--eat .c5{animation-delay:.48s;--tx: 15px;--ty: -28px}@keyframes crumbExplode{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx, 20px),var(--ty, -25px)) scale(.3);opacity:0}}.capy2d--eat .food-icon{animation:foodBounce .7s ease-in-out infinite;transform-origin:center}@keyframes foodBounce{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(15deg)}}.capy2d--run .capy-body-group{animation:capyRunBody .25s cubic-bezier(.4,0,.2,1) infinite;transform-origin:100px 130px}@keyframes capyRunBody{0%,to{transform:translateY(0) scaleY(1) scaleX(1) rotate(-4deg)}50%{transform:translateY(-10px) scaleY(1.08) scaleX(.94) rotate(4deg)}}.capy2d--run .capy-head-group{animation:capyRunHead .25s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyRunHead{0%,to{transform:rotate(8deg) translateY(-3px)}50%{transform:rotate(-5deg) translateY(-8px)}}.capy2d--run .capy-ears{animation:capyEarFly .25s ease-in-out infinite;transform-origin:100px 72px}@keyframes capyEarFly{0%,to{transform:rotate(20deg)}50%{transform:rotate(-15deg)}}.capy2d--run .capy-legs-back{animation:capyRunLegsBack .25s ease-in-out infinite;transform-origin:100px 155px}@keyframes capyRunLegsBack{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-8px) scaleY(.5)}}.capy2d--run .capy-legs-front{animation:capyRunLegsFront .25s ease-in-out infinite;transform-origin:100px 160px}@keyframes capyRunLegsFront{0%,to{transform:translateY(-6px) scaleY(.6)}50%{transform:translateY(0) scaleY(1)}}.capy2d--run .capy-tail{animation:capyTailRun .25s ease-in-out infinite;transform-origin:150px 140px}@keyframes capyTailRun{0%,to{transform:rotate(-20deg)}50%{transform:rotate(25deg)}}.capy2d--run .speed{animation:speedDash .25s linear infinite}.capy2d--run .l1{animation-delay:0s}.capy2d--run .l2{animation-delay:.06s}.capy2d--run .l3{animation-delay:.12s}.capy2d--run .l4{animation-delay:.18s}@keyframes speedDash{0%{opacity:0;transform:translate(-5px)}40%{opacity:1}to{opacity:0;transform:translate(25px)}}.capy2d--run .dust{animation:dustFly .5s ease-out infinite}.capy2d--run .du1{animation-delay:0s}.capy2d--run .du2{animation-delay:.15s}.capy2d--run .du3{animation-delay:.3s}.capy2d--run .du4{animation-delay:.45s}@keyframes dustFly{0%{transform:translate(0) scale(.5);opacity:.8}to{transform:translate(-20px,-25px) scale(2);opacity:0}}.capy2d--walk .capy-body-group{animation:capyWalkBody .7s ease-in-out infinite;transform-origin:100px 130px}@keyframes capyWalkBody{0%,to{transform:translateY(0) rotate(-3deg) scaleY(1)}25%{transform:translateY(-5px) rotate(0) scaleY(1.04)}50%{transform:translateY(0) rotate(3deg) scaleY(1)}75%{transform:translateY(-5px) rotate(0) scaleY(1.04)}}.capy2d--walk .capy-head-group{animation:capyWalkHead .7s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyWalkHead{0%,to{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(5deg) translateY(-3px)}}.capy2d--walk .capy-tail{animation:capyTailWalk .7s ease-in-out infinite;transform-origin:150px 140px}@keyframes capyTailWalk{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}.capy2d--walk .capy-legs-back{animation:capyWalkLegsBack .7s ease-in-out infinite;transform-origin:100px 155px}@keyframes capyWalkLegsBack{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.capy2d--walk .capy-legs-front{animation:capyWalkLegsFront .7s ease-in-out infinite;transform-origin:100px 160px}@keyframes capyWalkLegsFront{0%,to{transform:translateY(-4px)}50%{transform:translateY(0)}}.capy2d--walk .grass{animation:grassSway 1s ease-in-out infinite}.capy2d--walk .g1{animation-delay:0s}.capy2d--walk .g2{animation-delay:.3s}@keyframes grassSway{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.capy2d--bath .capy-body-group{animation:capyBathScrub .8s ease-in-out infinite;transform-origin:100px 130px}@keyframes capyBathScrub{0%,to{transform:rotate(-3deg) translateY(0)}25%{transform:rotate(2deg) translateY(-2px) scaleY(1.03)}75%{transform:rotate(-2deg) translateY(-2px) scaleY(1.03)}}.capy2d--bath .capy-head-group{animation:capyBathHead .8s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyBathHead{0%,to{transform:rotate(4deg)}50%{transform:rotate(-4deg) translateY(-2px)}}.capy2d--bath .bubble{animation:bubbleRise 2.5s cubic-bezier(.22,1,.36,1) infinite}.capy2d--bath .b1{animation-delay:0s}.capy2d--bath .b2{animation-delay:.3s}.capy2d--bath .b3{animation-delay:.6s}.capy2d--bath .b4{animation-delay:.9s}.capy2d--bath .b5{animation-delay:1.2s}.capy2d--bath .b6{animation-delay:1.5s}.capy2d--bath .b7{animation-delay:1.8s}.capy2d--bath .b8{animation-delay:2.1s}@keyframes bubbleRise{0%{transform:translateY(0) translate(0) scale(.4);opacity:0}10%{opacity:.9}50%{transform:translateY(-25px) translate(8px) scale(1)}to{transform:translateY(-50px) translate(-5px) scale(1.3);opacity:0}}.capy2d--bath .water-drops .drop{animation:dropFly 1s ease-out infinite}.capy2d--bath .d1{animation-delay:0s}.capy2d--bath .d2{animation-delay:.3s}.capy2d--bath .d3{animation-delay:.6s}@keyframes dropFly{0%{transform:translateY(0) scale(0);opacity:1}50%{transform:translateY(-20px) scale(1.2);opacity:.8}to{transform:translateY(15px) scale(.5);opacity:0}}.capy2d--bath .rubber-duck{animation:duckFloat 2s ease-in-out infinite}@keyframes duckFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-4px) rotate(5deg)}}.capy2d--sleep .capy-body-group{animation:capySleepBreath 4s ease-in-out infinite;transform-origin:100px 130px}@keyframes capySleepBreath{0%,to{transform:scaleY(1) scaleX(1) translateY(0)}50%{transform:scaleY(1.08) scaleX(.96) translateY(2px)}}.capy2d--sleep .capy-head-group{animation:capySleepHead 4s ease-in-out infinite;transform-origin:100px 90px}@keyframes capySleepHead{0%,to{transform:rotate(-8deg) translateY(2px)}50%{transform:rotate(-5deg) translateY(4px)}}.capy2d--sleep .snot-bubble{animation:snotBubble 3s ease-in-out infinite;transform-origin:100px 115px}@keyframes snotBubble{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.4);opacity:.5}}.capy2d--sleep .zz{animation:zzzFloat 2.5s ease-out infinite}.capy2d--sleep .z1{animation-delay:0s}.capy2d--sleep .z2{animation-delay:.5s}.capy2d--sleep .z3{animation-delay:1s}.capy2d--sleep .z4{animation-delay:1.5s}@keyframes zzzFloat{0%{transform:translate(0) scale(.6) rotate(0);opacity:0}20%{opacity:1}to{transform:translate(20px,-35px) scale(1.3) rotate(10deg);opacity:0}}.capy2d--sleep .dream-star{animation:dreamTwinkle 2s ease-in-out infinite}.capy2d--sleep .ds1{animation-delay:0s}.capy2d--sleep .ds2{animation-delay:.7s}@keyframes dreamTwinkle{0%,to{transform:scale(.8) rotate(0);opacity:.3}50%{transform:scale(1.3) rotate(180deg);opacity:1}}.capy2d--happy .capy-body-group{animation:capyHappyBounce .45s cubic-bezier(.28,.84,.42,1) infinite;transform-origin:100px 130px}@keyframes capyHappyBounce{0%,to{transform:translateY(0) scaleY(.8) scaleX(1.15) rotate(0)}20%{transform:translateY(-25px) scaleY(1.15) scaleX(.9) rotate(-5deg)}50%{transform:translateY(-15px) scaleY(1) scaleX(1) rotate(0)}80%{transform:translateY(0) scaleY(.85) scaleX(1.1) rotate(3deg)}}.capy2d--happy .capy-head-group{animation:capyHappyHead .45s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyHappyHead{0%,to{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(8deg) translateY(-8px)}}.capy2d--happy .capy-ears{animation:capyEarHappy .45s ease-in-out infinite;transform-origin:100px 72px}@keyframes capyEarHappy{0%,to{transform:rotate(0)}50%{transform:rotate(-20deg)}}.capy2d--happy .capy-tail{animation:capyTailHappy .45s ease-in-out infinite;transform-origin:150px 140px}@keyframes capyTailHappy{0%,to{transform:rotate(-30deg)}50%{transform:rotate(30deg)}}.capy2d--happy .sparkle{animation:sparkleSpin 1s linear infinite}.capy2d--happy .s1{animation-delay:0s}.capy2d--happy .s2{animation-delay:.15s}.capy2d--happy .s3{animation-delay:.3s}.capy2d--happy .s4{animation-delay:.45s}.capy2d--happy .s5{animation-delay:.6s}@keyframes sparkleSpin{0%{transform:rotate(0) scale(.5);opacity:.3}50%{transform:rotate(180deg) scale(1.5);opacity:1}to{transform:rotate(360deg) scale(.5);opacity:.3}}.capy2d--happy .confetti{animation:confettiFall 1.5s ease-in infinite}.capy2d--happy .cf1{animation-delay:0s;--cx: 30px}.capy2d--happy .cf2{animation-delay:.3s;--cx: -25px}.capy2d--happy .cf3{animation-delay:.6s;--cx: 35px}.capy2d--happy .cf4{animation-delay:.9s;--cx: -30px}@keyframes confettiFall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--cx, 20px),60px) rotate(720deg);opacity:0}}.capy2d--happy .rainbow{animation:rainbowFade 1s ease-in-out infinite}.capy2d--happy .r1{animation-delay:0s}.capy2d--happy .r2{animation-delay:.2s}.capy2d--happy .r3{animation-delay:.4s}@keyframes rainbowFade{0%,to{opacity:.15}50%{opacity:.5}}.capy2d--happy .capy-blush-l,.capy2d--happy .capy-blush-r{animation:blushPulse .6s ease-in-out infinite}@keyframes blushPulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.capy2d--park .capy-body-group{animation:capyParkSway .8s ease-in-out infinite;transform-origin:100px 130px}@keyframes capyParkSway{0%,to{transform:rotate(-5deg) translateY(0) scaleY(1)}50%{transform:rotate(5deg) translateY(-5px) scaleY(1.04)}}.capy2d--park .capy-head-group{animation:capyParkHead .8s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyParkHead{0%,to{transform:rotate(6deg) translateY(0)}50%{transform:rotate(-6deg) translateY(-3px)}}.capy2d--park .capy-tail{animation:capyTailPark .6s ease-in-out infinite;transform-origin:150px 140px}@keyframes capyTailPark{0%,to{transform:rotate(-20deg)}50%{transform:rotate(25deg)}}.capy2d--park .flower{animation:flowerSway 1.2s ease-in-out infinite}.capy2d--park .f1{animation-delay:0s}.capy2d--park .f2{animation-delay:.3s}.capy2d--park .f3{animation-delay:.5s}.capy2d--park .f4{animation-delay:.7s}@keyframes flowerSway{0%,to{transform:rotate(-12deg) scale(1)}50%{transform:rotate(12deg) scale(1.1)}}.capy2d--park .butterfly{animation:butterflyFly 2s ease-in-out infinite}.capy2d--park .bt1{animation-delay:0s}.capy2d--park .bt2{animation-delay:.5s}@keyframes butterflyFly{0%,to{transform:translate(0) rotate(0) scale(1)}25%{transform:translate(15px,-10px) rotate(10deg) scale(1.1)}50%{transform:translate(5px,-20px) rotate(-5deg) scale(.9)}75%{transform:translate(-10px,-12px) rotate(15deg) scale(1.05)}}.capy2d--park .grass{animation:grassSway 1.2s ease-in-out infinite}.capy2d--park .g1{animation-delay:0s}.capy2d--park .g2{animation-delay:.4s}.capy2d--pet .capy-body-group{animation:capyPetBliss .5s ease-in-out infinite;transform-origin:100px 130px}@keyframes capyPetBliss{0%,to{transform:rotate(-4deg) scale(1) translateY(0)}50%{transform:rotate(4deg) scale(1.05) translateY(-3px)}}.capy2d--pet .capy-head-group{animation:capyPetHead .5s ease-in-out infinite;transform-origin:100px 90px}@keyframes capyPetHead{0%,to{transform:rotate(8deg) translateY(0)}50%{transform:rotate(-6deg) translateY(-2px)}}.capy2d--pet .capy-tail{animation:capyTailPet .3s ease-in-out infinite;transform-origin:150px 140px}@keyframes capyTailPet{0%,to{transform:rotate(-35deg)}50%{transform:rotate(35deg)}}.capy2d--pet .capy-ears{animation:capyEarPet .5s ease-in-out infinite;transform-origin:100px 72px}@keyframes capyEarPet{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.capy2d--pet .heart{animation:heartFloat 1.2s ease-out infinite}.capy2d--pet .h1{animation-delay:0s}.capy2d--pet .h2{animation-delay:.2s}.capy2d--pet .h3{animation-delay:.4s}.capy2d--pet .h4{animation-delay:.6s}.capy2d--pet .h5{animation-delay:.8s}@keyframes heartFloat{0%{transform:translate(0) scale(.4) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(15px,-40px) scale(1.5) rotate(20deg);opacity:0}}.capy2d--pet .pet-hand{animation:petHandMove .6s ease-in-out infinite;transform-origin:center}@keyframes petHandMove{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-10deg)}}.capy2d--pet .capy-blush-l,.capy2d--pet .capy-blush-r{animation:blushPulse .5s ease-in-out infinite}.capy2d--happy .capy-shadow,.capy2d--pet .capy-shadow{animation:shadowBounce .45s ease-in-out infinite}.capy2d--run .capy-shadow{animation:shadowBounce .25s ease-in-out infinite}@keyframes shadowBounce{0%,to{rx:55;ry:8;opacity:.15}50%{rx:38;ry:5;opacity:.08}}.capy2d:active .capy-body-group{transform:scaleY(.85) scaleX(1.1)!important;transition:transform .08s}.capy2d:active .capy-head-group{transform:translateY(2px)!important;transition:transform .08s}
