*{margin:0;padding:0;box-sizing:border-box;font-family:'Segoe UI','SF Pro Rounded',-apple-system,Poppins,Nunito,system-ui,sans-serif}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:linear-gradient(135deg,#fff8f0,#fff2e5);background-attachment:fixed;min-height:100vh;min-height:100dvh;display:block;padding:12px 16px 32px;overflow-y:auto;overflow-x:hidden}body,html{height:100%;overflow-y:auto}#app{width:100%;max-width:960px;margin:0 auto;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;padding:24px 24px 24px;box-shadow:0 2px 16px rgba(0,0,0,.06);border:1px solid #e8e0d8;overflow:visible}.phase-container{animation:fadeIn .4s ease;overflow:visible}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.game-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1.5px solid #e8e0d8}.logo{display:flex;align-items:center;gap:10px}.logo i{font-size:1.5rem;color:#ff6b4a;background:#fff2eb;padding:8px 10px;border-radius:12px}.logo h1{font-size:1.4rem;font-weight:700;color:#2d2d2d;letter-spacing:-.3px}.badge{background:#ff6b4a;color:#fff;font-size:.65rem;font-weight:700;padding:4px 14px;border-radius:20px;letter-spacing:.5px}.level-badge{background:#ff6b4a;padding:6px 18px;border-radius:12px;color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;gap:8px}.level-badge i{color:#ffe0d5}.level-num{background:rgba(255,255,255,.2);padding:0 10px;border-radius:30px;font-size:.8rem}.subject-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.subj-btn{background:#fff8f0;border:1.5px solid #e8e0d8;padding:6px 14px;border-radius:12px;font-weight:600;font-size:.8rem;color:#2d2d2d;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.subj-btn:hover{background:#fff2eb;border-color:#ff6b4a}.subj-btn:active{background:#ffe8dc}.subj-btn.active{background:#ff6b4a;color:#fff;border-color:#ff6b4a}.subj-btn.active i{color:#fff}.settings-panel{background:#fff;padding:20px 24px;border-radius:16px;margin-bottom:16px;border:1px solid #e8e0d8;box-shadow:0 2px 16px rgba(0,0,0,.06)}.settings-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.setting-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.setting-group label{font-weight:600;color:#2d2d2d;font-size:.85rem}input[type=number],input[type=password],input[type=search],input[type=text],select,textarea{height:40px;border-radius:10px;border:1.5px solid #e8e0d8;padding:0 14px;font-size:15px;font-family:inherit;color:#2d2d2d;background:#fff;outline:0;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}input[type=number]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=text]::placeholder,textarea::placeholder{color:#b8b0a8;font-style:normal}input[type=number]:hover,input[type=password]:hover,input[type=search]:hover,input[type=text]:hover,select:hover,textarea:hover{border-color:#d0c5b8}input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:#ff6b4a;box-shadow:0 0 0 3px rgba(255,107,74,.12)}input:disabled,select:disabled,textarea:disabled{background:#f5f0ea;color:#bfbfbf;cursor:not-allowed}textarea{min-height:80px;padding:12px 14px;resize:vertical;height:auto}select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23777'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.setting-group select{min-width:80px}.setting-group input{flex:1;min-width:100px}.progress-area{background:#f0e8e0;border-radius:10px;height:8px;margin-bottom:16px;overflow:hidden}.progress-fill{height:100%;width:0%;background:#ff6b4a;border-radius:10px;transition:width .5s ease}.game-info-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;background:#fff;padding:12px 20px;border-radius:16px;margin-bottom:16px;border:1px solid #e8e0d8;box-shadow:0 2px 12px rgba(0,0,0,.04)}.info-item{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#777}.info-item i{color:#ff6b4a}.info-item strong{color:#2d2d2d;font-weight:700}.btn-small{padding:8px 16px;border-radius:12px;font-size:.8rem;border:1.5px solid #e8e0d8;background:#fff;cursor:pointer;font-weight:600;color:#2d2d2d;transition:all .2s ease}.btn-small:hover{background:#fff8f0;border-color:#ff6b4a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,107,74,.1)}.waiting-container{display:flex!important;align-items:center;justify-content:center;min-height:200px;padding:24px}.waiting-content{text-align:center;max-width:560px;width:100%;padding:24px;display:flex;flex-direction:column;align-items:center}.waiting-icon{font-size:3rem;color:#ff6b4a;margin-bottom:16px;animation:floatUpDown 2s ease-in-out infinite}@keyframes floatUpDown{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-waiting{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.05)}}.waiting-content h2{font-size:1.5rem;color:#2d2d2d;margin-bottom:4px;font-weight:700}.waiting-content p{font-size:.9rem;color:#777;margin:4px 0 12px 0}.waiting-content p strong{color:#2d2d2d}.waiting-tips{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px;padding-top:16px;border-top:1.5px dashed #e8e0d8}.waiting-tips span{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:#2d2d2d;background:#fff;padding:8px 18px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);border:1px solid #e8e0d8;font-weight:500;width:fit-content;max-width:100%}.phase-title{font-size:1rem;font-weight:700;color:#2d2d2d;margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1.5px solid #f0e8e0}.phase-title i{color:#ff6b4a;font-size:1rem}.phase-sub{font-size:.75rem;font-weight:500;color:#777;background:#f5f0eb;padding:3px 12px;border-radius:30px}.phase-progress{font-size:.75rem;font-weight:600;color:#777;background:#f5f0eb;padding:3px 14px;border-radius:30px;margin-left:auto}.word-display{text-align:center;padding:24px;background:#fff;border-radius:16px;border:1px solid #e8e0d8;box-shadow:0 2px 16px rgba(0,0,0,.06);margin-bottom:16px;position:relative}.word-en{font-size:2.25rem;font-weight:800;color:#2d2d2d;letter-spacing:-.5px}.word-phonetic{font-size:.9rem;color:#999;margin:4px 0 8px;font-family:'SF Pro Rounded','Segoe UI',-apple-system,sans-serif;font-weight:500}.word-ch{font-size:1.1rem;color:#2d2d2d;background:#fff8f0;padding:4px 20px;border-radius:12px;display:inline-block;font-weight:600;border:1px solid #f0e8e0}.word-description{font-size:.9rem;color:#777;background:#fffaf5;padding:8px 18px;border-radius:12px;margin:10px auto 8px;display:inline-block;max-width:90%;border:1px solid #f0e8e0;font-weight:500}.btn-speak{background:#ff6b4a;color:#fff;border:none;border-radius:12px;padding:6px 16px;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-top:8px;transition:all .2s;font-weight:600}.btn-speak:hover{background:#e85d3a;transform:translateY(-1px)}.btn-speak.playing{animation:pulse .8s ease infinite}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.letter-input-area{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:8px 0 14px;min-height:52px}.letter-slot{width:38px;height:44px;border-bottom:3px solid #e8e0d8;display:flex;align-items:flex-end;justify-content:center;font-size:1.5rem;font-weight:700;color:#2d2d2d;background:0 0;transition:all .2s}.letter-slot.filled{border-bottom-color:#ff6b4a}.letter-slot.active{border-bottom-color:#ff6b4a;border-bottom-width:4px}.letter-slot.correct{border-bottom-color:#ff6b4a;color:#2d2d2d}.letter-slot.wrong{border-bottom-color:#e84393;color:#e84393;animation:shake .3s ease}.letter-slot.hint{border-bottom-color:#ff8f6c;color:#4ecdc4}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.prep-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:4px}.prep-counter{font-weight:700;color:#ff6b4a;font-size:.85rem;background:#fff2eb;padding:4px 16px;border-radius:12px;border:1px solid #ffe0d5}.prep-status{text-align:center;margin-top:10px;font-weight:600;color:#999;font-size:.9rem;min-height:1.5em}.prep-status.success{color:#4ecdc4}.prep-status.error{color:#e84393}.btn{background:#fff;border:1.5px solid #e8e0d8;padding:10px 22px;border-radius:12px;font-weight:700;color:#2d2d2d;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:.85rem;height:44px;box-shadow:0 1px 4px rgba(0,0,0,.04)}.btn:hover{background:#fff2eb;border-color:#ff6b4a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,107,74,.1)}.btn:active{background:#ffe8dc;transform:scale(.97)}.btn-primary{background:#ff6b4a;color:#fff;border-color:#ff6b4a}.btn-primary:hover{background:#e85d3a;border-color:#e85d3a}.btn-primary:active{background:#d45535}.btn-primary i{color:rgba(255,255,255,.85)}.btn-secondary{background:#fff;border-color:#e8e0d8;color:#2d2d2d}.btn-secondary:hover{background:#f5f0eb;border-color:#d0c8c0}.game-stats{display:flex;justify-content:center;gap:16px 24px;background:#fff;padding:12px 20px;border-radius:16px;margin-bottom:16px;font-weight:600;color:#2d2d2d;font-size:.85rem;flex-wrap:wrap;border:1px solid #e8e0d8;box-shadow:0 2px 12px rgba(0,0,0,.04)}.game-stats i{color:#ff6b4a;margin-right:3px}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.flip-card{perspective:600px;aspect-ratio:4/3;cursor:pointer}.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .35s ease;transform-style:preserve-3d}.flip-card.flipped .flip-card-inner,.flip-card.matched .flip-card-inner{transform:rotateY(180deg)}.flip-card.matched{opacity:.3;pointer-events:none;transform:scale(.9);transition:all .4s ease}.flip-card-back,.flip-card-front{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:14px;display:flex;align-items:center;justify-content:center;padding:8px;text-align:center;font-weight:700;font-size:.85rem;border:none}.flip-card-front{background:#ff6b4a;color:#fff;font-size:1.5rem;transform:rotateY(0);box-shadow:0 4px 12px rgba(255,107,74,.2)}.flip-card-back{background:#fff;transform:rotateY(180deg);flex-direction:column;gap:4px;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid #e8e0d8}.flip-card-back .card-en{font-size:.95rem;color:#2d2d2d;font-weight:800}.flip-card-back .card-ch{font-size:.85rem;color:#ff6b4a;background:#fff2eb;padding:3px 12px;border-radius:12px;font-weight:600}.game-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:4px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(45,45,45,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-content{background:#fff;border-radius:20px;padding:28px 32px 24px;max-width:380px;width:100%;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.1);animation:popIn .4s cubic-bezier(.4,0,.2,1);border:1px solid #e8e0d8}@keyframes popIn{0%{transform:scale(.8) translateY(20px);opacity:0}60%{transform:scale(1.02);opacity:1}100%{transform:scale(1) translateY(0);opacity:1}}.modal-icon{font-size:3rem;margin-bottom:4px}.modal-content h2{font-size:1.4rem;color:#2d2d2d;margin-bottom:4px}.modal-content p{color:#777;font-size:.95rem;margin-bottom:16px}.modal-content .btn{font-size:.95rem;padding:10px 28px;height:44px}.footer-stats{display:flex;justify-content:space-between;margin-top:12px;color:#888;font-weight:500;border-top:1.5px solid #e8e0d8;padding-top:10px;font-size:.82rem;flex-wrap:wrap;gap:8px}.footer-stats i{color:#999;margin-right:3px}.modal-large{max-width:620px!important;padding:24px 28px 20px!important;border-radius:20px!important}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;border-bottom:1.5px solid #f0e8e0;padding-bottom:10px}.modal-header h2{font-size:1.2rem;color:#2d2d2d;display:flex;align-items:center;gap:10px}.modal-close{background:0 0;border:none;font-size:1.5rem;cursor:pointer;color:#999;padding:0 8px}.modal-close:hover{color:#ff6b4a}.modal-body{max-height:420px;overflow-y:auto;margin-bottom:12px;padding:0 4px}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#f5f0eb;border-radius:10px}.modal-body::-webkit-scrollbar-thumb{background:#d0c8c0;border-radius:10px}.word-list-grid{display:table;width:100%;border-collapse:collapse}.word-list-item{display:table-row;border-bottom:1px dashed #e8e0d8}.word-list-item:last-child{border-bottom:none}.word-list-item .wl-en{display:table-cell;padding:8px 12px 8px 4px;font-weight:600;color:#2d2d2d;width:40%;vertical-align:middle}.word-list-item .wl-ch{display:table-cell;padding:8px 12px;color:#777;width:35%;vertical-align:middle}.word-list-item .wl-status{display:table-cell;padding:8px 4px 8px 12px;font-size:.75rem;color:#999;width:25%;text-align:right;vertical-align:middle}.word-list-item.done .wl-en{color:#ff6b4a}.word-list-item.done .wl-status{color:#4ecdc4}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1.5px solid #e8e0d8;font-size:.85rem;color:#777}.modal-footer .btn{font-size:.85rem;padding:8px 20px}#userModal .modal-content{max-width:420px!important;padding:28px 32px 24px!important}.user-item{padding:8px 18px;border-radius:12px;border:1.5px solid #e8e0d8;background:#fff;cursor:pointer;font-weight:500;color:#2d2d2d;transition:all .2s;font-size:.9rem}.user-item:hover{background:#ff6b4a;color:#fff;border-color:#ff6b4a}.user-item.active{background:#ff6b4a;color:#fff;border-color:#ff6b4a}#newUserName:focus{border-color:#ff6b4a;box-shadow:0 0 0 3px rgba(255,107,74,.1)}@media (max-width:768px){body{padding:8px}#app{padding:16px 14px 16px;border-radius:16px}.logo h1{font-size:1.1rem}.word-en{font-size:1.6rem}.letter-slot{width:32px;height:38px;font-size:1.3rem}.card-grid{grid-template-columns:repeat(4,1fr);gap:8px}.flip-card-front{font-size:1.3rem}.word-list-grid{display:block}.word-list-item{display:flex;flex-wrap:wrap;padding:6px 0;gap:2px}.word-list-item .wl-en{display:inline;width:auto;padding:0}.word-list-item .wl-ch{display:inline;width:auto;padding:0 8px}.word-list-item .wl-status{display:inline;width:auto;padding:0;text-align:left}.settings-row{gap:8px 12px}.setting-group input{min-width:80px}.modal-large{max-width:95%!important;padding:16px 16px 14px!important}#userModal .modal-content{padding:20px 16px 18px!important;max-width:95%!important}.user-item{font-size:.85rem;padding:6px 14px}}@media (max-width:480px){body{padding:4px}#app{padding:12px 10px 14px;border-radius:14px}.logo h1{font-size:.9rem}.logo i{font-size:1.1rem;padding:6px 8px}.word-en{font-size:1.2rem}.letter-slot{width:26px;height:32px;font-size:1.1rem;border-bottom-width:2px}.card-grid{grid-template-columns:repeat(3,1fr);gap:5px}.flip-card-front{font-size:1rem}.flip-card-back .card-en{font-size:.65rem}.flip-card-back .card-ch{font-size:.6rem}.game-stats{font-size:.65rem;gap:6px 10px;padding:4px 10px}.subj-btn{font-size:.6rem;padding:3px 10px}.btn{font-size:.7rem;padding:5px 12px;height:36px}.waiting-container{min-height:150px;padding:16px 10px}.waiting-icon{font-size:2.4rem}.waiting-content h2{font-size:1.1rem}.waiting-content p{font-size:.8rem}.waiting-tips span{font-size:.65rem;padding:3px 10px}.modal-content{padding:16px 14px 14px;border-radius:16px;max-width:300px}.modal-icon{font-size:2.2rem}.modal-content h2{font-size:1.1rem}.word-list-grid{display:block}.word-list-item{display:flex;flex-wrap:wrap;padding:4px 0;gap:2px}.word-list-item .wl-en{display:inline;width:auto;padding:0}.word-list-item .wl-ch{display:inline;width:auto;padding:0 6px}.word-list-item .wl-status{display:inline;width:auto;padding:0;text-align:left}.modal-large{max-width:98%!important;padding:12px 12px 10px!important}#userModal .modal-content{padding:16px 12px 14px!important;max-width:98%!important}#newUserName{font-size:.8rem;padding:8px 12px}}@media (max-width:375px){.card-grid{grid-template-columns:repeat(2,1fr)}.letter-slot{width:22px;height:28px;font-size:.95rem}.word-en{font-size:1rem}}@media (min-width:1200px){#app{padding:32px 36px 28px;border-radius:20px;max-width:960px}.card-grid{grid-template-columns:repeat(4,1fr);gap:14px}.game-stats{gap:24px 36px;font-size:.9rem;justify-content:center}.game-info-bar{gap:12px 24px;justify-content:center}.word-en{font-size:2.5rem}.footer-stats{font-size:.85rem}}@media (min-width:1600px){#app{padding:36px 48px 32px;border-radius:24px;max-width:960px}.card-grid{gap:16px}.game-header{margin-bottom:24px;padding-bottom:16px}.phase-title{font-size:1.1rem}}@media (max-height:500px) and (orientation:landscape){body{padding:4px}#app{padding:10px 16px 12px;max-width:100%;margin:0 auto}.game-header{margin-bottom:8px;padding-bottom:8px}.logo i{font-size:1rem;padding:4px 6px}.logo h1{font-size:.9rem}.word-display{padding:12px 12px 10px;margin-bottom:8px}.word-en{font-size:1.2rem}.word-phonetic{font-size:.7rem}.word-ch{font-size:.85rem;padding:3px 12px}.letter-slot{width:28px;height:32px;font-size:1rem}.letter-input-area{padding:4px 0 8px;min-height:40px;gap:4px}.prep-controls{gap:6px}.btn{padding:5px 12px;font-size:.65rem;height:34px}.card-grid{gap:5px;grid-template-columns:repeat(4,1fr)}.flip-card-front{font-size:1rem}.game-stats{font-size:.6rem;padding:4px 10px;gap:6px 12px;margin-bottom:8px}.footer-stats{font-size:.8rem;padding-top:6px;margin-top:8px}.phase-title{font-size:1rem;margin-bottom:6px;padding-bottom:4px}.settings-panel{padding:8px 12px;margin-bottom:8px}.setting-group label{font-size:.6rem}.setting-group select{font-size:.6rem;padding:3px 8px}.subj-btn{font-size:.55rem;padding:3px 8px}.progress-area{height:4px;margin-bottom:8px}}.levels-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}@media (max-width:860px){.levels-layout{grid-template-columns:1fr;gap:16px}}.settings-actions{text-align:center;margin-top:24px;display:flex;gap:12px;justify-content:center;padding-top:4px}.level-grid-container{margin-top:8px}#phaseWaiting .waiting-content{max-width:560px;margin:0 auto;padding:0}#backToSelectionBtn{background:0 0;border:1.5px solid #d0c8c0;color:#8c8278;margin-top:24px;align-self:flex-start}#backToSelectionBtn:hover{background:rgba(0,0,0,.03);border-color:#b0a8a0;color:#5c5c5c}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1.5px solid #e8e0d8}.header-left{display:flex;align-items:center;gap:14px}.header-center{flex:1;display:flex;justify-content:center}.header-right{display:flex;align-items:center;gap:8px}.header-info{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#777;font-weight:500}.header-sep{color:#d0c8c0;font-weight:300}.header-btn{background:#fff;border:1.5px solid #e8e0d8;border-radius:12px;padding:8px 16px;cursor:pointer;font-weight:600;font-size:.82rem;color:#2d2d2d;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;height:44px}.header-btn:hover{background:#fff8f0;border-color:#ff6b4a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,107,74,.1)}.lang-selector{position:relative}.lang-btn{background:#fff;border:1.5px solid #e8e0d8;border-radius:12px;padding:8px 14px;cursor:pointer;font-weight:600;font-size:.82rem;color:#2d2d2d;display:inline-flex;align-items:center;gap:6px;transition:all 70ms linear;height:44px}.lang-btn:hover{background:#fff8f0}.lang-dropdown{display:none;position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1.5px solid #e8e0d8;border-radius:12px;padding:6px 0;z-index:100;min-width:120px;box-shadow:0 4px 16px rgba(0,0,0,.08)}.lang-dropdown.show{display:block}.lang-option{padding:8px 18px;cursor:pointer;font-size:.85rem;color:#2d2d2d;font-weight:500;transition:background .1s}.lang-option:hover{background:#fff8f0}.lang-option.active{color:#ff6b4a;font-weight:700}.lang-switch{display:flex;align-items:center;gap:4px}.lang-link{background:#fff;border:1.5px solid #e8e0d8;border-radius:12px;padding:8px 14px;font-size:.82rem;font-weight:600;color:#2d2d2d;text-decoration:none;height:44px;display:inline-flex;align-items:center;transition:all .2s ease}.lang-link:hover{background:#fff8f0;border-color:#ff6b4a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,107,74,.1)}.lang-link.active{background:#ff6b4a;color:#fff;border-color:#ff6b4a}.footer{display:flex;justify-content:space-between;margin-top:16px;color:#888;font-weight:500;border-top:1.5px solid #e8e0d8;padding-top:12px;font-size:.82rem;flex-wrap:wrap;gap:8px}.footer-item{display:flex;align-items:center;gap:6px}.footer-item i{color:#999}.footer-item .stat-label{color:#999;font-size:.8rem;font-weight:500}.footer-item .stat-value{color:#2d2d2d;font-size:.9rem;font-weight:700;background:#f5f0eb;padding:2px 10px;border-radius:30px;min-width:36px;text-align:center}.info-progress{display:flex;align-items:center;gap:4px}.modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(45,45,45,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal.show{display:flex}.close-btn{background:0 0;border:none;font-size:1.5rem;cursor:pointer;color:#999;padding:4px 8px;border-radius:8px;line-height:1;transition:background .1s}.close-btn:hover{background:#f5f0eb}.vl-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1.5px solid #f0e8e0;margin-bottom:4px}.vl-header h2{font-size:1.1rem;color:#2d2d2d}.vl-header h2 i{color:#ff6b4a;margin-right:6px}.vocab-list-item{display:flex;flex-wrap:wrap;gap:4px 10px;padding:10px 12px;border-bottom:1px solid #f0e8e0;align-items:baseline}.vocab-list-item:last-child{border-bottom:none}.vl-en{font-weight:700;color:#2d2d2d;font-size:.95rem;min-width:120px}.vl-phonetic{color:#999;font-size:.8rem;font-style:italic}.vl-trans{color:#ff6b4a;font-size:.85rem;background:#fff2eb;padding:2px 10px;border-radius:30px}.vl-explain{color:#777;font-size:.8rem;width:100%;margin-top:2px}.btn-danger{background:#ff6b4a;color:#fff;border-color:#ff6b4a}.btn-danger:hover{background:#e85d3a}.btn-danger:active{transform:scale(.97)}.btn-sm{padding:6px 16px;border-radius:12px;font-size:.8rem;border:1.5px solid #e8e0d8;background:#fff;cursor:pointer;font-weight:600;color:#2d2d2d;transition:all .2s ease;height:36px}.btn-sm:hover{background:#fff8f0;border-color:#ff6b4a;transform:translateY(-1px)}.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}@media (max-width:768px){.subject-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.subject-grid{grid-template-columns:1fr}}.subject-card{background:#fff;border-radius:16px;padding:20px 16px;cursor:pointer;transition:all .2s;border:1px solid #e8e0d8;box-shadow:0 2px 12px rgba(0,0,0,.04);display:flex;flex-direction:column;gap:6px;min-height:160px}.subject-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.08);border-color:#ff6b4a}.subject-card:active{transform:scale(.97)}.sc-icon{font-size:1.8rem;margin-bottom:4px}.sc-name{font-size:1.15rem;font-weight:700;color:#2d2d2d}.sc-name-en{font-size:.8rem;color:#999;font-weight:500}.sc-stats{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;color:#777;margin-top:6px}.sc-stats span{display:inline-flex;align-items:center;gap:3px}.sc-stats .num{font-weight:700;color:#ff6b4a}.sc-progress-bar{height:6px;background:#f0e8e0;border-radius:6px;margin-top:8px;overflow:hidden}.sc-progress-fill{height:100%;border-radius:6px;background:#ff6b4a;transition:width .4s ease}.ss-header{margin-bottom:12px}.ss-header h2{font-size:1.5rem;font-weight:700;color:#2d2d2d}.ss-header p{font-size:.9rem;color:#777;margin-top:4px}.sc-header{font-size:1rem;font-weight:700;color:#2d2d2d;margin-bottom:16px;display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1.5px solid #f0e8e0}.settings-container{background:#fff;padding:16px 18px;border-radius:16px;border:1px solid #e8e0d8;box-shadow:0 2px 12px rgba(0,0,0,.04)}.settings-container .settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px;border-bottom:1px solid #f0e8e0}.settings-container .settings-row:last-of-type{border-bottom:none}.settings-container .settings-row>span:first-child{font-weight:600;color:#2d2d2d;font-size:.85rem;white-space:nowrap;flex-shrink:0}.settings-container select,.settings-row select{min-width:100px}.settings-row input[type=text]{flex:1;min-width:100px}#settingsCompletedValue,#settingsScoreValue{font-weight:700;font-size:1.1rem;color:#ff6b4a;min-width:24px;text-align:right}.level-grid-container{margin-top:8px;overflow-x:auto}.level-grid-title{font-weight:700;color:#2d2d2d;margin-bottom:12px;display:flex;align-items:center;gap:8px;font-size:.95rem}.level-grid-title i{color:#ff6b4a}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;max-width:560px;margin:0 auto}.level-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px 8px;border-radius:14px;border:1.5px solid #e8e0d8;background:#fff;cursor:pointer;font-weight:600;font-size:.95rem;color:#2d2d2d;transition:all .15s ease;min-height:76px;box-shadow:0 1px 4px rgba(0,0,0,.03)}.level-btn:hover{background:#fff8f0;border-color:#ff6b4a;transform:translateY(-2px);box-shadow:0 4px 16px rgba(255,107,74,.1)}.level-btn .level-num-label{font-size:1.1rem;font-weight:700}.level-btn .level-icon{font-size:.85rem}.level-btn.completed{background:#f5fffa;border-color:#4ecdc4;color:#4ecdc4;position:relative;box-shadow:0 2px 8px rgba(78,205,196,.1)}.level-btn.completed::before{content:"✓";position:absolute;top:4px;right:6px;font-size:.65rem;font-weight:700;color:#4ecdc4;line-height:1}.level-btn.completed .level-icon{color:#4ecdc4}.level-btn.completed:hover{background:#f5fffa;border-color:#4ecdc4}.level-btn.current{background:#ff6b4a;border-color:#ff6b4a;color:#fff;box-shadow:0 3px 10px rgba(255,107,74,.25)}.level-btn.current .level-icon{color:#fff}.level-btn.current:hover{background:#e85d3a;border-color:#e85d3a;transform:translateY(-1px)}.level-btn.locked{background:#fafaf8;border-color:#e8e0d8;color:#8c8278;cursor:not-allowed}.level-btn.locked:hover{background:#fafaf8;border-color:#e8e0d8;transform:none}.level-btn.locked .fa-lock{color:#8c8278}.phase{display:none}.phase.show{display:block}.phase-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1.5px solid #f0e8e0}.phase-header h2{font-size:1rem;font-weight:700;color:#2d2d2d}.phase-counter{font-weight:700;color:#ff6b4a;font-size:.85rem;background:#fff2eb;padding:4px 16px;border-radius:12px;border:1px solid #ffe0d5}.phase-nav{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}.prep-input-area{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0;min-height:52px}.prep-progress{text-align:center;font-weight:600;color:#999;font-size:.85rem;margin-top:8px}.fill-letters-container{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:8px 0 14px;min-height:52px}.fill-slots-container{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:8px 0}.fill-undo-row{display:flex;justify-content:center;padding:4px 0}.fill-undo-btn{height:44px;padding:0 18px;font-size:.9rem;font-weight:600;border:1.5px solid #e8e0d8;border-radius:12px;background:#fff8f0;color:#666;cursor:pointer;transition:all .2s}.fill-undo-btn:hover{background:#ffede4;color:#ff6b4a;border-color:#ff6b4a}.fill-undo-btn:active{transform:scale(.96)}.fill-undo-btn:disabled{opacity:.35;cursor:not-allowed;background:#fff8f0;color:#ccc;border-color:#e8e0d8}.game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.game-stats-row{display:flex;justify-content:center;gap:16px 24px;background:#fff;padding:12px 20px;border-radius:16px;margin-bottom:16px;font-weight:600;color:#2d2d2d;font-size:.85rem;flex-wrap:wrap;border:1px solid #e8e0d8;box-shadow:0 2px 12px rgba(0,0,0,.04)}.complete-header{margin-bottom:16px}.complete-header h2{font-size:1.2rem;font-weight:700;color:#2d2d2d;text-align:center}.complete-stats{margin:12px 0}.cs-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0e8e0;font-size:.85rem;color:#2d2d2d}.cs-row:last-child{border-bottom:none}.complete-actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.user-list{margin:12px 0;max-height:200px;overflow-y:auto}.user-input-row{display:flex;gap:8px;align-items:center;margin:10px 0}.user-actions{margin-top:8px}.user-input-row input{flex:1}.progress-bar-wrapper{background:#f0e8e0;border-radius:10px;height:8px;overflow:hidden;flex:1;max-width:300px}.progress-bar-wrapper .progress-fill{height:100%;border-radius:10px;background:#ff6b4a;transition:width .5s ease}.prep-input-row{display:flex;align-items:center;gap:10px;width:100%;max-width:540px;margin:0 auto}.prep-input-row .prep-text-input{flex:1;text-align:center;letter-spacing:2px;font-weight:600}.prep-submit-btn{width:100px;height:44px;flex-shrink:0;background:#ff6b4a;color:#fff;border:none;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.prep-submit-btn:hover{background:#e85d3a;transform:translateY(-1px)}.prep-submit-btn:active{transform:scale(.97)}.prep-skip-btn-wrapper{display:flex;justify-content:center;margin-top:8px}.prep-skip-btn-wrapper .btn{width:100px}.btn-hint{background:#ff8c42;color:#fff;border:none;padding:8px 16px;border-radius:10px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s;width:100px}.btn-hint:hover{background:#e67a35;transform:translateY(-1px)}.btn-hint:active{background:#cc6a2e;transform:translateY(0)}.btn-hint:disabled{opacity:.45;cursor:not-allowed;transform:none}.hint-box{background:#fff9f2;border:1.5px solid #ff8c42;border-radius:12px;padding:14px 18px;margin:12px auto 0;max-width:480px;text-align:center;font-size:1rem;color:#5d4037;line-height:1.6;animation:hintFadeIn .35s ease}@keyframes hintFadeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.hint-box .hint-label{font-weight:700;color:#ff6d00}.hint-box .hint-word{font-weight:800;font-size:1.15rem;color:#e65100}.hint-box .hint-def{color:#6d4c41;margin-top:4px}.fill-slot{width:44px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700;background:#fff8f0;border:1.5px solid #e8e0d8;border-radius:10px;transition:all .3s}.fill-slot.empty{color:#ff6b4a;background:#fff2eb}.fill-letter-btn{width:44px;height:48px;font-size:1.2rem;font-weight:700;border:1.5px solid #e8e0d8;border-radius:10px;background:#fff;cursor:pointer;transition:all .2s;color:#2d2d2d}.fill-letter-btn:hover{background:#fff8f0;border-color:#ff6b4a}.fill-letter-btn:active{background:#ffe8dc}.store-header{display:flex;align-items:center;justify-content:space-between;padding:12px 0;margin-bottom:16px;border-bottom:1.5px solid #e8e0d8}.store-header h1{font-size:1.2rem;margin:0;font-weight:700;color:#2d2d2d}.btn-back{display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;color:#8c8c8c;font-size:.9rem;cursor:pointer;padding:6px 12px;border-radius:8px;transition:all .2s ease;font-family:inherit}.btn-back:hover{color:#ff6b4a;background:#fff2eb}.btn-back i{font-size:.85rem}.store-points-display{display:flex;align-items:center;gap:6px;background:#fff2eb;padding:6px 16px;border-radius:12px;font-weight:700;font-size:.95rem;color:#ff6b4a;border:1px solid #ffe0d5}.points-icon{font-size:1rem}.store-main{padding:0;max-width:800px;margin:0 auto}.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.store-card{background:#fff;border-radius:14px;padding:22px 16px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.06);display:flex;flex-direction:column;align-items:center;gap:10px;border:1px solid #f0e8e0;transition:transform .2s,box-shadow .2s}.store-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08)}.store-card-icon{font-size:2.4rem}.store-card-name{font-size:.9rem;color:#2d2d2d;font-weight:600}.store-card-cost{font-size:.85rem;color:#ff6b4a;font-weight:700}.btn-redeem{background:#ff6b4a;color:#fff;border:none;padding:8px 22px;border-radius:12px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;text-align:center}.btn-redeem:hover{background:#e85d3a;transform:translateY(-1px)}.btn-redeem:active{transform:scale(.97)}.btn-redeem.disabled{background:#ddd;color:#999;cursor:not-allowed;transform:none}.btn-redeem.disabled:hover{background:#ddd;transform:none}.store-empty{text-align:center;padding:40px;color:#aaa;font-size:.9rem}.store-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:1000}.store-modal{background:#fff;border-radius:16px;padding:24px;min-width:280px;max-width:360px;box-shadow:0 8px 30px rgba(0,0,0,.15)}.store-modal h3{margin:0 0 12px;font-size:1.1rem;color:#2d2d2d}.store-modal p{color:#666;font-size:.9rem;margin:0 0 20px}.store-modal input[type=password]{width:100%;margin-bottom:16px}.store-modal-actions{display:flex;gap:10px;justify-content:flex-end}.btn-secondary{background:#eee;border:none;padding:8px 20px;border-radius:10px;cursor:pointer;font-size:.85rem;color:#555}.btn-primary{background:linear-gradient(135deg,#ff6b4a,#ff8c6b);color:#fff;border:none;padding:8px 20px;border-radius:10px;cursor:pointer;font-size:.85rem;font-weight:700}.store-history{max-width:800px;margin:0 auto;padding:0 0 20px}.history-toggle{color:#777;font-size:.85rem;padding:12px 0;border-bottom:1px solid #e8e0d8;cursor:pointer;font-weight:600;user-select:none;transition:color .2s}.history-toggle:hover{color:#ff6b4a}.history-list{padding-top:8px}.history-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:10px;margin-bottom:6px;font-size:.85rem;color:#555;border:1px solid #f0e8e0}.history-icon{font-size:1rem}.history-name{flex:1;font-weight:500}.history-cost{color:#ff6b4a;font-weight:700}.history-time{color:#aaa;font-size:.75rem}.history-empty{text-align:center;color:#aaa;padding:20px;font-size:.85rem}.store-footer{text-align:center;padding:16px 0;margin-top:20px;border-top:1px solid #f0e8e0}.admin-link{color:#bbb;font-size:.75rem;text-decoration:none;transition:color .2s}.admin-link:hover{color:#ff6b4a}.admin-login{max-width:380px;margin:80px auto;text-align:center;padding:48px 36px;background:#fff;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.06)}.admin-login h1{font-size:1.5rem;font-weight:700;color:#ff6b4a;margin:0 0 28px;letter-spacing:.5px}.admin-login-form{display:flex;flex-direction:column;gap:16px}.admin-login-form input{text-align:center;border:1.5px solid #d0c8c0;border-radius:8px;height:44px;font-size:15px;transition:border-color .2s ease,box-shadow .2s ease}.admin-login-form input:focus{border-color:#ff6b4a;box-shadow:0 0 0 3px rgba(255,107,74,.12)}.admin-login-form input::placeholder{color:#999}#loginBtn{background:#ff6b4a;color:#fff;border:none;border-radius:8px;height:44px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s ease}#loginBtn:hover{background:#e85d3a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,107,74,.2)}#loginBtn:active{background:#d45535;transform:scale(.97)}#loginError{margin-top:12px;font-size:.85rem}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-bottom:1px solid #e8e0d8;border-radius:12px 12px 0 0}.admin-header h2{font-size:1.2rem;margin:0;color:#2d2d2d}.admin-header-right{display:flex;gap:8px}.admin-header .btn-small{background:#fff8f0;border:1.5px solid #e8e0d8;padding:6px 14px;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:600;color:#2d2d2d;transition:all .2s ease}.admin-header .btn-small:hover{background:#fff2eb;border-color:#ff6b4a;transform:translateY(-1px)}.admin-main{max-width:700px;margin:0 auto;padding:24px 20px 48px}.admin-form-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:20px;box-shadow:0 2px 16px rgba(0,0,0,.06);border:1px solid #f0e8e0}.admin-form-section h3{font-size:1rem;font-weight:700;margin:0 0 20px;color:#2d2d2d}.admin-form-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.admin-form-row>label{font-size:.9rem;font-weight:600;color:#2d2d2d;min-width:80px;display:flex;align-items:center;gap:8px;cursor:pointer}#itemIcon,#itemName,.admin-form-row input[type=number],.admin-form-row input[type=text]{flex:1;border:1.5px solid #d0c8c0;border-radius:8px;height:40px}#itemIcon:focus,#itemName:focus,.admin-form-row input[type=number]:focus,.admin-form-row input[type=text]:focus{border-color:#ff6b4a;box-shadow:0 0 0 3px rgba(255,107,74,.12)}.admin-form-row input[type=checkbox]{width:16px;height:16px;accent-color:#ff6b4a;cursor:pointer;margin:0;flex-shrink:0}.admin-form-actions{display:flex;gap:10px;margin-top:20px}.admin-list-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 16px rgba(0,0,0,.06);border:1px solid #f0e8e0}.admin-list-section h3{font-size:1rem;font-weight:700;margin:0 0 16px;color:#2d2d2d}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table td,.admin-table th{padding:10px 8px;text-align:left;border-bottom:1px solid #e8e0d8}.admin-table th{color:#999;font-weight:600;font-size:.75rem}.admin-table td{color:#555}.btn-edit{background:#fff8f0;border:1px solid #e8e0d8;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:.75rem;color:#555}.btn-edit:hover{background:#fff2eb;border-color:#ff6b4a}.btn-delete{background:#fff0f0;border:1px solid #ffd0d0;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:.75rem;color:#e74c3c}.btn-delete:hover{background:#ffe0e0}.guide-container{max-width:720px;margin:0 auto;padding:20px 0 40px}.guide-subtitle{text-align:center;font-size:.95rem;color:#777;margin-bottom:28px;line-height:1.6}.guide-steps{display:flex;flex-direction:column;gap:16px}.guide-step{display:flex;align-items:flex-start;gap:16px;background:#fff;border-radius:16px;padding:20px 24px;border:1px solid #e8e0d8;box-shadow:0 2px 12px rgba(0,0,0,.04);transition:transform .2s ease,box-shadow .2s ease}.guide-step:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.08)}.guide-step-num{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:#ff6b4a;color:#fff;font-size:1.1rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(255,107,74,.25)}.guide-step-body{flex:1}.guide-step-body h3{font-size:1.05rem;font-weight:700;color:#2d2d2d;margin:0 0 6px}.guide-step-body p{font-size:.9rem;color:#777;margin:0;line-height:1.6}.guide-cta{text-align:center;margin-top:32px}.guide-cta .btn{font-size:1rem;padding:12px 36px;height:48px}@media (max-width:768px){.guide-container{padding:12px 8px 32px}.guide-step{padding:16px 18px;gap:12px}.guide-step-num{width:36px;height:36px;font-size:.95rem}.guide-step-body h3{font-size:.95rem}.guide-step-body p{font-size:.82rem}.guide-subtitle{font-size:.85rem;margin-bottom:20px}}@media (max-width:480px){.guide-step{padding:14px 14px;gap:10px}.guide-step-num{width:30px;height:30px;font-size:.85rem}.guide-step-body h3{font-size:.88rem}.guide-step-body p{font-size:.78rem}.guide-cta .btn{padding:10px 28px;font-size:.9rem}}.page-content{max-width:720px;margin:0 auto;padding:20px 0 40px}.page-header{text-align:center;margin-bottom:32px;padding-bottom:20px;border-bottom:1.5px solid #e8e0d8}.page-header h1{font-size:1.6rem;font-weight:700;color:#2d2d2d;margin:0 0 8px}.page-updated{font-size:.82rem;color:#999;margin:0}.page-section{margin-bottom:24px}.page-section h2{font-size:1.1rem;font-weight:700;color:#2d2d2d;margin:0 0 8px}.page-section p{font-size:.92rem;color:#555;line-height:1.7;margin:0}.page-section a{color:#ff6b4a;text-decoration:none}.page-section a:hover{text-decoration:underline}.page-email{margin-top:12px;font-size:1rem}.page-footer{max-width:960px;margin:40px auto 0;padding:24px 0 8px;text-align:center;border-top:1px solid #e8e0d8}.page-footer-links{display:flex;justify-content:center;align-items:center;gap:12px;font-size:.82rem}.page-footer-links a{color:#888;text-decoration:none;transition:color .2s}.page-footer-links a:hover{color:#ff6b4a}.footer-sep{color:#d0c8c0}@media (max-width:768px){.page-content{padding:12px 8px 32px}.page-header h1{font-size:1.35rem}.page-section h2{font-size:1rem}.page-section p{font-size:.85rem}}.coming-soon-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:40px 20px}.coming-soon-icon{font-size:64px;color:#c4a882;margin-bottom:24px;animation:float 3s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.coming-soon-page h1{font-size:2rem;color:#4a3728;margin-bottom:12px;font-weight:700}.coming-soon-page p{font-size:1.05rem;color:#8b7355;margin-bottom:32px;line-height:1.6}.letter-phase{max-width:600px;margin:0 auto;padding:0 16px;text-align:center}.letter-word-display{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:20px 0;min-height:72px;align-items:center}.letter-word-slot{width:48px;height:52px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#3a3a3a;background:#fff8f0;border:2px solid #e8e0d8;border-radius:10px;transition:all .25s ease;cursor:default;position:relative}.letter-word-slot::after{content:'';position:absolute;bottom:8px;left:12px;right:12px;height:3px;background:#e8e0d8;border-radius:1px}.letter-word-slot.filled{border-color:#ff6b4a;background:#fff2eb;color:#d04a2a;cursor:pointer}.letter-word-slot.filled::after{background:#ff6b4a}.letter-word-slot.filled:hover{background:#ffe4d8;border-color:#e05a3a}.letter-candidates{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:16px 0}.letter-candidate-btn{width:52px;height:52px;font-size:1.3rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b4a,#f85);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 8px rgba(255,107,74,.25)}.letter-candidate-btn:hover{transform:translateY(-2px);box-shadow:0 5px 14px rgba(255,107,74,.35);background:linear-gradient(135deg,#e05a3a,#f74)}.letter-candidate-btn:active{transform:translateY(0);box-shadow:0 1px 4px rgba(255,107,74,.2)}.letter-candidate-btn.used{background:#ccc;color:#999;cursor:not-allowed;box-shadow:none;pointer-events:none}.letter-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:12px 0}.letter-actions .btn{padding:10px 22px;font-size:.95rem;font-weight:600;border-radius:12px;transition:all .2s}@media (max-width:640px){.letter-word-slot{width:40px;height:44px;font-size:1.2rem}.letter-candidate-btn{width:44px;height:44px;font-size:1.1rem;border-radius:10px}.letter-actions .btn{padding:8px 16px;font-size:.85rem}}@media (max-width:400px){.letter-word-slot{width:34px;height:38px;font-size:1rem;border-radius:8px}.letter-word-slot::after{bottom:6px;left:8px;right:8px;height:2px}.letter-candidate-btn{width:38px;height:38px;font-size:1rem;border-radius:8px}.letter-word-display{gap:5px;padding:12px 0}.letter-candidates{gap:6px;padding:10px 0}}.vocab-preview{margin:32px auto 0;max-width:720px;padding:20px 24px;background:rgba(255,248,240,.6);border:1px solid #e8e0d8;border-radius:12px}.vocab-preview-title{font-size:1.1rem;font-weight:600;color:#8b5e3c;margin-bottom:4px}.vocab-preview-subtitle{font-size:.85rem;color:#a08870;margin-bottom:12px}.vocab-preview-list{display:grid;grid-template-columns:1fr;gap:6px}.vocab-preview-item{display:flex;align-items:baseline;gap:10px;padding:6px 10px;background:rgba(255,255,255,.7);border-radius:6px}.vocab-preview-en{font-family:Menlo,'SF Mono',Consolas,monospace;font-size:.95rem;font-weight:600;color:#5c3a21;min-width:120px}.vocab-preview-ch{font-size:.9rem;color:#8b7355}.vocab-preview-sep{color:#c4a882;margin:0 2px}