*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--yellow:#FFD94A;--orange:#FF8C42;--pink:#FF6B8A;--teal:#3BBFAD;--purple:#8B5CF6;--green:#10B981;--jade:#2E9E6B;--navy:#1A2E4A;--cream:#FFFBF0;--light:#F9F5EC;--gray:#6B7280;--border:#E9E3D5}html{scroll-behavior:smooth}body{font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;background:var(--cream);color:var(--navy);line-height:1.7}.nav-logo--img img{height:70px;width:auto;display:block}nav:has(.nav-logo--img){padding-top:.3rem;padding-bottom:.3rem}@media (max-width:1120px){nav:has(.nav-logo--img){flex-wrap:wrap;padding-left:1.25rem;padding-right:1.25rem;gap:.4rem 1rem}nav:has(.nav-logo--img) .nav-right{flex:1 1 auto;min-width:0;flex-wrap:wrap;justify-content:flex-end;gap:.6rem}nav:has(.nav-logo--img) .nav-search{flex:1 1 200px;min-width:0}}@media (max-width:680px){.nav-logo--img img{height:52px}nav:has(.nav-logo--img) .nav-right{flex-wrap:wrap;justify-content:flex-start}}nav{position:sticky;top:0;z-index:100;background:rgba(255,251,240,.95);backdrop-filter:blur(10px);border-bottom:2px solid var(--yellow);justify-content:space-between;padding:.55rem 2.5rem}.nav-logo,nav{display:flex;align-items:center}.nav-logo{font-weight:900;font-size:1.3rem;color:var(--orange);text-decoration:none;gap:.4rem}.nav-right{display:flex;align-items:center;gap:1.5rem}.nav-typing-link{font-size:.85rem;font-weight:800;color:var(--navy);text-decoration:none;padding:.3rem .75rem;border-radius:20px;border:1.5px solid var(--border);transition:all .2s;white-space:nowrap}.nav-typing-link:hover{border-color:var(--orange);color:var(--orange)}.nav-search{display:flex;align-items:center;background:var(--light);border:2px solid var(--border);border-radius:50px;padding:.4rem 1rem;gap:.5rem}.nav-search input{border:none;background:transparent;outline:none;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-size:.9rem;color:var(--navy);width:180px;min-width:0}.nav-search input::placeholder{color:var(--gray)}.nav-search-icon{color:var(--gray);font-size:.9rem}.hero{background:linear-gradient(135deg,#FFF5C8,#FFE4B5 50%,#FFD6B5);min-height:var(--hero-h,640px);padding:5rem 2.5rem 4rem;text-align:center;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.hero--img{padding:0;min-height:0;background:none;display:block}.hero-img{display:block;width:100%;height:auto}.hero--img.hero--fixed .hero-img{height:var(--hero-h);object-fit:cover}.hero--img .hero-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem}.hero-eyebrow{display:inline-block;background:var(--orange);color:#fff;font-size:.75rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;padding:.3rem 1rem;border-radius:20px;margin-bottom:1.25rem}.hero h1{font-family:var(--font-lora),"Lora",Georgia,serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:600;color:var(--navy);line-height:1.2;margin-bottom:1rem}.hero h1 em{color:var(--orange);font-style:italic}.hero-sub{font-size:1.05rem;color:var(--gray);max-width:520px;margin:0 auto 2.5rem}.hero-stats{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap}.stat-item{text-align:center}.stat-num{font-size:2rem;font-weight:900;color:var(--navy);line-height:1}.stat-label{font-size:.8rem;color:var(--gray);margin-top:.2rem}.featured{background:var(--navy);color:#fff;padding:0;position:relative;overflow:hidden;display:grid}.feat-slide{grid-area:1/1;display:grid;grid-template-columns:1fr minmax(240px,38%);gap:2.5rem;align-items:center;padding:3rem 2.5rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease,visibility .5s ease}.feat-slide.active{opacity:1;visibility:visible;pointer-events:auto}.feat-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:10;backdrop-filter:blur(4px)}.feat-nav:hover{background:rgba(255,255,255,.3)}.feat-nav.prev{left:.75rem}.feat-nav.next{right:.75rem}.feat-dots{position:absolute;bottom:.75rem;left:50%;transform:translateX(-50%);display:flex;gap:.4rem;z-index:10}.feat-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.35);border:none;padding:0;cursor:pointer;transition:background .2s}.feat-dot.active{background:var(--yellow);width:20px;border-radius:4px}.featured-label{font-size:.75rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--yellow);margin-bottom:.75rem}.featured-title{font-family:var(--font-lora),"Lora",Georgia,serif;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;line-height:1.2;margin-bottom:.5rem}.featured-title em{color:var(--yellow);font-style:italic}.featured-author{font-size:.9rem;color:rgba(255,255,255,.6);margin-bottom:1rem}.featured-desc{font-size:.95rem;color:rgba(255,255,255,.8);line-height:1.7;margin-bottom:1.5rem;max-width:540px}.featured-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--yellow);color:var(--navy);padding:.75rem 1.5rem;border-radius:50px;font-weight:900;text-decoration:none;font-size:.9rem;transition:transform .2s,opacity .2s}.featured-btn:hover{transform:translateY(-2px);opacity:.9}.featured-visual{display:flex;align-items:flex-end;justify-content:center;gap:.7rem;padding-bottom:.5rem}.featured-book-mock{width:148px;height:210px;background:linear-gradient(145deg,var(--orange),var(--yellow));border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem 1rem;text-align:center;box-shadow:-5px 10px 28px rgba(0,0,0,.45);transform:rotate(-3deg);flex-shrink:0}.featured-book-mock-icon{font-size:2rem;margin-bottom:.5rem}.featured-book-mock-title{font-size:.85rem;font-weight:800;color:var(--navy);line-height:1.3}.featured-stars{font-size:1.1rem;color:var(--navy);margin-top:.5rem}.featured-cover-img{border-radius:10px;box-shadow:-5px 10px 28px rgba(0,0,0,.45);transform:rotate(-2.5deg)}.featured-cover-img,.featured-extra-img{height:290px;width:auto;max-width:210px;object-fit:cover;flex-shrink:0}.featured-extra-img{border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.4);transition:transform .25s}.featured-extra-img:hover{transform:translateY(-6px) rotate(0deg)!important}.featured-extra-img:nth-child(2){transform:rotate(3deg)}.featured-extra-img:nth-child(3){transform:rotate(-2deg)}.featured-extra-img:nth-child(4){transform:rotate(2.5deg)}.cat-section{padding:3rem 2.5rem 0}.cat-section-inner{max-width:1100px;margin:0 auto}.type-tabs{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:2px solid var(--border)}.type-tab{display:flex;align-items:center;gap:.45rem;padding:.65rem 1.5rem;border-radius:50px;border:2px solid var(--border);background:#fff;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-weight:800;font-size:.95rem;color:var(--gray);cursor:pointer;transition:all .2s}.type-tab:hover{border-color:var(--navy);color:var(--navy)}.type-tab[data-type=all].active{background:var(--navy);border-color:var(--navy);color:#fff}.type-tab[data-type=sach].active{background:var(--orange);border-color:var(--orange);color:#fff}.type-tab[data-type=hoc-lieu].active{background:var(--jade);border-color:var(--jade);color:#fff}.type-tab .count{font-size:.75rem;font-weight:900;padding:.1rem .55rem;border-radius:20px;background:rgba(255,255,255,.25)}.type-tab:not(.active) .count{background:var(--light);color:var(--gray)}.cat-tabs{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:2.5rem}.cat-tab{display:flex;align-items:center;gap:.4rem;padding:.55rem 1.25rem;border-radius:50px;border:2px solid var(--border);background:#fff;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-weight:700;font-size:.88rem;color:var(--gray);cursor:pointer;transition:all .2s}.cat-tab:hover{border-color:var(--orange);color:var(--orange)}.cat-tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.cat-tab .count{background:rgba(255,255,255,.2);color:inherit;font-size:.75rem;font-weight:900;padding:.1rem .5rem;border-radius:20px}.cat-tab:not(.active) .count{background:var(--light);color:var(--gray)}.cat-section.mode-hoc-lieu .cat-tab.active{background:var(--jade);border-color:var(--jade)}.cat-section.mode-hoc-lieu .cat-tab:hover{border-color:var(--jade);color:var(--jade)}.section-wrap{padding:0 2.5rem 5rem}.section-inner{max-width:1100px;margin:0 auto}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.75rem}.no-results{text-align:center;padding:4rem 2rem;color:var(--gray);font-size:1rem}@media (min-width:900px){.catalog-layout{display:grid;grid-template-columns:250px 1fr;align-items:start;gap:2.5rem;max-width:1570px;margin:0 auto;padding:3rem 2.5rem 5rem}.catalog-layout .cat-section{padding:0}.catalog-layout .cat-section-inner{max-width:none;position:sticky;top:1.5rem}.catalog-layout .cat-tabs,.catalog-layout .type-tabs{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.catalog-layout .type-tabs{border-bottom:2px solid var(--border);padding-bottom:1.25rem}.catalog-layout .cat-tabs{margin-bottom:0}.catalog-layout .cat-tab,.catalog-layout .type-tab{justify-content:space-between;width:100%}.catalog-layout .section-wrap{padding:0}.catalog-layout .section-inner{max-width:none}.catalog-layout .books-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.recent-section{padding-top:2.5rem;padding-bottom:2.5rem;background:linear-gradient(135deg,#FFFBE8,#FFF0C0);border-top:3px solid var(--yellow);border-bottom:3px solid var(--yellow)}.recent-heading{font-size:1.25rem;font-weight:800;color:var(--navy);margin-bottom:1.5rem;letter-spacing:-.01em}.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:2.5rem;flex-wrap:wrap}.page-btn{min-width:2.4rem;height:2.4rem;padding:0 .75rem;border-radius:50px;border:2px solid var(--light2);background:#fff;color:var(--navy);font-size:.95rem;font-weight:700;cursor:pointer;transition:border-color .2s,background .2s,color .2s;line-height:1}.page-btn:hover:not(:disabled){border-color:var(--navy);background:var(--light)}.page-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.page-btn.page-arrow{font-size:1.3rem;min-width:2.4rem;padding:0 .6rem}.page-btn:disabled{opacity:.35;cursor:default}.book-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 2px 16px rgba(0,0,0,.07);border:2px solid transparent;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;flex-direction:column}.book-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,0,0,.13);border-color:var(--yellow)}.book-cover-wrap{padding:2rem 1.5rem 1.5rem;position:relative;min-height:200px}.book-cover-wrap,.book-mock{display:flex;align-items:center;justify-content:center}.book-mock{width:130px;height:170px;border-radius:10px;flex-direction:column;padding:1.25rem 1rem;text-align:center;box-shadow:-5px 5px 0 rgba(0,0,0,.12);transform:rotate(-2deg)}.book-mock-icon{font-size:2rem;margin-bottom:.5rem}.book-mock-title{font-size:.75rem;font-weight:800;color:#fff;line-height:1.3}.book-cover-img{width:130px;height:170px;border-radius:10px;overflow:hidden;box-shadow:-5px 5px 0 rgba(0,0,0,.12);transform:rotate(-2deg);transition:transform .3s}.book-card:hover .book-cover-img{transform:rotate(0deg) scale(1.04)}.book-cover-img img{width:100%;height:100%;object-fit:cover;display:block}.book-badge{position:absolute;top:1rem;right:1rem;font-size:.72rem;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:.34rem .85rem;border-radius:20px;box-shadow:0 3px 10px rgba(0,0,0,.25),0 0 0 2px rgba(255,255,255,.9)}.badge-coming{background:var(--light);color:var(--gray);border:1px solid var(--border)}.badge-new{background:var(--pink)}.badge-nen-doc,.badge-new{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.15)}.badge-nen-doc{background:var(--teal)}.badge-doc-nhieu{background:var(--orange);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.15)}.badge-popular{background:var(--yellow);color:var(--navy)}.badge-classic{background:var(--purple);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.15)}.badge-bestseller{background:var(--navy);color:var(--yellow)}.book-body{padding:0 1.5rem 1.5rem;flex:1;display:flex;flex-direction:column}.book-category{font-size:.72rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;margin-top:.6rem;margin-bottom:.35rem}.book-title{font-family:var(--font-lora),"Lora",Georgia,serif;font-size:1rem;font-weight:600;line-height:1.35;margin-bottom:.25rem}.book-author{color:var(--gray)}.book-author,.book-stars{font-size:.82rem;margin-bottom:.5rem}.book-stars{color:var(--orange)}.book-stars span{color:var(--gray);margin-left:.3rem}.book-desc{font-size:.85rem;color:var(--gray);line-height:1.6;flex:1;margin-bottom:1rem}.book-actions{gap:.5rem;margin-top:auto}.book-actions,.hl-meta-row{display:flex;flex-wrap:wrap}.hl-meta-row{gap:.35rem;margin-bottom:.55rem}.hl-meta-tag{gap:.25rem;font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:20px;background:#F0FDF4;color:var(--jade);border:1px solid #bbf7d0}.btn-hoc-lieu,.hl-meta-tag{display:inline-flex;align-items:center}.btn-hoc-lieu{background:#16a34a;color:#fff;padding:.55rem 1.1rem;border-radius:50px;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-weight:800;font-size:.82rem;text-decoration:none;transition:transform .2s,opacity .2s}.btn-hoc-lieu:hover{transform:translateY(-2px);opacity:.88}.book-btn{display:inline-flex;align-items:center;padding:.55rem 1.1rem;border-radius:50px;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-weight:800;font-size:.82rem;text-decoration:none;transition:transform .2s,opacity .2s}.book-btn:hover{transform:translateY(-2px);opacity:.88}.btn-read{background:var(--navy);color:#fff}.btn-soon{background:var(--light);color:var(--gray);border:1px solid var(--border);cursor:default}.btn-preview{display:inline-flex;align-items:center;gap:.3rem;padding:.55rem 1rem;border-radius:50px;background:#52b788;color:#fff;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-weight:800;font-size:.82rem;text-decoration:none;transition:transform .2s,opacity .2s}.btn-preview:hover{transform:translateY(-2px);opacity:.88}.btn-buy{display:inline-flex;align-items:center;gap:.3rem;padding:.55rem 1rem;border-radius:50px;background:var(--orange);color:#fff;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-weight:800;font-size:.82rem;text-decoration:none;transition:transform .2s,opacity .2s}.btn-buy:hover{transform:translateY(-2px);opacity:.88}footer{background:var(--navy);color:rgba(255,255,255,.5);text-align:center;padding:2.5rem;font-size:.85rem;line-height:1.8}footer strong{color:var(--yellow)}.footer-brand{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1.1rem;font-weight:800;margin-bottom:.3rem}.footer-brand-icon{font-size:1.5rem;line-height:1}@media (max-width:680px){nav{padding:.6rem 1rem;gap:.6rem;flex-wrap:wrap}.nav-logo{font-size:1.1rem}.nav-right{gap:.6rem;justify-content:flex-end}.nav-right,.nav-search{flex:1 1 auto;min-width:0}.nav-search{padding:.35rem .85rem}.nav-search input{width:100%}.hero:not(.hero--img){padding:3rem 1.25rem 2.5rem;min-height:min(var(--hero-h,420px),440px)}.hero-sub{font-size:.98rem;margin-bottom:1.75rem}.hero-stats{gap:1.5rem 2rem}.stat-num{font-size:1.6rem}.feat-slide{grid-template-columns:1fr;padding:2rem 1.5rem}.feat-nav,.featured-visual{display:none}.cat-section{padding:2rem 1.25rem 0}.section-wrap{padding:0 1.25rem 4rem}.books-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.type-tab{padding:.55rem 1.1rem;font-size:.85rem}.cat-tabs,.type-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:-1.25rem;margin-right:-1.25rem;padding-left:1.25rem;padding-right:1.25rem}.cat-tabs::-webkit-scrollbar,.type-tabs::-webkit-scrollbar{display:none}.cat-tab,.type-tab{flex-shrink:0;white-space:nowrap}}@media (max-width:430px){.nav-logo{font-size:1rem}.nav-typing-link{padding:.3rem .6rem;font-size:.8rem}.hero:not(.hero--img){min-height:min(var(--hero-h,340px),360px);padding:2.5rem 1.1rem 2.25rem}.hero--img .hero-content{padding:1.25rem 1rem}.hero-eyebrow{font-size:.68rem;margin-bottom:1rem}.hero-stats{gap:1rem 1.5rem}.cat-section{padding:1.5rem 1rem 0}.section-wrap{padding:0 1rem 3rem}.books-grid{grid-template-columns:1fr;gap:1rem}.cat-tabs,.type-tabs{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}}.admin-wrap{max-width:1000px;margin:0 auto;padding:2rem 1.5rem 5rem}.admin-card{background:#fff;border:2px solid var(--border);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table td,.admin-table th{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--border)}.admin-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}.admin-field label{font-weight:700;font-size:.85rem}.admin-field input,.admin-field select,.admin-field textarea{font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;font-size:.9rem;padding:.5rem .7rem;border:2px solid var(--border);border-radius:8px;background:#fff}.admin-btn{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;background:var(--navy);color:#fff;border:none;padding:.55rem 1.2rem;border-radius:50px;font-weight:800;font-size:.85rem;text-decoration:none;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif}.admin-btn.secondary{background:#fff;color:var(--navy);border:2px solid var(--border)}.admin-btn.danger{background:var(--pink)}.admin-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}@media (max-width:640px){.admin-grid2{grid-template-columns:1fr}}.ty-page{min-height:100vh;background:var(--cream);font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;display:flex;flex-direction:column}.ty-nav{position:sticky;top:0;z-index:100;background:rgba(253,248,242,.95);backdrop-filter:blur(8px);border-bottom:2px solid var(--border);display:flex;align-items:center;gap:1rem;padding:0 1.5rem;height:52px}.ty-nav-logo{font-weight:900;font-size:1rem;color:var(--orange);text-decoration:none}.ty-nav-title{font-weight:800;font-size:.95rem;color:var(--navy)}.ty-nav-back{margin-left:auto;font-size:.82rem;font-weight:700;color:var(--gray);text-decoration:none}.ty-nav-back:hover{color:var(--orange)}.ty-layout{display:flex;flex:1;overflow:hidden}.ty-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border);background:#fff;overflow-y:auto;padding:1rem .75rem;display:flex;flex-direction:column;gap:.35rem}.ty-sidebar-head{font-size:.7rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gray);padding:0 .5rem;margin-bottom:.25rem}.ty-lesson-btn{width:100%;text-align:left;background:none;border:1.5px solid transparent;border-radius:10px;padding:.6rem .75rem;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:.2rem}.ty-lesson-btn:hover{background:var(--light);border-color:var(--border)}.ty-lesson-btn.active{background:#fff5eb;border-color:var(--orange)}.ty-lesson-name{font-size:.85rem;font-weight:700;color:var(--navy);line-height:1.3}.ty-lesson-meta{font-size:.72rem;color:var(--gray)}.ty-main{flex:1;overflow-y:auto;padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.25rem;position:relative}.ty-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.ty-title{font-size:1.25rem;font-weight:800;color:var(--navy);margin-bottom:.4rem}.ty-tags{display:flex;gap:.4rem;flex-wrap:wrap}.ty-tag{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;background:var(--light);color:var(--gray)}.ty-stats{display:flex;gap:1rem;flex-wrap:wrap}.ty-stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.6rem 1rem;min-width:80px;text-align:center}.ty-stat-val{display:block;font-size:1.4rem;font-weight:900;color:var(--orange);line-height:1}.ty-stat-label{display:block;font-size:.7rem;color:var(--gray);margin-top:.2rem}.ty-progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.ty-progress-fill{height:100%;background:var(--teal);border-radius:3px;transition:width .2s}.ty-desc{background:#edf6ff;border:1.5px solid #b6d8f7;border-radius:12px;padding:.75rem 1.25rem;font-size:.88rem;line-height:1.7;color:#1a3a5c}.ty-desc:before{content:"💡 "}.ty-richref{background:#fffbf5;border:1.5px solid var(--border);border-radius:14px;padding:1rem 1.5rem;font-size:1rem;line-height:1.9;color:var(--navy);margin-bottom:0}.ty-richref b,.ty-richref strong{font-weight:800}.ty-richref em,.ty-richref i{font-style:italic}.ty-richref u{text-decoration:underline}.ty-richref font[size="1"]{font-size:.72em}.ty-richref font[size="2"]{font-size:.875em}.ty-richref font[size="3"]{font-size:1em}.ty-richref font[size="4"]{font-size:1.25em}.ty-richref font[size="5"]{font-size:1.55em;font-weight:700}.ty-richref font[size="6"]{font-size:2em;font-weight:800}.ty-target{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1.25rem 1.5rem;font-family:Courier New,Courier,monospace;font-size:1.05rem;line-height:1.9;letter-spacing:.02em;cursor:text;user-select:none}.ty-char{position:relative}.ty-correct{color:var(--teal)}.ty-wrong{color:#fff;background:#e76f51;border-radius:2px}.ty-cursor{border-left:2px solid var(--orange);animation:ty-blink 1s step-end infinite}.ty-hidden-input{position:fixed;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0;border:none;padding:0;resize:none;overflow:hidden}.ty-typed-area{width:100%;background:#fff;border:2px solid var(--border);border-radius:14px;padding:.9rem 1.25rem;min-height:52px;font-size:1rem;font-family:Courier New,Courier,monospace;line-height:1.7;cursor:text;word-break:break-all;transition:border-color .2s}.ty-typed-area:hover{border-color:var(--orange-light,#ffc89a)}.ty-typed-area.done{background:#f6fdf7;border-color:#52b788}.ty-typed-hint{color:#aaa;font-style:italic;font-family:inherit;font-size:.9rem}.ty-composing{border-bottom:2.5px solid var(--orange);color:#888}.ty-typed-caret{display:inline-block;width:2px;height:1.15em;background:var(--orange);vertical-align:text-bottom;margin-left:1px;animation:ty-blink 1s step-end infinite}@keyframes ty-blink{50%{opacity:0}}.ty-header-btns{display:flex;gap:.5rem;flex-wrap:wrap}.ty-btn-kbd,.ty-btn-reset{background:none;border:1.5px solid var(--border);border-radius:20px;padding:.4rem 1rem;font-size:.8rem;font-weight:700;color:var(--gray);cursor:pointer;transition:all .15s;white-space:nowrap}.ty-btn-reset:hover{border-color:var(--orange);color:var(--orange)}.ty-btn-kbd.active,.ty-btn-kbd:hover{border-color:var(--teal);color:var(--teal)}.ty-done{position:absolute;inset:0;background:rgba(253,248,242,.92);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10}.ty-done-box{background:#fff;border:2px solid var(--orange);border-radius:20px;padding:2.5rem 3rem;text-align:center;box-shadow:0 8px 40px rgba(0,0,0,.12)}.ty-done-emoji{font-size:3rem;margin-bottom:.5rem}.ty-done-title{font-size:1.6rem;font-weight:900;color:var(--navy);margin-bottom:1.25rem}.ty-done-stats{display:flex;gap:2rem;justify-content:center;margin-bottom:1.5rem;font-size:1rem;color:var(--gray)}.ty-done-stats strong{font-size:1.4rem;font-weight:900;color:var(--orange);display:block}.ty-btn-retry{background:var(--orange);color:#fff;border:none;border-radius:30px;padding:.7rem 2rem;font-size:1rem;font-weight:800;cursor:pointer;transition:opacity .2s}.ty-btn-retry:hover{opacity:.85}.ty-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--gray)}.ty-btn-back{background:var(--orange);color:#fff;text-decoration:none;border-radius:30px;padding:.6rem 1.5rem;font-weight:800;font-size:.9rem}@media (max-width:640px){.ty-layout{flex-direction:column}.ty-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto;padding:.5rem;flex-wrap:nowrap;gap:.4rem}.ty-sidebar-head{display:none}.ty-lesson-btn{min-width:140px;flex-shrink:0}.ty-main{padding:1rem}.ty-target{font-size:.95rem}}.vkb-wrap{background:#f7f3ec;border:1px solid var(--border);border-radius:18px;padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.85rem;overflow-x:auto}.vkb-top-row{justify-content:space-between;gap:1rem}.vkb-hint-row,.vkb-top-row{display:flex;align-items:center;flex-wrap:wrap}.vkb-hint-row{gap:.6rem}.vkb-hint-label{font-size:.78rem;font-weight:700;color:var(--gray)}.vkb-hint-char{font-size:1.5rem;font-weight:900;color:var(--navy);line-height:1;min-width:1.5rem;text-align:center}.vkb-hint-telex{font-size:1.05rem;font-weight:900;color:var(--orange);background:#fff;border:2px solid var(--orange);border-radius:8px;padding:.15rem .6rem;letter-spacing:.15em}.vkb-hint-both,.vkb-hint-telex{font-family:Courier New,monospace}.vkb-hint-both{display:flex;gap:.75rem;font-size:.8rem;color:var(--gray)}.vkb-hint-both b{color:var(--navy);margin-right:.25rem;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif}.vkb-home-hint{font-size:.78rem;color:var(--gray);font-weight:600}.vkb-method-toggle{display:flex;border:2px solid var(--border);border-radius:20px;overflow:hidden;flex-shrink:0}.vkb-method-btn{background:none;border:none;padding:.3rem .9rem;font-size:.8rem;font-weight:800;color:var(--gray);cursor:pointer;transition:all .15s}.vkb-method-btn.active{background:var(--orange);color:#fff}.vkb-keyboard{display:flex;flex-direction:column;gap:5px;min-width:680px}.vkb-row{display:flex;gap:5px;width:100%}.vkb-key{flex:1;height:44px;min-width:0;border-radius:8px;border:2px solid #d4ccc0;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;position:relative;cursor:default;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s;user-select:none;box-shadow:0 3px 0 #c0b8b0;white-space:nowrap;overflow:hidden}.vkb-key-label{font-size:.78rem;font-weight:800}.vkb-key-special{font-size:.68rem;font-weight:700}.vkb-key-active{transform:translateY(2px)!important;box-shadow:0 1px 0 rgba(0,0,0,.15)!important;animation:vkb-pulse .75s ease-in-out infinite}@keyframes vkb-pulse{0%,to{opacity:1}50%{opacity:.7}}.vkb-home-dot{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#999;opacity:.5}.vkb-key-order{position:absolute;top:2px;right:3px;font-size:.58rem;font-weight:900;opacity:.85;line-height:1}.vkb-legend{display:flex;flex-wrap:wrap;gap:.35rem .9rem}.vkb-legend-item{display:flex;align-items:center;gap:.3rem}.vkb-legend-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}.vkb-legend-text{font-size:.68rem;color:var(--gray)}@keyframes qz-bg-cycle{0%,14%{background-image:linear-gradient(120deg,#FFF0F6,#F1EEFF 35%,#E9FBF2 68%,#FFFBEA)}17%,31%{background-image:linear-gradient(120deg,#F1EEFF,#E6F6FF 35%,#E9FBF2 68%,#FFF0F6)}34%,48%{background-image:linear-gradient(120deg,#E9FBF2,#FFFBEA 35%,#E6F6FF 68%,#F1EEFF)}51%,65%{background-image:linear-gradient(120deg,#FFF3E8,#FFF0F6 35%,#FFFBEA 68%,#E9FBF2)}68%,82%{background-image:linear-gradient(120deg,#E6F6FF,#F1EEFF 35%,#FFF0F6 68%,#FFF3E8)}85%,99%{background-image:linear-gradient(120deg,#FFFBEA,#E9FBF2 35%,#F1EEFF 68%,#E6F6FF)}to{background-image:linear-gradient(120deg,#FFF0F6,#F1EEFF 35%,#E9FBF2 68%,#FFFBEA)}}@keyframes qz-pop-in{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes qz-float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-5px) rotate(-3deg)}}@keyframes qz-bounce-in{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}@keyframes qz-shake{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}@keyframes qz-shimmer{0%{background-position:0 0}to{background-position:200% 0}}@keyframes qz-confetti-fall{0%{transform:translateY(-20px) rotate(0deg);opacity:1}to{transform:translateY(220px) rotate(1turn);opacity:0}}@keyframes qz-fly-across{0%{transform:translate(0) rotate(-6deg);opacity:0}8%{opacity:.6}20%{transform:translate(6vw,-22vh) rotate(10deg)}40%{transform:translate(-5vw,-45vh) rotate(-12deg)}60%{transform:translate(7vw,-68vh) rotate(8deg)}80%{transform:translate(-4vw,-92vh) rotate(-10deg)}92%{opacity:.55}to{transform:translate(4vw,-115vh) rotate(4deg);opacity:0}}@keyframes qz-wing-flutter{0%,to{transform:scaleX(1)}50%{transform:scaleX(.5)}}@keyframes qz-petal-fall{0%{transform:translateY(-10vh) rotate(0deg);opacity:0}10%{opacity:.65}25%{transform:translate(3.5vw,15vh) rotate(90deg)}50%{transform:translate(-3vw,45vh) rotate(180deg)}75%{transform:translate(4vw,75vh) rotate(270deg)}90%{opacity:.55}to{transform:translate(-1vw,112vh) rotate(1turn);opacity:0}}.qz-page{position:relative;min-height:100vh;font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;display:flex;flex-direction:column;background-image:linear-gradient(120deg,#FFF0F6,#F1EEFF 35%,#E9FBF2 68%,#FFFBEA);animation:qz-bg-cycle 60s ease-in-out infinite;overflow-x:clip}.qz-bg-decor{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.qz-main,.qz-nav{position:relative;z-index:1}.qz-butterfly{position:absolute;bottom:-8vh;animation-name:qz-fly-across;animation-timing-function:linear;animation-iteration-count:infinite;filter:drop-shadow(0 2px 4px rgba(150,90,200,.15))}.qz-butterfly-wing{display:inline-block;animation:qz-wing-flutter .5s ease-in-out infinite}.qz-petal{position:absolute;top:-8vh;animation-name:qz-petal-fall;animation-timing-function:linear;animation-iteration-count:infinite}.qz-nav{position:relative;z-index:100;background:rgba(255,255,255,.75);backdrop-filter:blur(10px);border-bottom:2px solid #f0d9ff;display:flex;align-items:center;gap:1rem;padding:0 1.5rem;height:56px}.qz-nav-logo{font-weight:900;font-size:1rem;color:#C2226B;text-decoration:none}.qz-nav-title{font-weight:800;font-size:.95rem;color:#6A3FC7}.qz-nav-back{margin-left:auto;font-size:.82rem;font-weight:700;color:#9C8AC7;text-decoration:none;transition:color .15s}.qz-nav-back:hover{color:#C2226B}@media (max-width:560px){.qz-page:not(.ph-page) .qz-nav{height:auto;min-height:56px;flex-wrap:wrap;gap:.35rem .75rem;padding:.5rem 1rem}.qz-page:not(.ph-page) .qz-nav-back{display:none}.qz-page:not(.ph-page) .qz-nav .acm{margin-left:auto}}.qz-main{flex:1;padding:1.75rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1.25rem}.gm-main-padded{padding-bottom:7rem}.qz-breadcrumb{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.85rem;color:#8A7FA8}.qz-crumb{color:#5B3FA0;font-weight:800}.qz-crumb-btn{background:none;border:none;color:#C2226B;font-weight:800;cursor:pointer;padding:0;font-size:inherit;font-family:inherit}.qz-crumb-btn:hover{text-decoration:underline}.qz-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.qz-title{font-size:1.3rem;font-weight:900;color:#5B3FA0;margin-bottom:.4rem}.qz-tags{gap:.4rem}.qz-header-inline,.qz-tags{display:flex;flex-wrap:wrap;align-items:center}.qz-header-inline{gap:.6rem}.qz-header-inline .qz-title{margin-bottom:0}.qz-game-hint{text-align:center;font-size:1.35rem;font-weight:800;color:#1573B8}.qz-tag{font-size:.72rem;font-weight:800;padding:.25rem .7rem;border-radius:20px;background:#F1EEFF;color:#6A3FC7}.qz-desc{background:#EAF6FF;border:1.5px solid #bce3ff;border-radius:14px;padding:.75rem 1.25rem;font-size:.88rem;line-height:1.7;color:#1573B8}.qz-desc:before{content:"💡 "}.qz-progress-label{font-size:.8rem;font-weight:800;color:#8A7FA8}.qz-progress-bar{height:8px;background:#F1EEFF;border-radius:5px;overflow:hidden}.qz-qnav{position:sticky;top:0;z-index:50;margin:.9rem -.5rem 1.1rem;padding:.55rem .6rem;border-radius:14px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);max-height:32vh;overflow-y:auto;box-shadow:0 4px 16px rgba(120,90,180,.08)}.qz-qnav-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;font-size:.85rem;color:#6A5A8A;margin-bottom:.45rem}.qz-qnav-legend{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem}.qz-qnav-legend:before{content:"";width:.8rem;height:.8rem;border-radius:4px;border:2px solid}.qz-qnav-legend--done:before{background:#DFF7EA;border-color:#52C98A}.qz-qnav-legend--todo:before{background:#FFE3E8;border-color:#FF9FA8}.qz-qnav-group{padding:.35rem .4rem;border-radius:10px}.qz-qnav-group+.qz-qnav-group{margin-top:.2rem}.qz-qnav-group.current{background:#F1EEFF;box-shadow:inset 3px 0 0 #9C7BFF}.qz-qnav-title{display:flex;justify-content:space-between;align-items:baseline;gap:.4rem;width:100%;background:none;border:none;padding:0 0 .3rem;font-family:inherit;font-size:.74rem;font-weight:800;color:#5B3FA0;text-align:left;cursor:pointer;line-height:1.3}.qz-qnav-title:hover{color:#C2226B}.qz-qnav-count{flex-shrink:0;font-weight:700;color:#9C8AC7}.qz-qnav-list{display:flex;flex-wrap:wrap;gap:.35rem}.qz-qnav-btn{min-width:2.1rem;height:2.1rem;padding:0 .35rem;border-radius:9px;border:2px solid;font-family:inherit;font-weight:800;font-size:.85rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.qz-qnav-btn:hover{transform:translateY(-1px)}.qz-qnav-btn.done{background:#DFF7EA;border-color:#52C98A;color:#1A8F55}.qz-qnav-btn.todo{background:#FFE3E8;border-color:#FF9FA8;color:#C2226B}.qz-qnav-btn.active{box-shadow:0 0 0 2px #fff,0 0 0 5px #7C4DFF;transform:scale(1.12);position:relative;z-index:1}.qz-essay.qz-item-current,.qz-group-mcq-item.qz-item-current{background:#F6F2FF;box-shadow:inset 4px 0 0 #9C7BFF;border-radius:12px;padding-left:.9rem;margin-left:-.9rem;padding-right:.5rem;margin-right:-.5rem;transition:background .2s}.qz-blank-input.qz-item-current{outline:3px solid #9C7BFF;outline-offset:1px}@media (min-width:1300px){.qz-qnav{position:fixed;top:84px;right:16px;margin:0;z-index:60;width:min(270px,calc((100vw - 900px) / 2 - 32px));max-height:calc(100vh - 110px);border:2px solid #eee6ff}.qz-qnav-btn{min-width:1.95rem;height:1.95rem;font-size:.8rem}}.qz-progress-fill{height:100%;border-radius:5px;transition:width .35s ease;background:linear-gradient(90deg,#FFAFD1,#C3A6FF,#9CD4FF,#FFAFD1);background-size:250% 100%;animation:qz-shimmer 3s linear infinite}.qz-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#8A7FA8;text-align:center;padding:2rem}.qz-btn-back{background:linear-gradient(135deg,#FFAFD1,#C3A6FF);color:#fff;text-decoration:none;border-radius:30px;padding:.65rem 1.6rem;font-weight:800;font-size:.9rem;box-shadow:0 6px 18px rgba(194,34,107,.25)}.qz-question-card{background:#fff;border:2px solid #f0d9ff;border-radius:22px;padding:1.6rem 1.85rem;box-shadow:0 10px 30px rgba(120,90,200,.08);animation:qz-pop-in .32s ease both}.qz-question-num{font-size:.75rem;font-weight:900;color:#C2226B;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:.5rem}.lg-question-row{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.9rem}.lg-question-num{margin-bottom:0}.lg-audio-btn{padding:0}.qz-question-text{font-size:1.5rem;font-weight:800;color:#1D6FD8;line-height:1.5;margin-bottom:1.25rem;white-space:pre-line}.qz-question-img{display:block;max-width:100%;max-height:320px;border-radius:16px;border:2px solid #f0d9ff;margin:0 auto 1rem;object-fit:contain}.qz-picword-row{display:flex;align-items:baseline;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.qz-picword{font-size:1.7rem;font-weight:900;color:#C2226B}.qz-picword-phonetic{font-size:calc(1.05rem + 2px);font-weight:600;color:#6A3FC7}.qz-phonetic-inline{font-size:calc(.82em + 2px);margin-left:.35em}.qz-phonetic-block,.qz-phonetic-inline{font-weight:400;font-style:italic;color:#6A3FC7}.qz-phonetic-block{display:block;font-size:calc(.85rem + 2px);text-align:center;margin-top:.3rem}.fc-card-example-phonetic,.fc-card-phonetic,.ipa-text,.mg-tile-phonetic,.mm-card-phonetic,.pr-phonetic,.qz-phonetic-block,.qz-phonetic-inline,.qz-picword-phonetic,.ws-word-phonetic{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.wt-badge{display:inline-block;font-size:.7rem;font-weight:800;color:#6A3FC7;background:#F1EEFF;border:1px solid #e4d9ff;border-radius:20px;padding:.1rem .6rem;margin-left:.4em;vertical-align:middle}.qz-mc-word-wrap{margin-bottom:1.25rem}.qz-mc-word{font-size:1.65rem;font-weight:900;color:#C2226B;text-align:center}.qz-audio-box{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1rem;background:#fff;border:2px solid #f0d9ff;border-radius:18px;padding:.85rem 1.1rem;box-shadow:0 8px 24px rgba(120,90,200,.08)}.qz-audio-btn{display:inline-flex;align-items:center;gap:.4rem;border-radius:30px;border:2px solid #c3a6ff;background:#F5F0FF;color:#6A3FC7;padding:.55rem 1.2rem;font-size:.9rem;font-weight:800;cursor:pointer;transition:all .15s}.qz-audio-btn:hover:not(:disabled){background:#EDE4FF;transform:translateY(-1px)}.qz-audio-btn:disabled{opacity:.4;cursor:not-allowed}.qz-audio-count{font-size:.8rem;font-weight:700;color:#8A7FA8}.qz-audio-box--frame{flex-direction:column;align-items:stretch;gap:.6rem}.qz-audio-label{font-size:.85rem;font-weight:800;color:#6A3FC7}.qz-audio-iframe{width:100%;height:110px;border:none;border-radius:12px;background:#F5F0FF}@keyframes qz-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.qz-timer{font-size:.95rem;font-weight:900;color:#6A3FC7;background:#F1EEFF;border-radius:20px;padding:.4rem 1rem;white-space:nowrap;align-self:flex-start}.qz-timer.low{color:#C2226B;background:#FFE3E8;animation:qz-timer-pulse 1s ease-in-out infinite}.qz-group-instructions{font-size:.88rem;color:#6A5A8A;margin-bottom:1rem;line-height:1.6}.qz-passage{white-space:pre-line;font-size:1rem;line-height:2.1;color:#43325E}.qz-blank-input{display:inline-block;width:130px;margin:0 .15rem;border:none;border-bottom:2px solid #c3a6ff;background:#F5F0FF;border-radius:6px 6px 0 0;padding:.15rem .5rem;font-size:.95rem;font-weight:700;color:#43325E;text-align:center}.qz-blank-input:focus{outline:none;border-color:#6A3FC7;background:#EDE4FF}.qz-blank-input:disabled{background:transparent}.qz-blank-input.correct{border-color:#52C98A;background:#DFF7EA;color:#1A8F55}.qz-blank-input.wrong{border-color:#FF9FA8;background:#FFE3E8;color:#C2226B}.qz-table-wrap{overflow-x:auto;margin:.25rem 0 .5rem}.qz-table{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.6;color:#43325E}.qz-table td{border:1.5px solid #e4d9ff;padding:.6rem .8rem;vertical-align:top;text-align:left}.qz-table-bold{font-weight:800;background:#F7F3FF;text-align:center}.qz-group-mcq-list{display:flex;flex-direction:column;gap:1.25rem}.qz-group-mcq-item+.qz-group-mcq-item{border-top:2px dashed #a98be6;padding-top:1.1rem}.qz-group-mcq-q{font-size:1.4rem;line-height:1.45;font-weight:800;color:#1D6FD8;margin-bottom:.6rem;white-space:pre-line}.qz-group-mcq-item .qz-option,.qz-question-card .qz-option{border-color:#C9B6F2}.qz-essay{display:flex;flex-direction:column;gap:.9rem}.qz-essay-prompt{background:#FFF3E8;border:1.5px solid #ffd9ad;border-radius:12px;padding:.9rem 1.1rem;font-size:.95rem;font-weight:700;color:#7A4A00;line-height:1.6}.qz-essay-answer,.qz-essay-prompt{white-space:pre-line}.qz-essay-input{width:100%;border:2px solid #eee6ff;border-radius:14px;padding:1rem;font-size:.95rem;line-height:1.7;font-family:inherit;color:#43325E;resize:vertical}.qz-essay-input:focus{outline:none;border-color:#C3A6FF}.qz-essay-input:disabled{background:#FAFAFF}.qz-essay-meta{font-size:.8rem;font-weight:700;color:#8A7FA8}.qz-essay-email{width:100%;border:2px solid #eee6ff;border-radius:30px;padding:.7rem 1.2rem;font-size:.92rem;font-family:inherit;color:#43325E}.qz-essay-email:focus{outline:none;border-color:#C3A6FF}.qz-essay-email:disabled{background:#FAFAFF}.qz-essay-result{border:2px solid #c3a6ff;border-radius:16px;padding:1.2rem 1.4rem;background:#FAF8FF;display:flex;flex-direction:column;gap:.8rem;animation:qz-pop-in .3s ease both}.qz-essay-summary{color:#43325E}.qz-essay-summary,.qz-feedback{font-size:.9rem;line-height:1.6}.qz-feedback{margin-top:1.1rem;border-radius:16px;padding:.9rem 1.15rem;animation:qz-pop-in .3s ease both}.qz-feedback.right{background:#DFF7EA;border:2px solid #8fe8b8;color:#1A8F55}.qz-feedback.wrong{background:#FFE3E8;border:2.5px solid #d62839;color:#C2226B;animation:qz-shake .4s ease both}.qz-feedback-verdict{font-weight:900;display:inline-flex;align-items:center;gap:.35rem}.qz-feedback.right .qz-feedback-verdict:before{content:"🎉";animation:qz-bounce-in .5s ease}.qz-feedback-explain{margin-top:.4rem;color:#43325E;font-weight:600;white-space:pre-line}.lg-feedback{margin-top:.45rem;padding:.5rem .9rem;font-size:.85rem}.qz-options{display:flex;flex-direction:column;gap:.6rem}.qz-options--grid{display:grid;grid-template-columns:repeat(2,1fr)}.qz-options--grid .qz-option{text-align:center}.qz-option{text-align:left;background:#FAFAFF;border:2px solid #eee6ff;border-radius:14px;padding:.9rem 1.2rem;font-family:inherit;font-size:1.25rem;font-weight:700;color:#43325E;cursor:pointer;transition:all .15s}.qz-option:hover:not(:disabled){border-color:#C3A6FF;background:#F5F0FF;transform:translateY(-1px)}.qz-option:disabled{cursor:default}.qz-option.selected{border-color:#FFA41B;background:#FFF1C9;color:#5B21B6;box-shadow:0 3px 10px rgba(255,164,27,.28)}.qz-option.selected:hover:not(:disabled){border-color:#FF9500;background:#FFE9A8}.qz-option.correct{border-color:#52C98A;background:#DFF7EA;color:#1A8F55;animation:qz-bounce-in .4s ease}.qz-option.wrong{border-color:#FF9FA8;background:#FFE3E8;color:#C2226B}.qz-img-options{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:.5rem auto 0;max-width:360px}.qz-img-option{aspect-ratio:1;width:100%;max-width:160px;margin:0 auto;background:#FAFAFF;border:2px solid #eee6ff;border-radius:14px;padding:.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.qz-img-option:hover:not(:disabled){border-color:#C3A6FF;background:#F5F0FF;transform:translateY(-2px)}.qz-img-option:disabled{cursor:default}.qz-img-option.selected{border-color:#C3A6FF;background:#F1EEFF;box-shadow:0 3px 10px rgba(150,110,255,.18)}.qz-img-option.correct{border-color:#52C98A;background:#DFF7EA;animation:qz-bounce-in .4s ease}.qz-img-option.wrong{border-color:#FF9FA8;background:#FFE3E8}.qz-img-option-img{max-width:100%;max-height:100%;object-fit:contain}.qz-img-option-emoji{font-size:2rem}.qz-fill-input{width:100%;border:2px solid #eee6ff;border-radius:14px;padding:.8rem 1.1rem;font-size:.95rem;font-family:inherit;font-weight:600;color:#43325E;transition:border-color .15s}.qz-fill-input:focus{outline:none;border-color:#C3A6FF}.qz-fill-input:disabled{background:#FAFAFF}.qz-fill-hint{font-size:.78rem;color:#8A7FA8;margin-top:.5rem}.qz-nav-btns{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.qz-nav-btns-right{display:flex;gap:.75rem;margin-left:auto}.gm-nav-fixed{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(900px,calc(100% - 3rem));z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.85rem 1rem;border-radius:20px 20px 0 0;box-shadow:0 -4px 16px rgba(80,40,130,.1)}.qz-btn-next,.qz-btn-prev,.qz-btn-retry,.qz-btn-submit{border-radius:30px;padding:.65rem 1.6rem;font-size:.9rem;font-weight:800;cursor:pointer;transition:all .15s;border:none}.qz-btn-prev{background:#fff;border:2px solid #eee6ff;color:#8A7FA8}.qz-btn-prev:hover:not(:disabled){border-color:#C3A6FF;color:#6A3FC7}.qz-btn-prev:disabled{opacity:.4;cursor:not-allowed}.qz-btn-next,.qz-btn-retry,.qz-btn-submit{background:linear-gradient(135deg,#FFAFD1,#C3A6FF);color:#fff;box-shadow:0 6px 18px rgba(194,34,107,.22)}.qz-btn-next:hover:not(:disabled),.qz-btn-retry:hover:not(:disabled),.qz-btn-submit:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:0 10px 24px rgba(194,34,107,.3)}.qz-btn-next:disabled,.qz-btn-retry:disabled,.qz-btn-submit:disabled{opacity:.35;cursor:not-allowed;pointer-events:none;box-shadow:none;background:#D8D2E8}.qz-btn-next:active,.qz-btn-retry:active,.qz-btn-submit:active{transform:translateY(0) scale(.98)}.qz-result-box{position:relative;background:#fff;border:2px solid #f0d9ff;border-radius:26px;padding:2.25rem 2.5rem;text-align:center;overflow:hidden;box-shadow:0 14px 40px rgba(120,90,200,.12);animation:qz-pop-in .4s ease both}.qz-result-emoji{font-size:3.2rem;margin-bottom:.5rem;animation:qz-bounce-in .6s ease}.qz-result-score{font-size:2.1rem;font-weight:900;background:linear-gradient(135deg,#C2226B,#6A3FC7);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.25rem}.qz-result-label{font-size:.9rem;color:#8A7FA8;margin-bottom:1.5rem;font-weight:700}.qz-confetti-piece{position:absolute;top:0;font-size:1.3rem;animation:qz-confetti-fall 2.2s ease-in infinite;pointer-events:none}.qz-review-list{text-align:left;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.qz-review-item{border:2px solid #eee6ff;border-radius:14px;padding:.8rem 1.1rem}.qz-review-item.right{border-color:#8FE8B8;background:#EFFBF4}.qz-review-item.wrong{border-color:#D62839;border-width:2.5px;background:#FFF0F1}.qz-review-q{font-weight:800;color:#43325E;font-size:.9rem;margin-bottom:.35rem}.qz-review-ans{font-size:.82rem;color:#8A7FA8}.qz-review-ans strong{color:#43325E}.qz-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.9rem}.qz-card{border:2.5px solid transparent;border-radius:20px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;gap:.45rem;align-items:center;animation:qz-pop-in .3s ease both}.qz-card:hover{transform:translateY(-4px) scale(1.03)}.qz-card:hover .qz-card-icon{animation:qz-float 1.1s ease-in-out infinite}.qz-card-icon{font-size:1.9rem;display:flex;align-items:center;justify-content:center;min-height:4.6rem}.qz-card-img{height:4.6rem;width:auto;max-width:6rem;object-fit:contain}.qz-mode-group{margin-bottom:1.4rem}.qz-mode-group-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;font-size:1.05rem;font-weight:900;color:#43325E;margin:0 0 .7rem}.qz-mode-group-title small{font-size:.78rem;font-weight:700;color:#8A7FA8}.qz-card-label{font-weight:900;font-size:.95rem}.lbl-sub{display:block;font-weight:700;font-size:.82em;opacity:.85;line-height:1.3;margin-top:.1em}.qz-card-meta{font-size:.75rem;font-weight:700;opacity:.75}.qz-filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.9rem}.qz-filter{display:flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:800;color:#8A7FA8}.qz-filter-select{border:2px solid #eee6ff;border-radius:30px;background:#fff;padding:.45rem .9rem;font:inherit;font-size:.88rem;font-weight:700;color:#4a3a85;cursor:pointer;max-width:100%}.qz-filter-select:focus{outline:none;border-color:#C3A6FF}.qz-search-box{display:flex;align-items:center;gap:.6rem;background:#fff;border:2px solid #eee6ff;border-radius:30px;padding:.65rem 1.1rem;margin-bottom:1rem}.qz-search-box:focus-within{border-color:#C3A6FF}.qz-search-icon{font-size:.95rem;opacity:.7}.qz-search-input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:.92rem;font-weight:700;color:#43325E}.qz-search-input::placeholder{color:#B4A8D4;font-weight:600}.qz-search-clear{border:none;background:#F1EEFF;color:#8A7FA8;border-radius:50%;width:22px;height:22px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.qz-search-clear:hover{background:#EDE4FF;color:#6A3FC7}.qz-search-empty{font-size:.9rem;color:#8A7FA8;font-weight:700;text-align:center;padding:1.5rem 0}.qz-quiz-list{display:flex;flex-direction:column;gap:.65rem}.qz-quiz-item{background:#fff;border:2px solid #eee6ff;border-radius:16px;padding:.95rem 1.2rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem;cursor:pointer;transition:all .15s;text-align:left;animation:qz-pop-in .3s ease both}.qz-quiz-item:hover{border-color:#C3A6FF;background:#FAF8FF;transform:translateX(3px)}.qz-quiz-item-title{font-weight:800;color:#43325E}.qz-quiz-item-meta{font-size:.78rem;color:#8A7FA8;margin-top:.15rem;font-weight:600}.bl-tile-row{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin:1.75rem 0}.bl-tile{min-width:68px;padding:.9rem 1.15rem;border-radius:18px;border:3px solid #eee6ff;background:#fff;font-size:1.9rem;font-weight:900;color:#43325E;cursor:pointer;transition:all .15s;text-align:center;font-family:inherit;text-transform:lowercase}.bl-tile:hover{border-color:#C3A6FF;transform:translateY(-2px)}.bl-tile.heard{border-color:#52C98A;background:#EFFBF4;color:#1A8F55}.bl-tile.blending{animation:bl-pulse .35s ease;border-color:#C2226B}.bl-hint{text-align:center;font-size:.85rem;color:#8A7FA8;font-weight:700}.bl-word-reveal{text-align:center;animation:qz-pop-in .35s ease both}.bl-word-reveal-emoji{font-size:3.5rem;margin-bottom:.4rem;animation:qz-bounce-in .5s ease}.bl-word-reveal-img{display:block;max-width:100%;max-height:160px;margin:0 auto .6rem;border-radius:16px;border:2px solid #f0d9ff;object-fit:contain;animation:qz-bounce-in .5s ease}.bl-word-reveal-text{font-size:2.5rem;font-weight:900;letter-spacing:1px;background:linear-gradient(135deg,#C2226B,#6A3FC7);-webkit-background-clip:text;background-clip:text;color:transparent}.bl-word-reveal-text.correct{background:none;-webkit-text-fill-color:currentColor;color:#1A8F55}.bl-word-reveal-text.wrong{background:none;-webkit-text-fill-color:currentColor;color:#C2226B}.bl-word-reveal-row{display:flex;align-items:baseline;justify-content:center;gap:.7rem;flex-wrap:wrap}.bl-word-reveal-pinyin{font-size:calc(1.35rem + 2px);font-weight:700;color:#6A3FC7}.bl-dots{display:flex;gap:.4rem;justify-content:center;margin-top:.5rem}.bl-dot{width:10px;height:10px;border-radius:50%;background:#EEE6FF;transition:background .2s}.bl-dot.done{background:#8FE8B8}.bl-dot.current{background:#C3A6FF}@keyframes bl-pulse{0%{transform:scale(1)}50%{transform:scale(1.18)}to{transform:scale(1)}}.fc-card{width:100%;max-width:340px;aspect-ratio:4/3;border-radius:22px;background:none;border:none;padding:0;cursor:pointer;perspective:1200px}.fc-card-inner{position:relative;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.9,.3,1.3);transform-style:preserve-3d}.fc-card--flipped .fc-card-inner{transform:rotateY(180deg)}.fc-card-face{position:absolute;inset:0;border-radius:22px;background:#fff;border:2px solid #f0d9ff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;backface-visibility:hidden;box-shadow:0 4px 0 #F0D9FF;padding:1rem}.fc-card-face--front{background:linear-gradient(135deg,#FFF5EB,#fff)}.fc-card-face--back{transform:rotateY(180deg);border-color:#8FE8B8;background:#EFFBF4;gap:.65rem;overflow-y:auto}.fc-card-img{display:block;max-width:100%;max-height:160px;border-radius:14px;object-fit:contain;transform:scale(1.1)}.fc-card-word{font-size:1.8rem;font-weight:800;color:#C2226B;text-align:center}.fc-card-phonetic{font-size:calc(.85rem + 2px);font-weight:400;font-style:italic;color:#6A3FC7;text-align:center;margin-top:-.4rem}.fc-card-meaning{font-size:1.5rem;font-weight:800;color:#C2226B;text-align:center;line-height:1.4}.fc-card-definition{font-size:.92rem;color:#5B3FA0}.fc-card-definition,.fc-card-example{font-weight:700;font-style:normal;text-align:center;line-height:1.55}.fc-card-example{font-size:.86rem;color:#1573B8}.fc-card-example-phonetic{font-size:calc(.8rem + 2px);font-weight:400;font-style:italic;color:#6A3FC7;text-align:center;margin-top:-.5rem}.mg-board{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.mg-col{flex-direction:column}.mg-col,.mg-tile{display:flex;gap:.6rem}.mg-tile{align-items:center;border:2px solid #eee6ff;border-radius:14px;background:#fff;padding:.6rem .9rem;font-size:.95rem;font-weight:700;color:#43325E;cursor:pointer;transition:all .15s;text-align:left}.mg-tile:hover:not(:disabled){border-color:#C3A6FF;background:#F5F0FF}.mg-tile.selected{border-color:#6A3FC7;background:#F1EEFF;box-shadow:0 3px 10px rgba(150,110,255,.18)}.mg-tile.matched{border-color:#8FE8B8;background:#EFFBF4;color:#1A8F55;opacity:.7;cursor:default}.mg-tile.wrong{border-color:#FFAFAF;background:#FFE3E8;color:#C2226B;animation:qz-shake .4s ease both}.mg-tile--meaning{font-weight:600}.mg-tile-text{flex:1}.mg-tile--meaning .mg-tile-text{font-size:1.3rem;color:#1A8F55}.mg-tile-stack{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}.mg-tile-stack--inline{flex-direction:row;align-items:baseline;gap:.5rem;flex-wrap:wrap}.mg-tile-word{font-size:1.3rem;font-weight:800;color:#C2226B}.mg-tile-phonetic{font-size:calc(.78rem + 2px);font-weight:400;font-style:italic;color:#6A3FC7}.tts-audio-btn{display:block;margin:0 auto 1rem}.tts-row{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-bottom:.5rem}.tts-row .qz-fill-input{max-width:260px;text-align:center;font-size:1.1rem}.mm-grid{display:grid;gap:.7rem}.mm-card{aspect-ratio:1;border:none;background:none;padding:0;cursor:pointer;perspective:900px}.mm-card:disabled{cursor:default}.mm-card-inner{position:relative;width:100%;height:100%;transition:transform .4s cubic-bezier(.2,.9,.3,1.3);transform-style:preserve-3d}.mm-card.up .mm-card-inner{transform:rotateY(180deg)}.mm-card-face{position:absolute;inset:0;border-radius:14px;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;border:2px solid #f0d9ff}.mm-card-face--back{background:linear-gradient(135deg,#C3A6FF,#FFAFD1);color:#fff;font-weight:900;font-size:1.3rem}.mm-card-face--front{transform:rotateY(180deg);background:#fff;padding:.4rem;overflow:hidden}.mm-card.matched .mm-card-face--front{border-color:#8FE8B8;background:#EFFBF4}.mm-card-img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;filter:brightness(1.06)}.mm-card-emoji{font-size:1.8rem}.mm-card-text{font-size:.8rem;font-weight:800;color:#43325E;text-align:center;line-height:1.25}.mm-card-stack{display:flex;flex-direction:column;align-items:center;gap:.1rem}.mm-card-word{font-size:1.5rem;font-weight:800;color:#C2226B;text-align:center;line-height:1.2}.mm-card-phonetic{font-size:calc(.62rem + 2px);font-weight:400;font-style:italic;color:#6A3FC7;text-align:center}.us-layout{display:grid;gap:1rem;align-items:center}.us-visual{display:flex;align-items:center;justify-content:center}.us-exercise,.us-visual{min-width:0}.us-exercise .us-hint{margin-bottom:1.5rem}.us-exercise .us-slot,.us-exercise .us-tile{flex-shrink:0}@media (min-width:700px){.us-layout--visual{grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:1rem;max-width:760px;margin-inline:auto}.us-layout--visual .us-visual{justify-content:flex-end}.us-layout--visual .us-hint-img--square{--us-img:220px;max-width:100%;height:auto;aspect-ratio:1}.us-layout--visual .us-hint-emoji{font-size:6rem}}.us-hint{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:.6rem}.us-hint .qz-phonetic-block{margin-top:-.2rem}.us-hint-img{display:block;max-width:100%;max-height:160px;border-radius:14px;border:2px solid #f0d9ff;object-fit:contain}.us-hint-img--square{--us-img:180px;width:min(var(--us-img),70vw);height:min(var(--us-img),70vw);max-height:none;background:#fff}.us-hint-emoji{font-size:3rem}.us-hint-meaning{font-size:1.25rem;font-weight:700;color:#C2226B;text-align:center}.us-hint.tts-word-heading{flex-direction:row;justify-content:center;flex-wrap:wrap;gap:.6rem}.tts-word-heading .us-hint-meaning{font-size:calc(1.25rem + 2px)}.us-word-heading{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.6rem}.us-word-heading .us-hint-meaning{font-size:calc(1.25rem + 2px)}.us-slots{flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem}.us-slot,.us-slots{display:flex;justify-content:center}.us-slot{width:2.6rem;height:2.6rem;border-radius:10px;border:2px solid #eee6ff;background:#FAF8FF;font-size:1.2rem;font-weight:900;color:#43325E;align-items:center;cursor:pointer}.us-slot:disabled{cursor:default}.us-slot.filled{border-color:#C3A6FF;background:#F1EEFF}.us-gap{width:.7rem}.us-pool{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.us-tile{width:2.6rem;height:2.6rem;border-radius:10px;border:2px solid #ffd9ad;background:#FFF3E8;font-size:1.2rem;font-weight:900;color:#7A4A00;cursor:pointer;transition:all .15s}.us-tile:hover:not(:disabled){transform:translateY(-2px)}.us-tile.used,.us-tile:disabled{opacity:.25;cursor:default;transform:none}.ws-wrap{display:flex;flex-direction:column;gap:1.25rem;align-items:center}.ws-words{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.ws-word{display:inline-flex;flex-direction:column;align-items:center;line-height:1.2;font-size:1.1rem;font-weight:800;padding:.4rem .9rem;border-radius:16px;background:#F1EEFF;color:#C2226B}.ws-word.found{background:#DFF7EA;color:#1A8F55;text-decoration:line-through}.ws-word-phonetic{font-size:calc(.68rem + 2px);font-weight:400;font-style:italic;color:#6A3FC7}.ws-grid{display:grid;gap:2px;background:#F0D9FF;border:2px solid #f0d9ff;border-radius:12px;padding:2px;width:100%;max-width:480px;user-select:none;touch-action:none}.ws-cell{aspect-ratio:1;background:#fff;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;color:#43325E;border-radius:4px}.ws-cell.active{background:#F5F0FF;color:#6A3FC7}.ws-cell.found{background:#DFF7EA;color:#1A8F55}.lg-mystery{flex-direction:column;gap:.3rem;margin-bottom:.4rem}.lg-mystery,.lg-mystery-icon{display:flex;align-items:center}.lg-mystery-icon{width:84px;height:84px;border-radius:50%;background:#F1EEFF;border:3px solid #e4d9ff;justify-content:center;font-size:2.5rem;box-shadow:0 4px 0 #E4D9FF}.lg-mystery-icon--pulse{animation:bl-pulse 1.1s ease-in-out infinite}.lg-mystery-img{max-width:78%;max-height:78%;object-fit:contain}.lg-mystery-word{font-size:1.2rem;font-weight:800;color:#C2226B;text-align:center}.us-slots--words{gap:.6rem}.us-slot--word{width:auto;min-width:3.2rem;height:auto;min-height:2.6rem;padding:.4rem .9rem}.us-pool--words{gap:.6rem}.us-tile--word{width:auto;height:auto;padding:.55rem 1rem}.sm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.25rem}.sm-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;background:#fff;border:2px solid #f0d9ff;border-radius:16px;padding:.45rem .6rem .55rem}.sm-card.hidden{background:#F5F0FF;border-style:dashed;border-color:#C3A6FF}.sm-card.correct{border-color:#52C98A;background:#DFF7EA;animation:qz-bounce-in .4s ease}.sm-card.wrong{border-color:#FF9FA8;background:#FFE3E8}.sm-card-img{display:block;flex:none;width:120px;height:120px;max-width:100%;object-fit:contain}.sm-card-word{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.3rem;font-size:1.25rem;font-weight:800;color:#C2226B;text-align:center;line-height:1.2}.sm-option{color:#C56A00;font-weight:800}.sm-card-emoji{font-size:2.6rem}.sm-card-mystery{font-size:2.6rem;opacity:.6}.sm-countdown{text-align:center;font-weight:800;font-size:1.1rem;color:#6A3FC7;animation:qz-timer-pulse 1s ease-in-out infinite}.ml-layout{display:grid;align-items:center;gap:1rem;width:100%;max-width:740px;margin-inline:auto}.ml-exercise{min-width:0}.ml-layout .ml-hint{margin-bottom:0;min-width:0}@media (min-width:700px){.ml-layout{width:fit-content;max-width:100%;grid-template-columns:minmax(0,max-content) minmax(0,max-content);justify-content:center;gap:1.5rem}}.ml-hint-meaning{font-size:1.6rem;font-weight:800;color:#C2226B;text-align:center}.ml-hint{display:flex;flex-direction:column;align-items:center;gap:.5rem}.ml-hint,.ml-lives{margin-bottom:.75rem}.ml-lives{font-size:1.3rem;text-align:center}.ml-word{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem;margin-bottom:1.25rem}.ml-word.shake{animation:qz-shake .4s ease both}.ml-letter{min-width:3.1rem;height:3.1rem;padding:0 .2rem;border-radius:12px;font-size:1.6rem;font-weight:900;display:flex;align-items:center;justify-content:center}.ml-letter--fixed{color:#43325E}.ml-letter--blank{border:2px solid #eee6ff;background:#FAF8FF;color:#43325E;cursor:pointer}.ml-letter--blank:disabled{cursor:default}.ml-letter--blank.filled{border-color:#C3A6FF;background:#F1EEFF}.ml-pool{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.ml-tile{width:3.1rem;height:3.1rem;border-radius:12px;border:2px solid #ffd9ad;background:#FFF3E8;font-size:1.5rem;font-weight:900;color:#7A4A00;cursor:pointer;transition:all .15s}.ml-tile:hover:not(:disabled){transform:translateY(-2px)}.ml-tile.used,.ml-tile:disabled{opacity:.25;cursor:default;transform:none}.hw-cta{display:flex;align-items:center;gap:.9rem;width:100%;border-radius:16px;border:2px solid #ffd9ad;background:linear-gradient(135deg,#FFF3E8,#FFE8D2);padding:1rem 1.25rem;margin-bottom:1.25rem;cursor:pointer;text-align:left;transition:all .15s}.hw-cta:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,140,66,.18)}.hw-cta-icon{font-size:1.8rem}.hw-cta-text{display:flex;flex-direction:column;gap:.15rem;flex:1}.hw-cta-title{font-weight:900;font-size:1.05rem;color:#7A4A00}.hw-cta-hint{font-size:.82rem;color:var(--gray)}.hw-cta-arrow{font-size:1.3rem;color:var(--orange);font-weight:900}.hw-word-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:1.25rem}.hw-word-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;border-radius:14px;border:2px solid var(--border);background:#fff;padding:1rem .75rem;cursor:pointer;transition:all .15s;text-align:center;animation:qz-pop-in .35s ease both}.hw-word-card:hover{border-color:var(--orange);transform:translateY(-2px)}.hw-word-card--done{border-color:#8FE8B8;background:#F3FCF6}.hw-word-card-word{font-size:1.4rem;font-weight:900;color:#C2226B}.hw-word-card-phonetic{font-size:calc(.8rem + 2px);color:#6A3FC7;font-style:italic}.hw-word-card-meaning{font-size:.82rem;color:var(--gray)}.hw-word-card-check{font-size:.72rem;font-weight:800;color:#1A8F55;margin-top:.2rem}.hw-hint{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-bottom:1rem;text-align:center}.hw-word{font-size:1.4rem;font-weight:900;color:#C2226B}.hw-meaning{font-size:.9rem;color:var(--gray)}.hw-boards{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:1.25rem}.hw-board{display:flex;flex-direction:column;align-items:center;gap:.4rem}.hw-target{border-radius:14px;border:2px solid var(--border);background:#fff;box-shadow:0 2px 0 var(--border)}.hw-target--done{border-color:#8FE8B8;box-shadow:0 2px 0 #8FE8B8}.hw-char-label{font-size:1.1rem;font-weight:900;color:#43325E}.hw-board-actions{display:flex;gap:.4rem}.hw-hint-btn{border:2px solid var(--border);background:#fff;color:var(--navy);font-weight:700;font-size:.72rem;cursor:pointer;padding:.3rem .65rem;border-radius:20px;white-space:nowrap}.hw-hint-btn:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}.hw-hint-btn:disabled{opacity:.4;cursor:default}.hw-practice-btn{border:none;background:var(--orange);color:#fff;font-weight:800;font-size:.72rem;cursor:pointer;padding:.3rem .7rem;border-radius:20px;white-space:nowrap}.hw-practice-btn:hover:not(:disabled){filter:brightness(1.06)}.hw-practice-btn:disabled{opacity:.4;cursor:default}.hw-mistakes{font-size:.75rem;color:#C2226B}.hw-mistakes--done{color:#1A8F55;font-weight:700}.pos-pool{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:1.25rem;min-height:2.8rem}.pos-tile{border-radius:30px;border:2px solid #eee6ff;background:#FAF8FF;color:#43325E;font-weight:800;font-size:.95rem;padding:.55rem 1.1rem;cursor:pointer;transition:all .15s}.pos-tile:hover:not(:disabled){border-color:#C3A6FF;background:#F5F0FF;transform:translateY(-1px)}.pos-tile.selected{border-color:#6A3FC7;background:#F1EEFF;box-shadow:0 3px 10px rgba(150,110,255,.18)}.pos-tile.wrong{border-color:#FFAFAF;background:#FFE3E8;color:#C2226B;animation:qz-shake .4s ease both}.pos-buckets{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.pos-bucket{display:flex;flex-direction:column;gap:.5rem;align-items:center;border-radius:16px;border:2px dashed #d6eeff;background:#F7FBFF;padding:.9rem .7rem;min-height:90px;cursor:pointer;transition:all .15s}.pos-bucket:hover{border-color:#9CD4FF;background:#EAF4FF}.pos-bucket.wrong{border-color:#FFAFAF;background:#FFE3E8;animation:qz-shake .4s ease both}.pos-bucket-label{font-weight:900;color:#1573B8;text-align:center}.pos-bucket-items{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.pos-bucket-chip{border-radius:20px;background:#DFF7EA;color:#1A8F55;font-weight:700;font-size:.85rem;padding:.3rem .75rem}.pos-progress{text-align:center;font-weight:800;color:#8A7FA8;margin-top:1rem}.dc-layout{display:grid;align-items:center;gap:1rem;width:100%;max-width:1100px;margin-inline:auto}.dc-exercise,.dc-reference{min-width:0}.dc-reference{text-align:center}.dc-layout .dc-table-wrap{margin-bottom:0}.dc-layout .dc-table{width:100%;table-layout:fixed}.dc-layout .dc-table td{width:auto}.dc-layout .dc-exercise .dc-hint{margin-top:0;margin-bottom:1.25rem}@media (min-width:760px){.dc-layout--table{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1.5rem}.dc-layout--table .dc-table td{height:clamp(28px,3.5vw,46px);padding:1px}.dc-layout--table .dc-table .dc-cell{font-size:clamp(.85rem,1.5vw,1.15rem)}.dc-layout--table .dc-shape{max-width:100%;height:auto}}.dc-toggle{align-self:center;background:none;border:none;color:#6A3FC7;font-weight:800;font-size:.85rem;cursor:pointer;padding:.3rem .6rem;margin-bottom:.35rem}.dc-table-wrap{overflow-x:auto;margin-bottom:1rem;-webkit-overflow-scrolling:touch}.dc-table{border-collapse:collapse;margin:0 auto;font-family:Arial,Helvetica Neue,Helvetica,Tahoma,sans-serif}.dc-table td{border:1px solid #1c1c1c;width:46px;height:46px;text-align:center;vertical-align:middle;padding:2px;background:#fff}.dc-table .dc-swatch{padding:0;border-color:#1c1c1c}.dc-table .dc-cell{font-size:1.15rem;font-weight:400;color:#1c1c1c}.dc-shape{display:block;margin:0 auto}.dc-hint{font-size:.95rem;font-weight:700}.dc-cryptogram{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .65rem;background:#FAF8FF;border:2px solid #eee6ff;border-radius:14px;padding:1rem 1.1rem;margin-bottom:1rem;min-height:3.4rem}.dc-glyph{display:inline-flex}.dc-gap{width:1.4rem}.qz-feedback.dc-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .9rem}.dc-feedback-meaning{font-size:.95rem;font-weight:700;color:#C2226B}.dv-tonekey{display:flex;flex-direction:column;align-items:center;gap:.3rem;margin:-.3rem 0 .9rem}.dv-tonekey-title{font-size:.72rem;font-weight:800;color:#43325E}.dv-tonekey-row{display:flex;flex-wrap:wrap;justify-content:center;gap:0}.dv-tonekey-cell{display:flex;flex-direction:column;align-items:center;gap:.1rem;border:1px solid #1c1c1c;padding:.25rem .5rem;min-width:48px}.dv-tonekey-cell+.dv-tonekey-cell{border-left:none}.dv-tonekey-mark{display:flex;align-items:center;justify-content:center;height:15px}.dv-tonekey-label{font-size:.66rem;font-weight:700;color:#1c1c1c}.dv-cryptogram{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem .7rem;background:#FAF8FF;border:2px solid #eee6ff;border-radius:14px;padding:1.8rem 1rem 1.5rem;margin-bottom:1rem;min-height:3.4rem}.dv-glyph{position:relative;display:inline-flex}.dv-tone-above{top:-13px}.dv-tone-above,.dv-tone-below{position:absolute;left:0;right:0;display:flex;justify-content:center}.dv-tone-below{bottom:-12px}.dv-tone{display:block}.cz-empty{gap:1rem;padding:2rem 1rem;color:#8A7FA8;font-weight:700;text-align:center}.cz-empty,.pr-hint{display:flex;flex-direction:column;align-items:center}.pr-hint{gap:.4rem;margin-bottom:1.5rem}.pr-hint-img{display:block;max-width:100%;max-height:160px;border-radius:16px;border:2px solid #f0d9ff;object-fit:contain;margin-bottom:.4rem}.pr-hint-emoji{font-size:3.5rem;margin-bottom:.4rem}.pr-word{font-size:1.6rem;font-weight:900;color:#C2226B;text-align:center}.pr-phonetic{font-size:calc(.95rem + 2px);color:#6A3FC7}.pr-meaning,.pr-phonetic{font-weight:600;text-align:center}.pr-meaning{font-size:.95rem;color:#C2226B;margin-top:.3rem}.pr-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem}.pr-score{margin:0 0 1.1rem;border-radius:16px;padding:1rem 1.2rem;text-align:center;animation:qz-pop-in .3s ease both}.pr-score--great{background:#DFF7EA;border:2px solid #8fe8b8;color:#1A8F55}.pr-score--ok{background:#FFF3E8;border:2px solid #ffd9ad;color:#C56A00}.pr-score--low{background:#FFE3E8;border:2px solid #ffafaf;color:#C2226B;animation:qz-shake .4s ease both}.pr-score-percent{font-size:1.8rem;font-weight:900}.pr-score-label{font-size:.9rem;font-weight:700;margin-top:.2rem}.pr-score-heard{font-size:.8rem;font-weight:600;margin-top:.4rem;opacity:.85}.rd-sentence{font-size:1.6rem;font-weight:800;line-height:2.3;color:#43325E;text-align:center;margin:1rem 0 1.75rem}.rd-word{display:inline-block;padding:.05rem .2rem;border-radius:6px;transition:background .15s,color .15s}.rd-word.active{background:#FFE3EF;color:#C2226B}.rd-word.correct{background:#DFF7EA;color:#1A8F55}.rd-word.wrong{background:#FFE3E8;color:#C2226B}.rd-meaning{text-align:center;font-weight:700;font-size:1.05rem;color:#8A7FA8;margin:-1rem 0 1rem}.rd-reply{text-align:center;font-weight:600;font-size:1rem;color:#1573B8;margin:0 0 .75rem}.rd-reply b{font-weight:800}.rd-reply-btn{margin-left:.4rem;border:none;background:#D6EEFF;border-radius:999px;padding:.15rem .5rem;cursor:pointer;font-size:1rem}.rd-note{text-align:center;white-space:pre-line;font-size:.82rem;color:#8A7FA8;margin:0 0 .85rem}.rd-split{display:flex;align-items:center;gap:1.5rem;margin-bottom:1rem}.rd-split-img{flex:0 0 38%;max-width:38%;max-height:240px;border-radius:16px;border:2px solid #f0d9ff;object-fit:contain;background:#fff}.rd-split-text{flex:1;min-width:0}.rd-word-step{margin-bottom:0}.rd-word-step .rd-split-text{width:100%}.rd-word-step .bl-tile-row{margin:1rem 0}.rd-word-step .qz-nav-btns{flex-wrap:wrap;gap:.75rem}.rd-split .rd-sentence{font-size:1.4rem;margin:0 0 1rem}.rd-split .rd-meaning{margin-top:0}@media (max-width:560px){.rd-split{flex-direction:column}.rd-split-img{flex-basis:auto;max-width:100%;max-height:180px}}.rd-recording{font-weight:800;animation:qz-timer-pulse 1s ease-in-out infinite}.rd-record-error,.rd-recording{text-align:center;color:#C2226B;margin:0 0 .75rem}.rd-record-error{font-weight:700}.rd-score{text-align:center;font-weight:800;font-size:1rem;color:#43325E;margin:0 0 1rem}.rd-annot{display:inline-flex;flex-direction:column;align-items:center;line-height:1.2;vertical-align:bottom}.rd-annot-pinyin{font-size:calc(.55em + 2px);color:#6A3FC7;font-weight:700;text-transform:none}.ty-pdf-tools{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}.ty-pdf-hint{margin-right:auto;font-size:.82rem;color:#8A7FA8;font-weight:700}.ty-pdf-btn{display:inline-flex;align-items:center;gap:.35rem;border-radius:30px;padding:.5rem 1.2rem;font-size:.88rem;font-weight:800;background:#fff;border:2px solid #c3a6ff;color:#6A3FC7;cursor:pointer;text-decoration:none;transition:all .15s}.ty-pdf-btn:hover{background:#F4ECFF;border-color:#9B6BE8}.ty-pdf-wrap{margin:0 auto;width:100%}.ty-pdf-wrap--portrait{max-width:820px;aspect-ratio:210/297}.ty-pdf-wrap--landscape{max-width:1100px;aspect-ratio:297/210}.ty-pdf-wrap--landscape .ty-pdf-frame,.ty-pdf-wrap--portrait .ty-pdf-frame{height:100%;min-height:0}.ty-sl{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%}.ty-sl.is-fs{justify-content:center;background:linear-gradient(160deg,#FFF0F6,#F1EEFF 50%,#E9FBF2);padding:1rem}.ty-sl-stage{position:relative;max-width:100%;background:#fff;border:2px solid #f0d9ff;border-radius:16px;box-shadow:0 10px 30px rgba(106,63,199,.14);overflow:hidden;touch-action:pan-y}.ty-sl-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;color:#8A7FA8}.ty-sl-page{position:absolute;inset:0;opacity:0}.ty-sl-blk{opacity:0;transition:opacity .5s ease,transform .5s cubic-bezier(.22,.8,.3,1),clip-path .6s ease}.ty-sl-blk.ty-fx-up{transform:translateY(24px)}.ty-sl-blk.ty-fx-down{transform:translateY(-24px)}.ty-sl-blk.ty-fx-left{transform:translateX(-40px)}.ty-sl-blk.ty-fx-right{transform:translateX(40px)}.ty-sl-blk.ty-fx-zoom{transform:scale(.6)}.ty-sl-blk.ty-fx-wipe{opacity:1;clip-path:inset(0 100% 0 0)}.ty-sl-blk.is-on{opacity:1;transform:none;clip-path:inset(0 0 0 0)}.ty-sl-count em{font-style:normal;color:#A79BC7}.ty-sl-tg.is-on{background:#F1E8FF;border-color:#9B6BE8;color:#6A3FC7}.ty-sl-page.is-ready{opacity:1;animation:ty-sl-in-next .38s cubic-bezier(.22,.8,.3,1)}.ty-sl-page--prev.is-ready{animation-name:ty-sl-in-prev}.ty-sl-t-fade.is-ready{animation-name:ty-sl-in-fade;animation-duration:.5s}.ty-sl-t-zoom.is-ready{animation-name:ty-sl-in-zoom;animation-duration:.45s}.ty-sl-t-flip.is-ready{animation-name:ty-sl-in-flip;animation-duration:.6s;transform-origin:left center}.ty-sl-t-none.is-ready{animation:none}@keyframes ty-sl-in-fade{0%{opacity:0}to{opacity:1}}@keyframes ty-sl-in-zoom{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes ty-sl-in-flip{0%{opacity:0;transform:perspective(1200px) rotateY(-70deg)}to{opacity:1;transform:none}}@keyframes ty-sl-in-next{0%{opacity:0;transform:translateX(7%) scale(.97)}to{opacity:1;transform:none}}@keyframes ty-sl-in-prev{0%{opacity:0;transform:translateX(-7%) scale(.97)}to{opacity:1;transform:none}}.ty-sl-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.85);color:#6A3FC7;font-size:1.9rem;line-height:1;font-weight:900;cursor:pointer;box-shadow:0 3px 12px rgba(106,63,199,.25);opacity:0;transition:opacity .15s,transform .15s}.ty-sl-arrow:focus-visible,.ty-sl-stage:hover .ty-sl-arrow{opacity:1}.ty-sl-arrow:hover{transform:translateY(-50%) scale(1.1)}.ty-sl-arrow--prev{left:10px}.ty-sl-arrow--next{right:10px}@media (hover:none){.ty-sl-arrow{opacity:.8;width:38px;height:38px}}.ty-sl-top{justify-content:flex-end}.ty-sl-bar,.ty-sl-top{max-width:100%;display:flex}.ty-sl-bar{flex-direction:column;gap:.6rem}.ty-sl-progress{height:8px;border-radius:99px;background:#EEE6FF;overflow:hidden}.ty-sl-progress span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#FF8CB8,#9B6BE8);transition:width .35s ease}.ty-sl-ctrl{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap}.ty-sl-ctrl .ty-pdf-btn:disabled{opacity:.4;cursor:default}.ty-sl-count{font-weight:800;color:#6A3FC7;font-size:.9rem;min-width:96px;text-align:center}@media (prefers-reduced-motion:reduce){.ty-sl-page.is-ready{animation:none}.ty-sl-blk{transition:opacity .2s;transform:none!important}.ty-sl-progress span{transition:none}}.ty-pdf-frame{width:100%;height:75vh;min-height:420px;border:2px solid #f0d9ff;border-radius:16px;background:#fff}@media (max-width:640px){.qz-main{padding:1.25rem 1rem 2.5rem}.gm-main-padded{padding-bottom:6.5rem}.gm-nav-fixed{width:calc(100% - 2rem);padding:.65rem .75rem}.qz-question-card{padding:1.25rem 1.35rem}.qz-result-box{padding:1.75rem 1.35rem}.qz-card-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.bl-tile{min-width:54px;font-size:1.5rem;padding:.7rem .85rem}}@media (prefers-reduced-motion:reduce){.bl-tile.blending,.bl-word-reveal,.bl-word-reveal-emoji,.bl-word-reveal-img,.qz-card,.qz-card:hover .qz-card-icon,.qz-confetti-piece,.qz-feedback,.qz-option.correct,.qz-page,.qz-progress-fill,.qz-question-card,.qz-quiz-item,.qz-result-box,.qz-result-emoji,.qz-timer.low,.rd-recording{animation:none!important}.qz-bg-decor{display:none}}.gm-page{min-height:100vh;background:var(--cream);font-family:var(--font-nunito),"Nunito",system-ui,sans-serif;display:flex;flex-direction:column}.gm-nav{position:sticky;top:0;z-index:100;background:rgba(253,248,242,.95);backdrop-filter:blur(8px);border-bottom:2px solid var(--border);display:flex;align-items:center;gap:1rem;padding:0 1.5rem;height:52px}.gm-nav-logo{font-weight:900;font-size:1rem;color:var(--orange);text-decoration:none}.gm-nav-title{font-weight:800;font-size:.95rem;color:var(--navy)}.gm-nav-back{margin-left:auto;font-size:.82rem;font-weight:700;color:var(--gray);text-decoration:none}.gm-nav-back:hover{color:var(--orange)}.gm-main{flex:1;max-width:640px;width:100%;margin:0 auto;padding:2rem 1.5rem 3rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.gm-stats{display:flex;gap:1rem}.gm-stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.6rem 1.1rem;min-width:80px;text-align:center}.gm-stat-val{display:block;font-size:1.4rem;font-weight:900;color:var(--orange);line-height:1}.gm-stat-label{display:block;font-size:.7rem;color:var(--gray);margin-top:.2rem}.gm-prompt{font-size:1.1rem;font-weight:800;color:var(--navy);text-align:center}.gm-sequence{gap:.6rem;flex-wrap:wrap}.gm-cell,.gm-sequence{display:flex;justify-content:center}.gm-cell{width:64px;height:64px;border-radius:14px;background:#fff;border:2px solid var(--border);align-items:center;font-size:1.8rem;font-weight:800;color:var(--navy)}.gm-cell--blank{border-style:dashed;border-color:var(--orange);color:var(--orange)}.gm-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;width:100%;max-width:360px}.gm-option{height:64px;border-radius:14px;background:#fff;border:2px solid var(--border);font-size:1.6rem;font-weight:800;color:var(--navy);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 0 var(--border)}.gm-option:hover:not(:disabled){border-color:var(--orange);transform:translateY(-2px)}.gm-option:disabled{cursor:default}.gm-option--correct{border-color:#52b788;background:#f6fdf7;color:#2f7a52;animation:gm-pop .35s ease}.gm-option--wrong{border-color:#e76f51;background:#fff5f2;color:#c0442a;animation:gm-shake .35s ease}@keyframes gm-pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes gm-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}.gm-cell--blank{animation:gm-blink 1.4s ease-in-out infinite}@keyframes gm-blink{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.gm-cell--blank,.gm-hub-card,.gm-memory-inner,.gm-option--correct,.gm-option--wrong{animation:none!important;transition:none!important}}.gm-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.gm-btn{background:none;border:1.5px solid var(--border);border-radius:20px;padding:.55rem 1.25rem;font-size:.85rem;font-weight:700;color:var(--gray);cursor:pointer;transition:all .15s}.gm-btn:hover{border-color:var(--orange);color:var(--orange)}.gm-btn--primary{background:var(--orange);border-color:var(--orange);color:#fff}.gm-btn--primary:hover{background:#e8792f;color:#fff}.gm-hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;width:100%}.gm-hub-card{background:#fff;border:2px solid var(--border);border-radius:18px;padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;text-decoration:none;transition:all .18s;box-shadow:0 2px 0 var(--border)}.gm-hub-card:hover{border-color:var(--orange);transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.08)}.gm-hub-icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#fff5eb,#fef0e2);display:flex;align-items:center;justify-content:center}.gm-hub-title{font-weight:800;color:var(--navy);font-size:1rem}.gm-hub-desc{font-size:.78rem;color:var(--gray)}.gm-credit{font-size:.72rem;color:var(--gray);text-align:center;margin-top:auto}.gm-credit a{color:var(--gray);text-decoration:underline}.gm-credit a:hover{color:var(--orange)}.gm-options--wide{grid-template-columns:repeat(4,1fr);max-width:480px}.gm-option--emoji{font-size:2rem}.gm-memory-grid{display:grid;gap:.6rem;width:100%;max-width:420px}.gm-memory-card{aspect-ratio:1;border-radius:12px;background:none;border:none;padding:0;cursor:pointer;perspective:600px}.gm-memory-card:disabled{cursor:default}.gm-memory-inner{position:relative;width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.9,.3,1.3);transform-style:preserve-3d}.gm-memory-inner--flipped{transform:rotateY(180deg)}.gm-memory-face{position:absolute;inset:0;border-radius:12px;background:#fff;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;backface-visibility:hidden;box-shadow:0 2px 0 var(--border)}.gm-memory-face--back{background:linear-gradient(135deg,#fff5eb,#fff)}.gm-memory-face--front{transform:rotateY(180deg);border-color:var(--teal);background:#f0fbfa}.gm-memory-face--matched{border-color:#52b788;background:#f6fdf7;box-shadow:0 0 0 3px rgba(82,183,136,.2)}.gm-memory-card:hover:not(:disabled) .gm-memory-face--back{border-color:var(--orange)}@media (max-width:480px){.gm-cell,.gm-option{width:56px;height:56px;font-size:1.4rem}.gm-options{max-width:300px}}.gm-count-field{position:relative;width:100%;max-width:320px;height:200px;background:#fff;border:2px solid var(--border);border-radius:16px;overflow:hidden}.gm-count-item{position:absolute}.gm-inline-emoji{display:inline-block;vertical-align:middle;margin:0 .1rem}.gm-maze{display:grid;gap:0;border:3px solid var(--navy);border-radius:8px;background:#fff;width:fit-content;margin:0 auto}.gm-maze-cell{width:34px;height:34px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.gm-dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px);gap:.4rem}.gm-dpad,.gm-dpad-btn{justify-content:center}.gm-dpad-btn{background:#fff;border:2px solid var(--border);border-radius:10px;font-size:1.1rem;color:var(--navy);cursor:pointer;display:flex;align-items:center;transition:all .15s}.gm-dpad-btn:hover{border-color:var(--orange);color:var(--orange)}.gm-dpad-up{grid-column:2;grid-row:1}.gm-dpad-left{grid-column:1;grid-row:2}.gm-dpad-right{grid-column:3;grid-row:2}.gm-dpad-down{grid-column:2;grid-row:2}.gm-sudoku-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:3px solid var(--navy);border-radius:10px;overflow:hidden;width:fit-content;margin:0 auto}.gm-sudoku-cell{width:64px;height:64px;background:#fff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.gm-sudoku-cell:hover:not(:disabled){background:#fff5eb}.gm-sudoku-cell--given{background:var(--light);cursor:default}.gm-sudoku-cell--wrong{animation:gm-shake .35s ease;background:#fff5f2}@media (max-width:480px){.gm-maze-cell{width:28px;height:28px}.gm-sudoku-cell{width:54px;height:54px}}.gm-progress{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:700;color:var(--gray);background:#fff;border:1px solid var(--border);border-radius:20px;padding:.4rem .5rem .4rem 1rem;flex-wrap:wrap;justify-content:center}.gm-progress-item{color:var(--navy)}.gm-progress-sep{color:var(--border)}.gm-progress-change{margin-left:.4rem;background:var(--light);border:none;border-radius:16px;padding:.3rem .75rem;font-size:.78rem;font-weight:700;color:var(--navy);cursor:pointer;transition:all .15s}.gm-progress-change:hover{background:#fff5eb;color:var(--orange)}.gm-summary{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:#fff;border:2px solid var(--orange);border-radius:20px;padding:2.5rem 2rem;box-shadow:0 10px 30px rgba(0,0,0,.08);animation:gm-pop .4s ease}.gm-summary-emoji{font-size:3rem}.gm-summary-title{font-size:1.3rem;font-weight:900;color:var(--navy)}.gm-summary-time{font-size:.9rem;color:var(--gray);margin-bottom:.5rem}.gm-select{align-items:center;gap:1rem}.gm-select,.gm-select-levels{width:100%;display:flex;flex-direction:column}.gm-select-levels{max-width:480px;gap:.6rem;max-height:60vh;overflow-y:auto;padding:.25rem}.gm-select-level{background:#fff;border:1px solid var(--border);border-radius:14px;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.gm-select-level-label{font-weight:800;color:var(--navy);font-size:.9rem;white-space:nowrap}.gm-select-bai-row{display:flex;gap:.5rem}.gm-select-bai-btn{background:var(--light);border:1.5px solid var(--border);border-radius:12px;padding:.4rem .9rem;font-size:.82rem;font-weight:700;color:var(--navy);cursor:pointer;transition:all .15s}.gm-select-bai-btn:hover{border-color:var(--orange);background:#fff5eb;color:var(--orange)}.gm-chess-guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;width:100%}.gm-chess-guide-card{background:#fff;border:2px solid var(--border);border-radius:16px;padding:1.1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;box-shadow:0 2px 0 var(--border)}.gm-chess-guide-name{font-weight:800;color:var(--navy);font-size:1rem}.gm-chess-guide-en{font-weight:600;color:var(--gray);font-size:.8rem}.gm-chess-guide-desc{font-size:.82rem;color:var(--gray)}.gm-chess-guide-board{display:grid;grid-template-columns:repeat(5,30px);grid-template-rows:repeat(5,30px);border:2px solid var(--navy);border-radius:6px;overflow:hidden}.gm-chess-guide-sq{position:relative;display:flex;align-items:center;justify-content:center}.gm-chess-guide-sq--light{background:#fbf3e3}.gm-chess-guide-sq--dark{background:#d9a066}.gm-chess-guide-piece{width:24px;height:24px}.gm-chess-guide-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:rgba(31,36,48,.35)}.gm-chess-guide-dot--capture{background:none;border:2px solid #c0442a;width:16px;height:16px}.gm-chess-guide-legend{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:var(--gray)}.gm-chess-guide-dot--legend{position:static;display:inline-block}.gm-chess-board-wrap{display:flex;flex-direction:column;align-items:center}.gm-chess-board-row{display:flex;align-items:stretch}.gm-chess-ranks{display:grid;grid-template-rows:repeat(8,42px);width:18px}.gm-chess-files-row{display:flex}.gm-chess-corner{width:18px;flex-shrink:0}.gm-chess-files{display:grid;grid-template-columns:repeat(8,42px);height:18px}.gm-chess-axis-label{display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:var(--gray)}.gm-chess-board{display:grid;grid-template-columns:repeat(8,42px);grid-template-rows:repeat(8,42px);border:3px solid var(--navy);border-radius:8px;overflow:hidden;width:fit-content}.gm-chess-square{position:relative;padding:0;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer}.gm-chess-square--light{background:#fbf3e3}.gm-chess-square--dark{background:#d9a066}.gm-chess-square--selected{box-shadow:inset 0 0 0 3px var(--orange)}.gm-chess-square--lastmove{background-color:#f7e58c}.gm-chess-square--lastmove.gm-chess-square--dark{background-color:#c9a83a}.gm-chess-piece-img{width:80%;height:80%;pointer-events:none;user-select:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.gm-chess-dot{position:absolute;width:14px;height:14px;border-radius:50%;background:rgba(0,0,0,.28)}.gm-chess-captured-row{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;min-height:1.6rem;width:100%;max-width:360px}.gm-chess-captured-label{font-size:.75rem;font-weight:700;color:var(--gray);margin-right:.15rem}.gm-chess-captured-piece{width:20px;height:20px}.gm-tetris-help{font-size:.82rem;color:var(--gray);text-align:center;max-width:420px}.gm-tetris-layout{display:flex;gap:1rem;align-items:flex-start;justify-content:center}.gm-tetris-board{position:relative;display:grid;gap:1px;background:var(--navy);border:3px solid var(--navy);border-radius:8px;overflow:hidden}.gm-tetris-cell{background:#fbf3e3}.gm-tetris-cell--filled{border-radius:2px}.gm-tetris-cell--ghost{background:#fbf3e3;box-shadow:inset 0 0 0 2px;opacity:.6}.gm-tetris-cell--clearing{animation:gm-tetris-flash .15s step-start 3}@keyframes gm-tetris-flash{0%,to{background:#fff}50%{background:var(--orange)}}.gm-tetris-overlay{position:absolute;inset:0;background:rgba(253,248,242,.7)}.gm-tetris-side{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding-top:.25rem}.gm-tetris-side-label{font-size:.75rem;font-weight:700;color:var(--gray)}.gm-tetris-next{display:grid;gap:1px;background:var(--border);border:2px solid var(--border);border-radius:6px;padding:2px;width:fit-content}.gm-tetris-next-cell{background:#fbf3e3;border-radius:2px}.gm-tetris-controls{display:flex;gap:.5rem;justify-content:center}.gm-tetris-highscores{display:flex;flex-direction:column;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--border);border-radius:14px;padding:.75rem 1.25rem}.gm-tetris-highscore-list{display:flex;flex-direction:column;gap:.2rem;padding-left:1.2rem;margin:0;font-weight:700;color:var(--navy);font-size:.85rem}.gm-tetris-highscore-item--mine{color:var(--orange)}.gm-2048-board{display:grid;grid-template-columns:repeat(4,72px);grid-template-rows:repeat(4,72px);gap:8px;background:#bbada0;border-radius:10px;padding:8px;width:fit-content;margin:0 auto;position:relative}.gm-2048-cell{display:flex;align-items:center;justify-content:center;background:rgba(238,228,218,.4);border-radius:6px;font-size:1.7rem;font-weight:900;color:#5b5147}.gm-2048-cell--mid-text{font-size:1.3rem}.gm-2048-cell--small-text{font-size:1.05rem}.gm-2048-dpad{display:grid;grid-template-columns:repeat(3,68px);grid-template-rows:repeat(3,68px);gap:.5rem;justify-content:center}.gm-2048-dpad-up{grid-column:2;grid-row:1}.gm-2048-dpad-left{grid-column:1;grid-row:2}.gm-2048-dpad-right{grid-column:3;grid-row:2}.gm-2048-dpad-down{grid-column:2;grid-row:3}.gm-big-btn{width:68px;height:68px;background:#fff;border:2px solid var(--border);border-radius:14px;font-size:1.8rem;color:var(--navy);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;box-shadow:0 2px 0 var(--border)}.gm-big-btn:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}.gm-big-btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.gm-big-btn:disabled{opacity:.5;cursor:default}.gm-tower-stage{position:relative;margin:2rem auto}.gm-tower-tile{position:absolute;background:none;border:none;padding:0;cursor:pointer;touch-action:manipulation}.gm-tower-tile:disabled{cursor:default}.gm-tower-diamond{position:absolute;inset:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#fff5eb;filter:drop-shadow(0 3px 3px rgba(0,0,0,.15));transition:filter .15s}.gm-tower-tile:hover:not(:disabled) .gm-tower-diamond{filter:drop-shadow(0 3px 3px rgba(255,140,66,.45))}.gm-tower-tile--start .gm-tower-diamond{background:#d7f2df}.gm-tower-tile--goal .gm-tower-diamond{background:#ffe9d6}.gm-tower-tile--selected .gm-tower-diamond{filter:drop-shadow(0 0 5px var(--orange)) drop-shadow(0 0 5px var(--orange)) drop-shadow(0 3px 3px rgba(0,0,0,.15))}.gm-tower-arm{position:absolute;top:50%;left:50%;height:10px;background:var(--teal);border-radius:6px;transform-origin:left center}.gm-tower-flag{position:absolute;top:-8px;left:50%;transform:translateX(-50%);font-size:1.1rem}.gm-tower-character{position:absolute;width:32px;height:32px;transition:left .35s ease,top .35s ease;z-index:5;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.gm-watersort-rack{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;max-width:480px;margin:.5rem auto}.gm-watersort-tube{width:56px;background:rgba(255,255,255,.5);border:3px solid var(--border);border-top:none;border-radius:0 0 16px 16px;display:flex;flex-direction:column-reverse;align-items:stretch;padding:4px;gap:2px;cursor:pointer;box-sizing:border-box;box-shadow:inset 0 3px 6px rgba(0,0,0,.12);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.gm-watersort-tube--selected{transform:translateY(-14px);border-color:var(--orange);box-shadow:0 8px 14px rgba(0,0,0,.25),inset 0 3px 6px rgba(0,0,0,.12)}.gm-watersort-layer{display:block;width:100%;height:38px;border-radius:6px;flex-shrink:0}.gm-lyne-board{position:relative;margin:1rem auto;background:#fff;border:3px solid var(--border);border-radius:8px;touch-action:none;user-select:none;cursor:pointer}.gm-lyne-cell{position:absolute;border:1px solid var(--border);box-sizing:border-box}.gm-lyne-fill,.gm-lyne-node{position:absolute;box-sizing:border-box;pointer-events:none}.gm-lyne-node{border:6px solid;border-radius:50%;background:#fff}.gm-wordrules-board{position:relative;margin:1rem auto;background:#f0ead6;border:3px solid var(--border);border-radius:8px}.gm-wordrules-anchor{position:absolute;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.7rem;color:#fff;background:#5b5147;border-radius:6px;text-align:center;padding:2px}.gm-wordrules-wall{position:absolute;box-sizing:border-box;background:#6b7280;border-radius:4px;transition:opacity .2s ease,background .2s ease}.gm-wordrules-wall--passable{opacity:.4;background:repeating-linear-gradient(45deg,#6b7280,#6b7280 6px,transparent 0,transparent 12px)}.gm-wordrules-goal{font-size:1.6rem}.gm-wordrules-goal,.gm-wordrules-prop{position:absolute;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.gm-wordrules-prop{font-weight:900;font-size:.65rem;color:#fff;border-radius:6px;text-align:center;padding:2px;box-shadow:0 2px 0 rgba(0,0,0,.25)}.gm-wordrules-prop--chan{background:#e63946}.gm-wordrules-prop--xuyen{background:#2a9d8f}.gm-wordrules-player{position:absolute;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:1.8rem;transition:left .12s ease,top .12s ease;z-index:5}