:root{--font-title:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--color-black:#000;--color-white:#fff;--color-green:#22c55e;--color-green-light:#4caf50;--color-gray-dark:#1a1a1a;--color-gray-light:#f5f5f7;--color-gray-border:#e5e5ea;--transition-speed:.3s}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--color-white);color:var(--color-black);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:-webkit-fill-available;transition:background-color .3s,color .2s;overflow-x:hidden}body:before,body:after{content:"";z-index:-1;will-change:transform;pointer-events:none;background-color:#0000;width:100%;height:50.5vh;transition:transform .3s cubic-bezier(.25,1,.5,1),background-color .3s;position:fixed;left:0}body:before{top:0;transform:translateY(-100%)}body:after{bottom:0;transform:translateY(100%)}body.theme-white:before{background-color:#0000;transform:translateY(-100%)}body.theme-white:after{background-color:#0000;transform:translateY(100%)}body.theme-green:before,body.theme-green:after{background-color:var(--color-green);transition:transform .6s cubic-bezier(.34,1.56,.64,1),background-color .3s;transform:translateY(0)}body.theme-white{background-color:var(--color-white);color:var(--color-black)}body.theme-green{background-color:var(--color-green);color:var(--color-white);transition:background-color .6s cubic-bezier(.34,1.56,.64,1),color .3s}#root{flex-direction:column;min-height:100svh;display:flex}html{height:-webkit-fill-available}.app-container{box-sizing:border-box;width:100%;min-height:100svh;color:inherit;background-color:#0000;flex-direction:column;padding:24px;display:flex}.app-header{box-sizing:border-box;grid-template-columns:80px 1fr 80px;align-items:center;width:100%;height:80px;padding:16px 0 24px;display:grid}.header-left{justify-content:flex-start;display:flex}.header-right{justify-content:flex-end;display:flex}.header-logo{font-family:var(--font-title);letter-spacing:.12em;text-transform:uppercase;-webkit-user-select:none;user-select:none;cursor:pointer;color:inherit;text-align:center;font-size:2.2rem;font-weight:900;transition:opacity .2s}@media (hover:hover){.header-logo:hover{opacity:.8}}.progress-bar-container{background-color:var(--color-gray-border);border-radius:2px;width:100%;height:4px;margin-bottom:32px;overflow:hidden}.theme-green .progress-bar-container{background-color:#fff3}.progress-bar-fill{background-color:var(--color-black);height:100%;transition:width .3s cubic-bezier(.4,0,.2,1)}.theme-green .progress-bar-fill{background-color:var(--color-white)}.app-content{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:600px;margin:0 auto;display:flex}.screen{flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex}.screen-subtitle{font-family:var(--font-sans);opacity:.7;text-transform:uppercase;letter-spacing:.05em;margin-bottom:32px;font-size:1.1rem;font-weight:500}.button{color:#212121;z-index:1;-webkit-user-select:none;user-select:none;cursor:pointer;background:#e8e8e8;border:0;border-radius:15px;outline:none;justify-content:center;align-items:center;width:100%;padding:15px 25px;font-size:17px;font-weight:1000;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden;box-shadow:4px 8px 19px -3px #00000045}.button:disabled{cursor:not-allowed;opacity:.35;pointer-events:none}.button:before{content:"";z-index:-1;background-color:#212121;border-radius:15px;width:0;height:0;transition:all .25s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:50%;box-shadow:4px 8px 19px -3px #00000045}@media (hover:hover){.button:hover{color:#e8e8e8}.button:hover:before{width:100%;height:100%;top:0;left:0}}.button:active{color:#e8e8e8;transition:all .12s;transform:scale(.8)}.button:active:before{width:100%;height:100%;transition:all .12s;top:0;left:0}@media (pointer:coarse){.button,.button:before{transition:all 1.2s cubic-bezier(.16,1,.3,1)}.button:active,.button:active:before{transition:all .6s cubic-bezier(.1,.8,.3,1)}}.theme-green .button{background:var(--color-white);color:var(--color-green)}.theme-green .button:before{background-color:var(--color-green)}.theme-green .button:active{color:var(--color-white)}@media (hover:hover){.theme-green .button:hover{color:var(--color-white)}}.level-grid{flex-direction:column;gap:16px;width:100%;display:flex}.level-row{grid-template-columns:1fr 1fr;gap:16px;width:100%;display:grid}.lang-buttons{flex-direction:column;gap:16px;width:100%;display:flex}.lang-label{font-size:1.3rem;font-weight:700}.lang-sub{opacity:.7;font-size:.85rem;font-weight:400}.practice-screen{flex-direction:column;align-items:stretch;width:100%;display:flex;position:relative}.practice-header-info{background-color:var(--color-gray-light);border:1px solid var(--color-gray-border);font-family:var(--font-sans);box-sizing:border-box;border-radius:16px;flex-direction:column;gap:10px;margin-bottom:24px;padding:12px 18px;display:flex}.theme-green .practice-header-info{color:var(--color-white);background:#ffffff14;border-color:#ffffff26}.practice-rank-header-row{justify-content:space-between;align-items:center;width:100%;display:flex}.practice-rank-badge-group{align-items:center;gap:8px;display:flex}.practice-rank-name{font-family:var(--font-title);text-transform:uppercase;letter-spacing:.04em;font-size:.95rem;font-weight:800}.practice-rank-score{opacity:.8;font-size:.85rem;font-weight:600}.practice-rank-progress-row{align-items:center;gap:12px;width:100%;display:flex}.practice-rank-progress-bar{background-color:var(--color-gray-border);border-radius:3px;flex:1;height:6px;overflow:hidden}.theme-green .practice-rank-progress-bar{background-color:#ffffff26}.practice-rank-progress-fill{border-radius:3px;height:100%;transition:width .4s}.practice-rank-next-text{opacity:.7;white-space:nowrap;font-size:.75rem;font-weight:700}.nav-btn-back{font-family:var(--font-sans);color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:.95rem;font-weight:600;transition:opacity .2s,background-color .2s}@media (hover:hover){.nav-btn-back:hover{opacity:1;background-color:#0000000d}.theme-green .nav-btn-back:hover{background-color:#ffffff26}}.nav-btn-hint{font-family:var(--font-sans);color:inherit;cursor:pointer;background:0 0;border:1.5px solid;border-radius:20px;padding:6px 16px;font-size:.95rem;font-weight:600;transition:all .2s}@media (hover:hover){.nav-btn-hint:hover{background-color:var(--color-black);color:var(--color-white);border-color:var(--color-black)}}.word-display-container{text-align:center;justify-content:center;align-items:center;min-height:160px;margin-bottom:24px;display:flex}.foreign-word{font-family:var(--font-title);letter-spacing:-.04em;color:inherit;word-break:break-word;text-transform:capitalize;font-size:4.5rem;font-weight:900;line-height:1.1;animation:.4s cubic-bezier(.175,.885,.32,1.275) scaleWord}.interaction-area{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.input-form{flex-direction:column;gap:16px;width:100%;display:flex}.translation-input{width:100%;font-family:var(--font-sans);letter-spacing:-.02em;text-align:center;color:var(--color-black);background-color:#0000;border:none;border-bottom:2px solid #00000026;border-radius:0;outline:none;padding:8px 0 16px;font-size:2.2rem;font-weight:700;transition:border-color .3s,color .3s}.translation-input::placeholder{color:#0003;font-size:1.6rem;font-weight:400}.translation-input:focus{border-color:var(--color-black)}.theme-green .translation-input{color:var(--color-white);border-bottom-color:#ffffff4d}.theme-green .translation-input::placeholder{color:#fff6}.theme-green .translation-input:focus{border-bottom-color:var(--color-white)}.spelling-correction{color:var(--color-white);font-family:var(--font-sans);text-align:center;background-color:#ffffff26;border:1px dashed #fff6;border-radius:12px;margin-top:4px;padding:14px 20px;font-size:1.05rem;font-weight:500;animation:.3s ease-out fadeIn;box-shadow:0 4px 12px #0000000d}.spelling-correction strong{text-underline-offset:4px;font-weight:700;text-decoration:underline}.hint-options-container{flex-direction:column;align-items:center;gap:12px;width:100%;animation:.3s ease-out slideUp;display:flex}.hint-prompt{opacity:.7;margin-bottom:8px;font-size:.95rem;font-weight:500}.hint-grid{flex-direction:column;gap:12px;width:100%;display:flex}.feedback-message{font-family:var(--font-sans);text-align:center;border-radius:12px;padding:10px 20px;font-size:1.1rem;font-weight:600;animation:.25s cubic-bezier(.175,.885,.32,1.275) popIn}.feedback-success,.feedback-typo{color:var(--color-white)}.feedback-error{color:#d32f2f;background-color:#ffebee;border:1px solid #ffcdd2}.theme-green .feedback-error{color:var(--color-white);background-color:#ff00004d;border:1px solid #ffffff4d}.score-badge{font-family:var(--font-title);background-color:var(--color-gray-light);color:var(--color-black);letter-spacing:-.02em;border-radius:24px;margin:24px 0 40px;padding:16px 32px;font-size:2.2rem;font-weight:800}.congrats-title{font-family:var(--font-title);margin-bottom:8px;font-size:3rem;font-weight:900}.finished-text{opacity:.7;font-size:1.15rem}.mt-8{margin-top:32px}@keyframes scaleWord{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pulseButton{0%{box-shadow:0 0 #fff6}70%{box-shadow:0 0 0 10px #fff0}to{box-shadow:0 0 #fff0}}.shake{animation:.4s shakeAnim}@keyframes shakeAnim{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@media (width<=480px){.app-container{padding:16px}.header-logo{letter-spacing:.12em;font-size:2rem}.foreign-word{font-size:3.2rem}.translation-input{height:auto;font-size:1.6rem}.translation-input::placeholder{font-size:1.3rem}.button{padding:.8rem 2rem;font-size:.95rem}.level-btn{font-size:1.3rem}.lang-btn{height:72px}.score-badge{padding:12px 24px;font-size:1.8rem}}.word-display-container{position:relative}.bookmark-btn{cursor:pointer;color:var(--color-black);z-index:10;background:#0000000a;border:none;border-radius:20px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;transition:all .25s cubic-bezier(.175,.885,.32,1.275);display:flex;position:absolute;top:8px;right:8px}.bookmark-text{font-family:var(--font-sans);letter-spacing:.02em;font-size:.85rem;font-weight:600}.theme-green .bookmark-btn{color:var(--color-white);background:#ffffff1f}.bookmark-btn:hover{background:#00000014;transform:scale(1.1)}.theme-green .bookmark-btn:hover{background:#ffffff38}.bookmark-btn:active{transform:scale(.9)}.bookmark-btn.saved{color:#d97706}.theme-green .bookmark-btn.saved{color:#fbbf24}.dict-btn-menu{background:var(--color-black)!important;color:var(--color-white)!important}.dict-btn-menu:before{background-color:var(--color-gray-dark)!important}@media (hover:hover){.dict-btn-menu:hover{color:var(--color-white)!important}}.dictionary-screen{flex-direction:column;align-items:stretch;width:100%;display:flex}.dict-search-input{border:1px solid var(--color-gray-border);width:100%;font-family:var(--font-sans);background-color:var(--color-gray-light);border-radius:14px;outline:none;padding:14px 20px;font-size:1rem;transition:all .2s}.dict-search-input:focus{border-color:var(--color-black);background-color:var(--color-white);box-shadow:0 0 0 4px #0000000d}.dict-filters{flex-wrap:wrap;justify-content:flex-start;gap:8px;margin-top:4px;display:flex}.filter-pill{border:1px solid var(--color-gray-border);background-color:var(--color-white);font-family:var(--font-sans);cursor:pointer;color:var(--color-black);border-radius:20px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s}.filter-pill:hover{background-color:var(--color-gray-light)}.filter-pill.active{background-color:var(--color-black);color:var(--color-white);border-color:var(--color-black)}.btn-clear-all{color:#ef4444;font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;border-radius:12px;padding:10px 20px;font-size:.95rem;font-weight:600;transition:all .2s}.btn-clear-all:hover{background-color:#ef444414}.dict-grid{grid-template-columns:repeat(2,1fr);gap:16px;width:100%;margin-bottom:40px;display:grid}@media (width<=580px){.dict-grid{grid-template-columns:1fr}}.dict-card{background:var(--color-white);border:1px solid var(--color-gray-border);border-radius:16px;flex-direction:column;justify-content:space-between;padding:18px;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 4px 12px #00000005}.dict-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000000f}.dict-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dict-level-badge{background-color:var(--color-gray-light);color:var(--color-black);text-transform:uppercase;border-radius:6px;padding:4px 8px;font-size:.75rem;font-weight:700}.dict-delete-btn{cursor:pointer;color:#a1a1aa;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.9rem;transition:all .2s;display:flex}.dict-delete-btn:hover{color:#ef4444;background-color:#ef444414;transform:scale(1.1)}.dict-english-word{font-family:var(--font-title);color:var(--color-black);text-transform:capitalize;margin-bottom:6px;font-size:1.4rem;font-weight:800}.dict-synonyms-list{flex-wrap:wrap;gap:4px;margin-bottom:12px;display:flex}.dict-synonym-tag{font-family:var(--font-sans);color:#0009;background-color:#0000000d;border-radius:6px;padding:3px 8px;font-size:.7rem;font-weight:500}.dict-translations{border-top:1px solid var(--color-gray-border);flex-direction:column;gap:8px;margin-top:4px;padding-top:12px;display:flex}.dict-trans-item{align-items:center;gap:8px;font-size:.9rem;display:flex}.lang-indicator{background-color:var(--color-black);color:var(--color-white);text-align:center;border-radius:4px;width:24px;padding:2px 5px;font-size:.65rem;font-weight:800}.trans-val{color:var(--color-black);font-weight:600}.dict-empty-state{background:var(--color-gray-light);text-align:center;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;width:100%;margin-top:16px;padding:48px 24px;display:flex}.app-header{transition:all .8s cubic-bezier(.25,1,.5,1)}.intro-active .app-header{box-sizing:border-box;background-color:var(--color-white);grid-template-columns:0 1fr 0;height:100svh;margin:0;padding:0 24px}.intro-active .header-left,.intro-active .header-right{opacity:0;pointer-events:none}.intro-active .app-content{opacity:0;height:0;margin:0;padding:0;overflow:hidden}.header-logo{justify-content:center;align-items:center;transition:all .8s cubic-bezier(.25,1,.5,1);display:inline-flex}.logo-anim-container{justify-content:center;align-items:center;display:flex;position:relative}.intro-dot-leader{background-color:var(--color-black);border-radius:50%;width:20px;height:20px;transition:all .8s cubic-bezier(.25,1,.5,1);display:inline-block;transform:scale(1)}.logo-letters-wrapper{opacity:0;max-width:0;margin-left:0;transition:max-width .8s cubic-bezier(.25,1,.5,1),opacity .8s,margin-left .8s cubic-bezier(.25,1,.5,1);display:flex;overflow:hidden}.logo-letter{font-family:var(--font-title);letter-spacing:.08em;color:var(--color-black);opacity:0;font-size:2.5rem;font-weight:900;display:inline-block;transform:scale(0)}.intro-dot .intro-dot-leader{animation:.8s ease-in-out infinite alternate pulseDot}@keyframes pulseDot{0%{transform:scale(.85)}to{transform:scale(1.2)}}.intro-text .intro-dot-leader{transform:scale(1)}.intro-text .logo-letters-wrapper{opacity:1;max-width:300px;margin-left:12px}.intro-text .logo-letter{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards popLetter}@keyframes popLetter{0%{opacity:0;transform:scale(0)translateY(12px)rotate(-15deg)}60%{opacity:1;transform:scale(1.2)translateY(-4px)rotate(5deg)}to{opacity:1;transform:scale(1)translateY(0)rotate(0)}}.intro-move .app-header{background-color:#0000;grid-template-columns:80px 1fr 80px;height:80px;padding:16px 0 24px}.intro-move .intro-dot-leader{opacity:0;width:0;height:0;margin:0;transform:scale(0)}.intro-move .logo-letters-wrapper{opacity:1;max-width:300px;margin-left:0}.intro-move .logo-letter{letter-spacing:.12em;color:var(--color-black);opacity:1;font-size:2.2rem;transition:all .8s cubic-bezier(.25,1,.5,1);transform:scale(1)}.intro-move .header-left,.intro-move .header-right{opacity:1;transition:opacity .8s ease-out}.intro-move .app-content{opacity:1;height:unset;margin:0 auto;transition:opacity .8s ease-out;overflow:visible}.rank-card{background-color:var(--color-gray-light);border:1px solid var(--color-gray-border);box-sizing:border-box;border-radius:20px;width:100%;max-width:440px;margin-bottom:24px;padding:20px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;box-shadow:0 8px 30px #0000000a}@media (hover:hover){.rank-card:hover{transform:translateY(-2px);box-shadow:0 12px 35px #00000014}}.theme-green .rank-card{-webkit-backdrop-filter:blur(10px);color:var(--color-white);background:#ffffff14;border-color:#ffffff26}.rank-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.rank-left{align-items:center;gap:12px;display:flex}.rank-avatar{border:2px solid #fffc;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.5rem;transition:transform .3s;display:flex;box-shadow:0 8px 16px #0000001a}.rank-title{font-family:var(--font-sans);opacity:.9;letter-spacing:.02em;font-size:1rem;font-weight:800}.rank-badge{font-family:var(--font-title);color:var(--color-white);text-transform:uppercase;letter-spacing:.08em;text-shadow:0 1px 2px #0003;border:1px solid #ffffff4d;border-radius:12px;padding:8px 18px;font-size:.85rem;font-weight:900;transition:all .3s;display:inline-block;box-shadow:0 6px 15px #00000026}.rank-stats{font-size:.85rem;font-family:var(--font-sans);justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.rank-score{font-weight:500}.rank-score strong{font-size:1.05rem;font-weight:800}.rank-next{opacity:.7;font-weight:600}.rank-progress-bar{background-color:var(--color-gray-border);border-radius:4px;width:100%;height:8px;overflow:hidden;box-shadow:inset 0 1px 3px #0000000d}.theme-green .rank-progress-bar{background-color:#ffffff26}.rank-progress-fill{border-radius:4px;height:100%;transition:width .8s cubic-bezier(.34,1.56,.64,1);box-shadow:0 1px 2px #0000001a}.header-rank-badge{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;box-sizing:border-box;background-color:#fff9;border:1.5px solid;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:.75rem;font-weight:800;animation:.4s cubic-bezier(.34,1.56,.64,1) popScale;display:flex;box-shadow:0 4px 10px #00000005}.theme-green .header-rank-badge{background-color:#ffffff1a;color:var(--color-white)!important;border-color:#ffffff4d!important}.header-rank-emoji{font-size:.95rem}.rank-up-overlay{-webkit-backdrop-filter:blur(16px);z-index:1000;box-sizing:border-box;background-color:#00000073;justify-content:center;align-items:center;width:100%;height:100svh;padding:24px;animation:.4s ease-out forwards fadeIn;display:flex;position:fixed;top:0;left:0}.rank-up-modal-card{background:var(--color-white);border:1px solid var(--color-gray-border);text-align:center;box-sizing:border-box;border-radius:28px;width:100%;max-width:420px;padding:40px 24px;animation:.6s cubic-bezier(.34,1.56,.64,1) forwards modalPop;position:relative;overflow:hidden;box-shadow:0 25px 60px -15px #0000004d}.theme-green .rank-up-modal-card{background:#121212;border-color:#ffffff1a;box-shadow:0 25px 60px -15px #0009}.rank-up-badge-logo{width:90px;height:90px;color:var(--color-white);z-index:2;border:4px solid #fffc;border-radius:50%;justify-content:center;align-items:center;margin-bottom:24px;font-size:3.2rem;display:inline-flex;position:relative;box-shadow:0 10px 25px #00000026}.rank-up-title-epic{font-family:var(--font-title);letter-spacing:.08em;color:#b45309;margin:0 0 8px;font-size:1.7rem;font-weight:900}.theme-green .rank-up-title-epic{color:#f59e0b}.rank-up-desc-epic{font-family:var(--font-sans);opacity:.7;color:var(--color-black);margin:0 0 20px;font-size:.95rem;font-weight:500;line-height:1.5}.theme-green .rank-up-desc-epic{color:var(--color-white)}.rank-up-name-badge{font-family:var(--font-title);color:var(--color-white);text-transform:uppercase;letter-spacing:.04em;z-index:2;border:1px solid #fff3;border-radius:30px;margin-bottom:32px;padding:10px 28px;font-size:1.6rem;font-weight:900;display:inline-block;position:relative;box-shadow:0 8px 24px #0003}.rank-up-dismiss-btn{max-width:200px;margin:0 auto}.confetti-container{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.confetti-item{opacity:0;animation:3s cubic-bezier(.12,.85,.38,1) infinite floatConfetti;position:absolute;bottom:-40px;transform:translateY(0)rotate(0)}@keyframes modalPop{0%{opacity:0;transform:scale(.8)translateY(40px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes floatConfetti{0%{opacity:0;bottom:-40px;transform:translate(0)rotate(0)scale(.6)}15%{opacity:1}80%{opacity:.9}to{transform:translateX(var(--float-x,20px)) rotate(var(--float-rotate,360deg)) scale(1.1);opacity:0;bottom:110%}}.confetti-item.c-0{--float-x:-30px;--float-rotate:240deg;animation-duration:2.6s}.confetti-item.c-1{--float-x:40px;--float-rotate:-360deg;animation-duration:3.2s}.confetti-item.c-2{--float-x:-15px;--float-rotate:180deg;animation-duration:2.8s}.confetti-item.c-3{--float-x:25px;--float-rotate:-180deg;animation-duration:3.4s}.confetti-item.c-4{--float-x:-45px;--float-rotate:540deg;animation-duration:3s}.animate-pulse{animation:1.8s ease-in-out infinite alternate pulseGlow}.animate-bounce-slow{animation:3s ease-in-out infinite bounceSlow}@keyframes pulseGlow{0%{transform:scale(1);box-shadow:0 10px 25px #00000026}to{transform:scale(1.05);box-shadow:0 12px 35px #00000040}}@keyframes bounceSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes popScale{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.rank-up-banner{box-sizing:border-box;text-align:left;background:#fde68a;border:1px solid #fcd34d;border-radius:16px;align-items:center;gap:16px;width:100%;max-width:400px;margin-bottom:24px;padding:16px 24px;animation:.8s cubic-bezier(.34,1.56,.64,1) forwards rankUpPop;display:flex;box-shadow:0 10px 25px -5px #f59e0b33}.theme-green .rank-up-banner{color:var(--color-white);background:#fcd34d33;border-color:#fcd34d66;box-shadow:0 10px 25px -5px #0003}.rank-up-trophy{font-size:2.2rem;animation:1.2s ease-in-out infinite alternate trophyShake}.rank-up-details{flex-direction:column;gap:4px;display:flex}.rank-up-title{font-family:var(--font-title);color:#b45309;margin:0;font-size:1.4rem;font-weight:900}.theme-green .rank-up-title{color:#fef3c7}.rank-up-desc{font-family:var(--font-sans);color:#78350f;opacity:.9;margin:0;font-size:.95rem;font-weight:500}.theme-green .rank-up-desc{color:var(--color-white)}@keyframes rankUpPop{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes trophyShake{0%{transform:rotate(-10deg)scale(1)}to{transform:rotate(10deg)scale(1.15)}}.auth-card{background-color:var(--color-gray-light);border:1px solid var(--color-gray-border);box-sizing:border-box;border-radius:20px;width:100%;margin-top:24px;padding:20px;transition:all .3s}.auth-loading{font-family:var(--font-sans);text-align:center;opacity:.6;font-weight:500}.auth-profile-info{justify-content:space-between;align-items:center;display:flex}.auth-profile-details{flex-direction:column;gap:4px;display:flex}.auth-profile-label{text-transform:uppercase;letter-spacing:.05em;opacity:.5;font-size:.8rem;font-weight:600}.auth-profile-name{font-family:var(--font-title);color:var(--color-black);font-size:1.25rem;font-weight:800}.auth-guest-badge{color:#78350f;text-transform:uppercase;background-color:#fbbf24;border-radius:8px;align-self:flex-start;margin-top:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.auth-btn-logout{border:1.5px solid var(--color-black);color:var(--color-black);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:12px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:all .2s}.auth-btn-logout:hover{background-color:var(--color-black);color:var(--color-white)}.auth-prompt{flex-direction:column;align-items:stretch;gap:12px;display:flex}.auth-prompt-text{font-family:var(--font-sans);opacity:.7;text-align:center;margin:0;font-size:.95rem;line-height:1.4}.auth-btn-login{padding:12px 20px!important;font-size:.95rem!important}.menu-action-buttons{gap:16px;width:100%;display:flex}.menu-action-buttons>button{flex:1}.auth-form{flex-direction:column;gap:16px;width:100%;margin:24px 0 16px;display:flex}.form-group{width:100%}.auth-input{border:1.5px solid var(--color-gray-border);width:100%;font-family:var(--font-sans);box-sizing:border-box;background-color:#f9f9f9;border-radius:12px;outline:none;padding:14px 18px;font-size:1rem;transition:all .25s}.auth-input:focus{border-color:var(--color-black);background-color:var(--color-white)}.auth-error-msg{color:#ef4444;text-align:center;background-color:#fee2e2;border-radius:10px;padding:10px 16px;font-size:.9rem;font-weight:500}.auth-divider{opacity:.4;text-transform:uppercase;align-items:center;width:100%;margin:16px 0;font-size:.9rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background-color:var(--color-gray-border);flex:1;height:1px;margin:0 12px}.auth-social-buttons{flex-direction:column;gap:12px;width:100%;display:flex}.auth-social-btn{width:100%;font-family:var(--font-sans);cursor:pointer;box-sizing:border-box;border-radius:12px;justify-content:center;align-items:center;padding:14px;font-size:.95rem;font-weight:600;transition:all .25s;display:flex}.google-btn{background-color:var(--color-white);border:1.5px solid var(--color-gray-border);color:var(--color-black)}.google-btn:hover{background-color:#f1f5f9}.guest-btn{color:#334155;background-color:#f1f5f9;border:none}.guest-btn:hover{background-color:#e2e8f0}.auth-toggle{text-align:center;margin-top:24px}.auth-toggle-btn{font-family:var(--font-sans);color:#3b82f6;cursor:pointer;background:0 0;border:none;font-size:.9rem;font-weight:600;text-decoration:underline}.auth-toggle-btn:hover{color:#2563eb}.leaderboard-table-container{background-color:var(--color-white);border:1px solid var(--color-gray-border);border-radius:20px;width:100%;margin-bottom:24px;overflow:hidden;box-shadow:0 4px 20px #0000000d}.leaderboard-table{border-collapse:collapse;text-align:left;width:100%}.leaderboard-table th,.leaderboard-table td{font-family:var(--font-sans);padding:16px 20px;font-size:.95rem}.leaderboard-table th{text-transform:uppercase;letter-spacing:.05em;opacity:.6;border-bottom:1.5px solid var(--color-gray-border);background-color:#f8fafc;font-size:.8rem;font-weight:700}.leaderboard-table tr{border-bottom:1px solid #f1f5f9;transition:background-color .2s}.leaderboard-table tr:last-child{border-bottom:none}.leaderboard-table tr:hover{background-color:#f8fafc}.row-current-user{font-weight:700;background-color:#f1f5f9!important}.row-current-user:hover{background-color:#e2e8f0!important}.th-rank,.td-rank{text-align:center;width:60px;font-weight:700}.th-score,.td-score{text-align:right;color:var(--color-black);font-weight:700}.current-user-tag{color:var(--color-white);background-color:var(--color-black);border-radius:6px;margin-left:6px;padding:2px 6px;font-size:.75rem;font-weight:800}.leaderboard-rank-emoji{margin-right:6px}.leaderboard-rank-name{opacity:.8;font-size:.85rem;font-weight:600}@media (width<=480px){.menu-action-buttons{flex-direction:column;gap:12px}.leaderboard-table th,.leaderboard-table td{padding:12px;font-size:.85rem}.leaderboard-rank-name{display:none}}.rank-badge-svg{vertical-align:middle;transition:transform .3s cubic-bezier(.34,1.56,.64,1),filter .3s;display:inline-block}.rank-badge-svg.size-small{margin-right:4px}.rank-badge-svg.size-medium{margin-right:6px}.rank-avatar.has-svg{justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.rank-up-badge-logo.has-svg{justify-content:center;align-items:center;width:120px;height:120px;display:inline-flex;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.rank-badge-svg:hover{filter:drop-shadow(0 6px 12px #00000026);transform:scale(1.15)rotate(3deg)}.rank-avatar.has-svg .rank-badge-svg:hover{transform:scale(1.1)translateY(-3px)}.rank-up-badge-logo.has-svg .rank-badge-svg:hover{transform:scale(1.05)translateY(-5px)}.rank-badge-svg.size-xlarge{filter:drop-shadow(0 10px 20px #00000040)}.leaderboard-table th.th-rank,.leaderboard-table td.td-rank{text-align:center;vertical-align:middle;width:60px!important;padding:12px 6px!important}.leaderboard-table th.th-rank{text-transform:uppercase;opacity:.6;font-size:.8rem;font-weight:700;color:var(--color-black)!important;border-bottom:1.5px solid var(--color-gray-border)!important;background-color:#f8fafc!important}.theme-green .leaderboard-table th.th-rank{color:var(--color-white)!important;background-color:#ffffff1a!important;border-bottom:1px solid #fff3!important}.leaderboard-rank-number-badge{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin:0 auto;font-size:.9rem;font-weight:900;display:inline-flex}.rank-badge-pos-1,.rank-badge-pos-2,.rank-badge-pos-3{background-color:var(--color-black)!important;color:var(--color-white)!important}.rank-badge-pos-other{color:var(--color-black)!important;background-color:#0000!important}.theme-green .rank-badge-pos-1,.theme-green .rank-badge-pos-2,.theme-green .rank-badge-pos-3{background-color:var(--color-white)!important;color:var(--color-green)!important}.theme-green .rank-badge-pos-other{color:var(--color-white)!important;background-color:#0000!important}.leaderboard-rank-badge-chip{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;box-sizing:border-box;box-shadow:none;border:none;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:.75rem;font-weight:900;display:inline-flex}.theme-green .leaderboard-rank-badge-chip{background-color:var(--color-white)!important;color:var(--color-black)!important}.leaderboard-rank-chip-name{font-weight:900}.level-badge-container{transition:transform .2s cubic-bezier(.34,1.56,.64,1),filter .2s}.level-badge-container:hover{filter:brightness(1.1)drop-shadow(0 4px 10px #0003);transform:scale(1.12)rotate(-2deg)}.leaderboard-level-text{font-weight:700;font-family:var(--font-sans);color:var(--color-black);font-size:.95rem}.theme-green .leaderboard-level-text{color:var(--color-white)}.theme-green .row-current-user{color:var(--color-white)!important;background-color:#fff3!important}.theme-green .row-current-user:hover{background-color:#ffffff4d!important}.theme-green .current-user-tag{color:var(--color-green)!important;background-color:var(--color-white)!important}
