*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}button{cursor:pointer;border:none;background:0 0;font:inherit}input{font:inherit;border:none;outline:0;background:0 0}ol,ul{list-style:none}a{color:inherit;text-decoration:none}:root{--theme-primary:#4CAF50;--theme-secondary:#FF9800;--theme-accent:#E91E63;--theme-bg:#F9FBE7;--theme-card:#FFFFFF;--theme-text:#212121;--theme-text-muted:#757575;--theme-border:#E0E0E0;--theme-success:#43A047;--theme-error:#E53935;--theme-star:#FDD835;--font-head:'Fredoka One',cursive;--font-body:'Nunito',sans-serif;--fs-xs:0.75rem;--fs-sm:0.875rem;--fs-base:1rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:2rem;--fs-3xl:2.5rem;--fs-4xl:3.5rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--r-sm:6px;--r-md:12px;--r-lg:20px;--r-xl:28px;--r-pill:9999px;--shadow-card:0 2px 12px rgba(0,0,0,.10);--shadow-button:0 4px 0 rgba(0,0,0,.18);--shadow-inset:inset 0 2px 4px rgba(0,0,0,.12);--z-modal:900;--z-overlay:800;--z-hud:100;--ease:cubic-bezier(.34,1.56,.64,1);--ease-in:cubic-bezier(.4,0,1,1);--kb-key-size:clamp(34px, min(8.4vw, 6.5dvh), 56px);--kb-key-gap:clamp(2px, 0.55dvh, 6px);--kb-font-size:clamp(0.95rem, min(3.7vw, 2.2dvh), 1.2rem)}body,html{min-height:100%;width:100%}body{font-family:var(--font-body);background-color:var(--theme-bg);color:var(--theme-text);transition:background-color .3s,color .3s;padding-bottom:64px}#app{display:grid;grid-template-rows:auto 1fr auto;min-height:100dvh}#app-header{position:sticky;top:0;z-index:var(--z-hud);background:var(--theme-primary);color:#fff;padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;gap:var(--sp-3);box-shadow:0 2px 8px rgba(0,0,0,.2)}#app-header .app-title{font-family:var(--font-head);font-size:var(--fs-xl);flex:1;text-align:center}#app-header .btn-home{background:rgba(255,255,255,.18);color:#fff;border:2px solid rgba(255,255,255,.4);min-height:40px;padding:0 var(--sp-3);font-size:var(--fs-base);border-radius:var(--r-md);flex-shrink:0}#app-main{padding:var(--sp-4);max-width:960px;margin:0 auto;width:100%}body.in-game #app-main{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}#app-footer{text-align:center;padding:var(--sp-3);font-size:var(--fs-xs);color:var(--theme-text-muted)}.game-layout{display:grid;gap:var(--sp-4);grid-template-columns:1fr}@media (min-width:768px){#app-main{padding:var(--sp-6)}.game-layout{grid-template-columns:1fr 1fr}}@media (min-width:1024px){#app-main{padding:var(--sp-8)}.game-layout{grid-template-columns:2fr 1fr}}.screen{animation:.3s both fade-in}.screen-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-6);text-align:center;padding:var(--sp-6) 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}@media (max-width:500px){.grid-3{grid-template-columns:1fr 1fr}}#ad-banner{position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--theme-card);border-top:2px solid var(--theme-border);display:flex;align-items:center;justify-content:center;z-index:50}#ad-banner .ad-label{font-size:var(--fs-xs);color:var(--theme-text-muted);opacity:.55;pointer-events:none;user-select:none}@media (min-width:1024px){#ad-banner{top:0;left:0;bottom:0;width:180px;right:auto;height:auto;border-top:none;border-right:2px solid var(--theme-border);flex-direction:column;justify-content:center;gap:var(--sp-4)}body{padding-bottom:0;padding-left:180px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:48px;min-width:48px;padding:var(--sp-3) var(--sp-6);border-radius:var(--r-pill);font-family:var(--font-head);font-size:var(--fs-lg);font-weight:700;line-height:1;cursor:pointer;transition:transform .1s,box-shadow .1s;user-select:none;-webkit-tap-highlight-color:transparent}.btn:active{transform:translateY(3px);box-shadow:none!important}.btn-primary{background:var(--theme-primary);color:#fff;box-shadow:var(--shadow-button)}.btn-primary:hover{filter:brightness(1.08)}.btn-secondary{background:var(--theme-secondary);color:#fff;box-shadow:var(--shadow-button)}.btn-ghost{background:0 0;color:var(--theme-primary);border:2px solid var(--theme-primary)}.btn-icon{width:48px;height:48px;padding:0;border-radius:var(--r-md);font-size:var(--fs-xl)}.btn:disabled{opacity:.45;pointer-events:none}.card{background:var(--theme-card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--sp-5);border:2px solid var(--theme-border)}.card-selectable{cursor:pointer;transition:transform .15s var(--ease),box-shadow .15s ease}.card-selectable:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.15)}.card-selectable:active{transform:translateY(0)}.card-selectable.selected{border-color:var(--theme-primary);box-shadow:0 0 0 3px var(--theme-primary)}.letter-slots{display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:center;margin:var(--sp-4) 0}.letter-slot{width:52px;height:60px;border-radius:var(--r-md);border:3px solid var(--theme-primary);background:var(--theme-card);display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:var(--fs-2xl);color:var(--theme-text);text-transform:uppercase;transition:background .2s,border-color .2s}.letter-slot.filled{background:var(--theme-primary);color:#fff}.letter-slot.correct{background:var(--theme-success);color:#fff;border-color:var(--theme-success)}.letter-slot.error{background:var(--theme-error);color:#fff;border-color:var(--theme-error)}.letter-slot.active{border-color:var(--theme-accent);box-shadow:0 0 0 3px var(--theme-accent)}@media (max-width:480px){.letter-slot{width:42px;height:50px;font-size:var(--fs-xl)}}.keyboard{display:flex;flex-direction:column;gap:var(--kb-key-gap);width:100%;max-width:min(100%,calc((var(--kb-key-size) * 10) + (var(--kb-key-gap) * 9) + 4px));margin:clamp(6px,1.2dvh,12px) auto 0}.keyboard-row{display:flex;gap:var(--kb-key-gap);justify-content:center}.key-btn{flex:1 1 0;min-width:0;max-width:var(--kb-key-size);height:var(--kb-key-size);border-radius:var(--r-md);background:var(--theme-card);border:2px solid var(--theme-border);font-family:var(--font-head);font-size:var(--kb-font-size);color:var(--theme-text);cursor:pointer;transition:background .15s,transform .1s;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.key-btn:hover{background:var(--theme-primary);color:#fff}.key-btn:active{transform:scale(.92)}.key-btn.used-correct{background:var(--theme-success);color:#fff;border-color:var(--theme-success);pointer-events:none}.key-btn.used-wrong{background:var(--theme-error);color:#fff;border-color:var(--theme-error);pointer-events:none}.key-btn.disabled{opacity:.35;pointer-events:none}.key-btn-wide{max-width:calc(var(--kb-key-size) * 2.6);padding:0 clamp(8px,2.4vw,14px)}.spell-kb-back{background:var(--theme-card);color:var(--theme-text);border:2px solid var(--theme-border);box-shadow:var(--shadow-button)}.spell-kb-back:hover{filter:brightness(1.08)}.key-btn-action{background:var(--theme-primary);color:#fff;border-color:var(--theme-primary);box-shadow:var(--shadow-button)}.key-btn-action:hover{filter:brightness(1.08)}.key-btn-action:disabled{background:color-mix(in srgb,var(--theme-primary) 45%,#fff);color:rgba(255,255,255,.8);border-color:transparent;box-shadow:none}.hud{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--theme-card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);margin-bottom:var(--sp-4);flex-wrap:wrap}.hud-score{font-family:var(--font-head);font-size:var(--fs-xl);color:var(--theme-primary)}.hud-lives{display:flex;gap:var(--sp-1);font-size:var(--fs-xl)}.hud-lives .heart{transition:opacity .3s}.hud-lives .heart.lost{opacity:.2}.progress-bar-wrap{flex:1;height:10px;background:var(--theme-border);border-radius:var(--r-pill);overflow:hidden;min-width:80px}.progress-bar-fill{height:100%;background:var(--theme-primary);border-radius:var(--r-pill);transition:width .4s}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);animation:.2s both fade-in}.modal{background:var(--theme-card);border-radius:var(--r-xl);padding:var(--sp-8) var(--sp-6);max-width:440px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3);text-align:center;animation:bounce-in .4s var(--ease) both;z-index:var(--z-modal)}.modal-emoji{font-size:4rem;margin-bottom:var(--sp-3);line-height:1}.modal-title{font-family:var(--font-head);font-size:var(--fs-2xl);margin-bottom:var(--sp-2)}.modal-body{font-size:var(--fs-lg);color:var(--theme-text-muted);margin-bottom:var(--sp-6)}.modal-word-highlight{font-family:var(--font-head);font-size:var(--fs-3xl);color:var(--theme-primary);margin-bottom:var(--sp-3);letter-spacing:.05em}.modal-actions{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap}.hangman-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4)}.gallows{width:160px;height:180px}.gallows circle,.gallows line,.gallows path{stroke:var(--theme-text);stroke-width:4;stroke-linecap:round;fill:none;transition:opacity .3s}.hangman-part{opacity:0}.hangman-part.visible{opacity:1;animation:.3s both hang-drop}.alphabet-grid{display:flex;flex-direction:column;gap:var(--kb-key-gap);width:100%;max-width:min(100%,calc((var(--kb-key-size) * 10) + (var(--kb-key-gap) * 9) + 4px));margin:0 auto}.alphabet-row{display:flex;gap:var(--kb-key-gap);justify-content:center}.alpha-btn{flex:1 1 0;min-width:0;max-width:var(--kb-key-size);height:var(--kb-key-size);border-radius:var(--r-md);background:var(--theme-card);border:2px solid var(--theme-border);font-family:var(--font-head);font-size:var(--kb-font-size);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;-webkit-tap-highlight-color:transparent}.alpha-btn:hover:not(:disabled){background:var(--theme-primary);color:#fff}.alpha-btn.correct{background:var(--theme-success);color:#fff;border-color:var(--theme-success)}.alpha-btn.wrong{background:var(--theme-error);color:#fff;border-color:var(--theme-error);pointer-events:none}.kb-toggle-row{display:flex;justify-content:center;margin-bottom:var(--sp-1)}.kb-toggle{font-size:var(--fs-xs);padding:3px var(--sp-3);opacity:.75}.voice-select{font-family:var(--font-body);font-size:var(--fs-sm);padding:6px var(--sp-3);border:2px solid var(--theme-border);border-radius:var(--r-full);background:var(--theme-card);color:var(--theme-text);cursor:pointer;max-width:180px}.tile-pool,.tile-slots{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center;min-height:70px;padding:var(--sp-3);border-radius:var(--r-lg)}.tile-pool{background:rgba(0,0,0,.05);border:2px dashed var(--theme-border)}.tile-slots{border:2px dashed var(--theme-primary)}.letter-tile{width:54px;height:60px;background:var(--theme-primary);color:#fff;border-radius:var(--r-md);font-family:var(--font-head);font-size:var(--fs-2xl);display:flex;align-items:center;justify-content:center;cursor:grab;box-shadow:var(--shadow-button);transition:transform .15s var(--ease),opacity .2s ease;user-select:none;text-transform:uppercase;-webkit-tap-highlight-color:transparent}.letter-tile:hover{transform:scale(1.1)}.letter-tile:active{cursor:grabbing;transform:scale(.95)}.letter-tile.dragging{opacity:.5}.letter-tile.placed{background:var(--theme-secondary);cursor:pointer}.tile-drop-slot{width:54px;height:60px;border:3px dashed var(--theme-primary);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:var(--fs-2xl);color:var(--theme-primary);opacity:.4;transition:background .15s,opacity .15s}.tile-drop-slot.drag-over{background:rgba(0,0,0,.08);opacity:1}.tile-drop-slot.filled{background:var(--theme-secondary);color:#fff;opacity:1;border-style:solid;cursor:pointer}.word-scramble-wrap{display:flex;flex-direction:column}.scramble-label{line-height:1.2}.scramble-check-btn{margin-top:var(--sp-3)!important}@media (max-width:480px){.letter-tile,.tile-drop-slot{width:44px;height:52px;font-size:var(--fs-xl)}}.stars{display:flex;gap:var(--sp-2);justify-content:center;font-size:var(--fs-3xl)}.star{color:#ccc;transition:color .3s}.star.lit{color:var(--theme-star);animation:pop .3s var(--ease) both}.hint-box{background:var(--theme-card);border-left:5px solid var(--theme-secondary);border-radius:0 var(--r-md) var(--r-md) 0;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-lg);color:var(--theme-text-muted);margin:var(--sp-4) 0}.speech-bubble{position:relative;background:#fff;border:3px solid var(--theme-primary);border-radius:var(--r-lg);padding:var(--sp-2) var(--sp-4);font-family:var(--font-head);font-size:var(--fs-base);color:var(--theme-text);max-width:230px;text-align:center;box-shadow:var(--shadow-card);transition:opacity .4s,transform .4s}.speech-bubble::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:11px solid transparent;border-top-color:var(--theme-primary)}.speech-bubble::before{content:'';position:absolute;top:calc(100% - 1px);left:50%;transform:translateX(-50%);border:8px solid transparent;border-top-color:#fff;z-index:1}.speech-bubble.hidden{opacity:0;transform:scale(.9) translateY(-6px);pointer-events:none}.mascot-area{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);min-height:160px}.mascot-home{width:110px;height:110px;display:flex;align-items:center;justify-content:center}.mascot-home svg{width:100%;height:auto;display:block}.mascot-preview svg{height:56px;width:auto;display:block;margin:0 auto}.name-entry-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-5);padding:var(--sp-8) var(--sp-4);min-height:70vh;text-align:center}.name-input-field{width:100%;max-width:480px;font-family:var(--font-head);font-size:var(--fs-xl);color:var(--theme-text);background:var(--theme-card);border:3px solid var(--theme-primary);border-radius:var(--r-pill);padding:var(--sp-3) var(--sp-6);text-align:center;display:block;box-shadow:var(--shadow-inset);transition:border-color .2s,box-shadow .2s}.name-input-field:focus{outline:0;border-color:var(--theme-accent);box-shadow:0 0 0 4px rgba(0,0,0,.08)}.name-input-field::placeholder{color:var(--theme-text-muted);opacity:1}.confetti-piece{position:fixed;width:10px;height:14px;border-radius:3px;z-index:9999;pointer-events:none;animation:2.5s ease-in forwards confetti-fall}.theme-card-preview{width:100%;height:80px;border-radius:var(--r-md);margin-bottom:var(--sp-3);display:flex;align-items:center;justify-content:center;font-size:2.5rem}.game-card{padding:var(--sp-6);text-align:center;border-radius:var(--r-xl)}.game-card .game-icon{font-size:3.5rem;margin-bottom:var(--sp-3)}.game-card .game-name{font-family:var(--font-head);font-size:var(--fs-xl)}.game-card .game-desc{font-size:var(--fs-sm);color:var(--theme-text-muted);margin-top:var(--sp-1)}.year-badge{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--r-md);font-family:var(--font-head);font-size:var(--fs-xl);background:var(--theme-primary);color:#fff;margin-bottom:var(--sp-2)}.word-display{font-family:var(--font-head);font-size:var(--fs-3xl);letter-spacing:.15em;text-align:center;text-transform:uppercase;color:var(--theme-text);margin:var(--sp-4) 0}.word-display .blank{display:inline-block;width:1ch;border-bottom:4px solid var(--theme-primary);margin:0 3px}.adventure-wrap{position:relative;width:100%;max-width:800px;margin:0 auto}.adventure-canvas{display:block;width:100%;border-radius:var(--r-lg);box-shadow:var(--shadow-card);background:#87ceeb}.adventure-hud{position:absolute;z-index:10;padding:var(--sp-1) var(--sp-3);font-family:var(--font-head);pointer-events:none;display:flex;align-items:center;justify-content:center;transition:opacity .5s,transform .5s}.hud-tl{top:12px;left:12px}.hud-tr{top:12px;right:12px}.hud-tc{top:12px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.15)}.adv-boss-lives,.adv-lives{font-size:var(--fs-md);letter-spacing:2px;line-height:1}.adv-boss-lives.heart-damage{animation:.4s cubic-bezier(.175,.885,.32,1.275) both heart-pop}@keyframes heart-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.4);filter:brightness(1.2) hue-rotate(45deg)}}.adv-stage{font-size:var(--fs-xs);color:var(--theme-primary);text-transform:uppercase;letter-spacing:1px;white-space:nowrap}@media (min-width:640px){.adventure-hud{padding:var(--sp-2) var(--sp-4)}.adv-boss-lives,.adv-lives{font-size:var(--fs-lg);letter-spacing:3px}.adv-stage{font-size:var(--fs-sm)}}.adventure-challenge-area{margin-top:var(--sp-4);display:flex;justify-content:center;width:100%}.adventure-challenge-inner{background:var(--theme-card);border-radius:var(--r-xl);padding:var(--sp-4);width:100%;max-width:600px;box-shadow:var(--shadow-card);border:2px solid var(--theme-border);animation:slide-up .4s var(--ease) both}.adventure-challenge-inner .word-scramble-wrap .hint-box{margin:0 0 var(--sp-2)}.adventure-challenge-inner .scramble-action-row{margin-bottom:var(--sp-2)!important}.adventure-challenge-inner .scramble-label{margin-bottom:6px!important}.adventure-challenge-inner .scramble-label-pool{margin-top:var(--sp-2)!important}.adventure-challenge-inner .tile-pool,.adventure-challenge-inner .tile-slots{min-height:52px;padding:var(--sp-2);gap:6px}.adventure-challenge-inner .letter-tile,.adventure-challenge-inner .tile-drop-slot{width:46px;height:52px;font-size:var(--fs-xl)}.adventure-challenge-inner .scramble-check-btn{margin-top:var(--sp-2)!important;min-height:42px}.adventure-announcement{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-head);font-size:var(--fs-3xl);color:#ff4757;text-shadow:0 2px 10px rgba(0,0,0,.5);pointer-events:none;z-index:100;animation:5s ease-in-out both announcement-fade;text-transform:uppercase;letter-spacing:6px;white-space:nowrap}.adventure-announcement.boss-flash{animation:5s ease-in-out both boss-flash-fade}@keyframes boss-flash-fade{0%,100%,20%,40%,60%,80%{opacity:0;transform:translate(-50%,-50%) scale(.9)}10%,30%,50%,70%,90%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}@keyframes announcement-fade{0%{opacity:0;transform:translate(-50%,-30%) scale(.8)}10%,85%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-70%) scale(1.1)}}@media (max-width:640px){.adventure-announcement{font-size:var(--fs-xl);letter-spacing:2px}}@media (max-height:820px){body.in-game #app-header{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}body.in-game #app-main{padding-top:6px;padding-bottom:6px}.hud{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2)}.hint-box{margin:var(--sp-2) 0;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-base)}.word-display{margin:var(--sp-2) 0;font-size:var(--fs-2xl)}.tile-pool,.tile-slots{min-height:56px;padding:var(--sp-2)}}@media (max-height:700px){:root{--kb-key-size:clamp(32px, min(7.8vw, 5.7dvh), 46px);--kb-font-size:clamp(0.85rem, min(3.2vw, 1.9dvh), 1rem)}.hint-box{border-left-width:4px;margin:6px 0}}@media (max-width:430px) and (max-height:760px){body.in-game #app-header{gap:var(--sp-2);padding-left:var(--sp-3);padding-right:var(--sp-3)}body.in-game #app-header .app-title{font-size:var(--fs-lg)}body.in-game #app-header .btn-home{min-height:34px;padding:0 var(--sp-2);font-size:var(--fs-sm)}body.in-game #ad-banner,body.in-game #app-footer{display:none}body.in-game{padding-bottom:0}:root{--kb-key-size:clamp(31px, min(8vw, 5.5dvh), 44px);--kb-key-gap:3px;--kb-font-size:clamp(0.82rem, min(3.4vw, 1.85dvh), 0.98rem)}.hud{border-radius:var(--r-md)}.hud-lives,.hud-score{font-size:var(--fs-lg)}.game-action-row{gap:var(--sp-2)!important;margin-bottom:var(--sp-2)!important}.game-action-row .btn{min-height:38px;padding:0 var(--sp-3);font-size:var(--fs-sm)}.keyboard-row-actions .key-btn-wide{flex-basis:calc(var(--kb-key-size) * 2.15)}.letter-slot{width:38px;height:44px;font-size:var(--fs-lg);border-width:2px}.gallows{width:126px;height:142px}.letter-tile,.tile-drop-slot{width:40px;height:46px;font-size:var(--fs-lg)}.tile-pool,.tile-slots{gap:6px;min-height:50px;padding:6px}.word-display{font-size:var(--fs-xl);letter-spacing:.1em}.adventure-challenge-area{margin-top:var(--sp-3)}.adventure-challenge-inner{padding:var(--sp-3);border-radius:var(--r-lg)}.adventure-challenge-inner .letter-tile,.adventure-challenge-inner .tile-drop-slot{width:40px;height:46px;font-size:var(--fs-lg)}.adventure-challenge-inner .scramble-check-btn{margin-top:6px!important}}.voice-conn-badge{cursor:help;font-size:.85em;line-height:1}.rv-offline-toast{position:fixed;bottom:var(--sp-6);left:50%;transform:translateX(-50%);background:rgba(30,30,30,.92);color:#fff;padding:var(--sp-2) var(--sp-5);border-radius:var(--r-lg);font-size:var(--fs-sm);font-family:var(--font-body);z-index:9999;pointer-events:none;white-space:nowrap;animation:.2s fade-in}.rv-offline-banner{background:#fff8e1;color:var(--theme-text);border:1.5px solid #ffe082;border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);margin-bottom:var(--sp-4);text-align:center}@keyframes bounce-in{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.1)}70%{transform:scale(.95)}100%{transform:scale(1);opacity:1}}@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}@keyframes pop{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}@keyframes star-burst{0%{transform:scale(0) rotate(0);opacity:1}100%{transform:scale(2) rotate(180deg);opacity:0}}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes pulse-glow{0%,100%{box-shadow:0 0 0 0 rgba(var(--glow-color,76,175,80),.5)}50%{box-shadow:0 0 0 12px rgba(var(--glow-color,76,175,80),0)}}@keyframes hang-drop{0%{transform:translateY(-30px);opacity:0}60%{transform:translateY(4px)}100%{transform:translateY(0);opacity:1}}@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes fade-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.anim-bounce{animation:bounce-in .45s var(--ease) both}.anim-shake{animation:.4s both shake}.anim-pop{animation:.25s both pop}.anim-wiggle{animation:.4s both wiggle}.anim-fade-in{animation:.3s both fade-in}@keyframes float-up-fade{0%{transform:translate(-50%,0) scale(1);opacity:1}100%{transform:translate(-50%,-100px) scale(1.8);opacity:0}}@keyframes mascot-celebrate{0%,100%{transform:translateY(0) scaleX(1) scaleY(1)}15%{transform:translateY(-10px) scaleX(1.15) scaleY(.85)}45%{transform:translateY(-65px) scaleX(-1) scaleY(1.1)}65%{transform:translateY(0) scaleX(1) scaleY(.85)}80%{transform:translateY(-20px) scaleX(1) scaleY(1.05)}}@media (prefers-reduced-motion:reduce){.anim-bounce,.anim-fade-in,.anim-pop,.anim-shake,.anim-wiggle,.confetti-piece{animation:none!important;transition:none!important}}