@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@700;800;900&family=DM+Sans:wght@400;500;600&family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--cream: #F5EFE6;--coral: #F4736A;--coral-light: #F9A49F;--coral-dark: #D95E55;--yellow: #F5B82E;--yellow-light: #FADA80;--teal: #3D8C7A;--teal-light: #6BBAA8;--purple: #9B8FD4;--purple-light: #C4BCE8;--near-black: #3D2F2A;--mid: #7A6E69;--soft: #E8E0D5;--card-bg: #FFFFFF;--font-display: "Fraunces", serif;--font-body: "DM Sans", sans-serif}body{font-family:var(--font-body);background:var(--cream);color:var(--near-black);min-height:100vh;overflow-x:hidden;max-width:100vw}.landing{min-height:100vh;background:linear-gradient(145deg,#fdf6ec,#f8e8d8 40%,#fdddd5);display:flex;flex-direction:column}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:20px 48px;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.logo-wrap{display:flex;align-items:center;gap:10px}.logo-icon{width:40px;height:40px;background:transparent;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}.logo-text{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--near-black)}.nav-actions{display:flex;gap:12px;align-items:center}.btn-ghost{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--near-black);padding:10px 20px;border-radius:999px;transition:background .2s}.btn-ghost:hover{background:#0000000f}.btn-dark{background:var(--near-black);color:#fff;border:none;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:600;padding:12px 24px;border-radius:999px;transition:transform .15s,box-shadow .15s}.btn-dark:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0000002e}.landing-hero{flex:1;display:flex;align-items:center;justify-content:space-between;gap:48px;max-width:1200px;margin:0 auto;width:100%;padding:40px 48px 80px;box-sizing:border-box}.hero-left{flex:1;max-width:520px}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--yellow);color:var(--near-black);padding:8px 16px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.08em;margin-bottom:28px}.hero-h1{font-family:var(--font-display);font-size:clamp(44px,5vw,68px);font-weight:900;line-height:1.05;color:var(--near-black);margin-bottom:24px}.hero-h1 span{color:var(--coral)}.hero-sub{font-size:17px;line-height:1.65;color:var(--mid);margin-bottom:40px;max-width:440px}.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px}.btn-coral{background:var(--coral);color:#fff;border:none;cursor:pointer;font-family:var(--font-body);font-size:16px;font-weight:600;padding:16px 32px;border-radius:999px;transition:transform .15s,box-shadow .15s;display:flex;align-items:center;gap:8px}.btn-coral:hover{transform:translateY(-2px);box-shadow:0 8px 24px #f4736a59}.btn-outline{background:#ffffffb3;color:var(--near-black);border:2px solid rgba(0,0,0,.12);cursor:pointer;font-family:var(--font-body);font-size:16px;font-weight:600;padding:16px 32px;border-radius:999px;transition:background .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-outline:hover{background:#fffffff2}.hero-trust{display:flex;gap:24px;flex-wrap:wrap}.trust-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--mid);font-weight:500}.trust-check{color:var(--teal);font-weight:700}.hero-right{position:relative;flex-shrink:0}.hero-card{width:420px;height:380px;background:#fff;border-radius:28px;box-shadow:0 20px 60px #0000001f;overflow:hidden;position:relative}.hero-card img{width:100%;height:100%;object-fit:cover;border-radius:28px}.paywall-icon{width:64px;height:64px;background:var(--coral-light);border-radius:999px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;color:var(--coral-dark)}.hero-card-inner{width:100%;height:100%;background:linear-gradient(135deg,#fde8d8,#fdf0e8);display:flex;align-items:center;justify-content:center;color:var(--coral)}.floating-badge{position:absolute;background:#fff;border-radius:999px;padding:10px 18px;box-shadow:0 8px 24px #0000002e;font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;z-index:10;white-space:nowrap}.fb-streak{top:-16px;left:-20px;color:var(--coral)}.sig-hero-wrap{width:100%;height:100%;position:relative;overflow:hidden;border-radius:28px}.teacher-shell{min-height:100vh;background:var(--cream);display:flex;flex-direction:column}.teacher-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--near-black);color:#fff;position:sticky;top:0;z-index:100}.teacher-logo{font-family:var(--font-display);font-size:20px;font-weight:800;color:#fff}.teacher-logo span{color:var(--yellow)}.teacher-nav{display:flex;gap:4px;background:#ffffff1a;border-radius:999px;padding:4px}.teacher-nav-btn{padding:8px 18px;border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:600;border-radius:999px;color:#ffffffa6;transition:background .2s,color .2s}.teacher-nav-btn.active{background:#fff;color:var(--near-black)}.teacher-user{display:flex;align-items:center;gap:10px}.teacher-avatar{width:36px;height:36px;border-radius:50%;background:var(--coral);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}.teacher-body{flex:1;padding:32px;max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}.teacher-section-title{font-family:var(--font-display);font-size:26px;font-weight:900;margin-bottom:20px;color:var(--near-black)}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:24px}.class-card{background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 20px #00000012;cursor:pointer;border:2px solid transparent;transition:border-color .2s,transform .2s}.class-card:hover{border-color:var(--coral);transform:translateY(-2px)}.class-card.selected{border-color:var(--coral)}.class-card-name{font-family:var(--font-display);font-size:20px;font-weight:800;margin-bottom:8px}.class-code-row{display:flex;align-items:center;gap:8px}.class-code{background:var(--yellow);color:var(--near-black);padding:4px 12px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.1em}.class-student-count{font-size:13px;color:var(--mid);font-weight:500}.btn-create{background:var(--coral);color:#fff;border:none;padding:14px 28px;border-radius:999px;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:700;display:inline-flex;align-items:center;gap:8px;transition:transform .15s,box-shadow .15s}.btn-create:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f4736a4d}.create-class-form{background:#fff;border-radius:20px;padding:28px;box-shadow:0 4px 20px #00000014;margin-bottom:24px;display:flex;gap:12px;align-items:flex-end}.create-class-input{flex:1;padding:14px 18px;border:2px solid var(--soft);border-radius:14px;font-family:var(--font-body);font-size:16px;outline:none;transition:border-color .2s}.create-class-input:focus{border-color:var(--coral)}.student-table{width:100%;border-collapse:collapse}.student-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--mid);padding:0 16px 12px;border-bottom:2px solid var(--soft)}.student-table td{padding:14px 16px;border-bottom:1px solid var(--soft);font-size:14px}.student-table tr:last-child td{border-bottom:none}.progress-bar-wrap{background:var(--soft);border-radius:999px;height:8px;width:120px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--teal);border-radius:999px;transition:width .4s}.assign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.assign-card{background:#fff;border-radius:16px;padding:18px 20px;box-shadow:0 2px 12px #0000000f;display:flex;align-items:center;justify-content:space-between}.assign-label{font-size:14px;font-weight:700}.assign-date{font-size:11px;color:var(--mid);margin-top:2px}.leaderboard-row{background:#fff;border-radius:16px;padding:16px 20px;margin-bottom:10px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 12px #0000000f}.lb-rank{font-family:var(--font-display);font-size:22px;font-weight:900;width:36px;text-align:center}.lb-rank.gold{color:var(--yellow)}.lb-rank.silver{color:#a8a9ad}.lb-rank.bronze{color:#cd7f32}.lb-name{flex:1;font-size:15px;font-weight:600}.lb-xp{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--teal)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:300;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:24px}.modal-card{background:#fff;border-radius:24px;padding:36px;max-width:420px;width:100%;box-shadow:0 20px 60px #00000026}.modal-title{font-family:var(--font-display);font-size:24px;font-weight:800;margin-bottom:18px}.modal-input{width:100%;padding:14px 16px;border:2px solid var(--soft);border-radius:14px;font-family:var(--font-body);font-size:16px;margin-bottom:14px;outline:none;box-sizing:border-box;transition:border-color .2s}.modal-input:focus{border-color:var(--coral)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.teacher-empty{text-align:center;padding:48px;color:var(--mid);font-size:15px}.teacher-empty-icon{font-size:48px;margin-bottom:12px}.class-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.back-btn{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--mid);display:flex;align-items:center;gap:4px}.back-btn:hover{color:var(--near-black)}.teacher-toggle-row{display:flex;align-items:center;gap:10px;margin:16px 0;cursor:pointer}.teacher-toggle-check{width:20px;height:20px;border-radius:6px;border:2px solid var(--soft);background:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;flex-shrink:0}.teacher-toggle-check.checked{background:var(--teal);border-color:var(--teal)}.teacher-toggle-label{font-size:14px;font-weight:600;color:var(--near-black)}.teacher-toggle-sub{font-size:12px;color:var(--mid)}.join-class-btn{background:none;border:2px solid var(--soft);cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--mid);padding:8px 16px;border-radius:999px;transition:border-color .2s,color .2s;margin-top:8px}.join-class-btn:hover{border-color:var(--teal);color:var(--teal)}.announcement-card{background:#fff;border-radius:16px;padding:18px 20px;margin-bottom:10px;box-shadow:0 2px 12px #0000000f;border-left:4px solid var(--coral)}.announcement-title{font-size:15px;font-weight:700;color:var(--near-black);margin-bottom:4px}.announcement-body{font-size:14px;color:var(--mid);line-height:1.55;margin-bottom:4px}.announcement-meta{font-size:11px;color:var(--mid);font-weight:600;margin-top:6px}.sig-hero-video{width:100%;height:100%;object-fit:cover;display:block;border-radius:28px}.sig-translate-box{display:flex;flex-direction:column;align-items:center;margin:20px 0 4px;gap:8px}.sig-translate-video,.sig-translate-img{width:120px;height:120px;object-fit:contain;border-radius:50%;background:#ffffff26}.sig-label{font-size:12px;font-weight:700;letter-spacing:.08em;color:#ffffffb3;text-align:center}.sig-game-reaction{width:100px;height:100px;object-fit:contain;margin:12px 0}.sig-paywall-video{width:110px;height:110px;object-fit:contain;margin:0 auto 16px;display:block;border-radius:50%}.fb-level{bottom:-16px;right:-20px;background:var(--teal);color:#fff}.auth-page{min-height:100vh;background:linear-gradient(145deg,#fdf6ec,#f8e8d8 40%,#fdddd5);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:36px}.auth-card{background:#fff;border-radius:28px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px #0000001a}.auth-title{font-family:var(--font-display);font-size:28px;font-weight:800;margin-bottom:6px}.auth-sub{color:var(--mid);font-size:14px;margin-bottom:28px}.auth-toggle{display:flex;background:var(--soft);border-radius:12px;padding:4px;margin-bottom:28px}.auth-toggle-btn{flex:1;padding:10px;border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:600;border-radius:10px;transition:background .2s,color .2s;color:var(--mid)}.auth-toggle-btn.active{background:#fff;color:var(--near-black);box-shadow:0 2px 8px #00000014}.auth-google{width:100%;padding:14px;border:2px solid var(--soft);background:#fff;border-radius:14px;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px;transition:border-color .2s,box-shadow .2s}.auth-google:hover{border-color:var(--coral);box-shadow:0 4px 16px #f4736a26}.auth-divider{display:flex;align-items:center;gap:12px;margin-bottom:20px;color:var(--mid);font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--soft)}.auth-input{width:100%;padding:14px 16px;border:2px solid var(--soft);border-radius:14px;font-family:var(--font-body);font-size:16px;margin-bottom:12px;outline:none;transition:border-color .2s;background:#fafafa}.auth-input:focus{border-color:var(--coral);background:#fff}.auth-submit{width:100%;padding:16px;background:var(--coral);color:#fff;border:none;border-radius:14px;cursor:pointer;font-family:var(--font-body);font-size:16px;font-weight:700;margin-top:8px;transition:transform .15s,box-shadow .15s}.auth-submit:hover{transform:translateY(-1px);box-shadow:0 8px 24px #f4736a59}.app-shell{min-height:100vh;background:var(--cream);background-image:radial-gradient(circle at 8% 12%,rgba(244,115,106,.07) 0%,transparent 38%),radial-gradient(circle at 92% 8%,rgba(245,184,46,.06) 0%,transparent 32%),radial-gradient(circle at 85% 88%,rgba(61,140,122,.06) 0%,transparent 36%),radial-gradient(circle at 15% 90%,rgba(155,143,212,.06) 0%,transparent 30%),radial-gradient(circle,rgba(61,47,42,.045) 1px,transparent 1px);background-size:auto,auto,auto,auto,26px 26px;display:flex;flex-direction:column;max-width:100vw}.app-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;gap:12px;background:#fdfaf6f2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(232,224,213,.7);box-shadow:0 2px 14px #3d2f2a0d}.app-nav-pills{display:flex;gap:4px;background:#ffffffbf;border-radius:999px;padding:4px;border:1.5px solid rgba(232,224,213,.9);box-shadow:0 1px 6px #3d2f2a0f inset}.nav-pill{padding:8px 16px;border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:600;border-radius:999px;transition:background .2s,color .2s;color:var(--mid);display:flex;align-items:center;gap:5px}.nav-pill.active{background:var(--near-black);color:#fff}.app-user{width:36px;height:36px;border-radius:999px;background:var(--coral);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;cursor:pointer;border:3px solid var(--coral-light);flex-shrink:0}@media (max-width: 900px){.app-topbar{padding:10px 16px;gap:8px}.nav-pill{padding:7px 10px;font-size:12px}.logo-text{display:none}.app-topbar>span[style]{display:none}}.tab-content{padding:28px 32px 72px;max-width:1100px;margin:0 auto;width:100%}.greeting-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.greeting-text h2{font-family:var(--font-display);font-size:28px;font-weight:800}.greeting-text p{color:var(--mid);font-size:14px;margin-top:2px}.quota-pill{background:var(--near-black);color:#fff;padding:10px 20px;border-radius:999px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.quota-num{color:var(--yellow);font-weight:800;font-size:16px}.translate-input-card{background:var(--coral);border-radius:24px;padding:28px;margin-bottom:20px;position:relative;overflow:hidden}.translate-input-card:before{content:"";position:absolute;top:-60px;right:-60px;width:200px;height:200px;background:#ffffff1a;border-radius:999px}.input-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:#ffffffb3;margin-bottom:12px;display:flex;align-items:center;gap:6px}.input-dot{width:6px;height:6px;background:#fff;border-radius:999px}.translate-textarea{width:100%;background:none;border:none;outline:none;font-family:var(--font-display);font-size:26px;font-weight:700;color:#fff;resize:none;min-height:80px;caret-color:#fff}.translate-textarea::placeholder{color:#ffffff80}.example-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.example-chip{background:#00000026;color:#ffffffe6;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;border:none;transition:background .2s;font-family:var(--font-body)}.example-chip:hover{background:#00000040}.translate-btn{margin-top:20px;background:var(--near-black);color:#fff;border:none;padding:14px 32px;border-radius:999px;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;transition:transform .15s,box-shadow .15s}.translate-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0003}.translate-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.gloss-card{background:#fff;border-radius:20px;padding:20px 24px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 20px #0000000f}.gloss-left{display:flex;flex-direction:column;gap:10px}.gloss-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--mid)}.gloss-chips{display:flex;gap:8px;flex-wrap:wrap}.gloss-chip{background:var(--soft);color:var(--near-black);padding:8px 16px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;border:none;font-family:var(--font-body);transition:background .2s}.gloss-chip:hover{background:var(--coral);color:#fff}.sign-count{background:var(--teal);color:#fff;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:700;flex-shrink:0}.signs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.sign-card{border-radius:20px;padding:20px;position:relative;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s}.sign-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px #0000001f}.sign-card.c0{background:var(--coral)}.sign-card.c1{background:var(--yellow)}.sign-card.c2{background:var(--teal);color:#fff}.sign-card.c3{background:var(--purple-light)}.sign-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.sign-num{font-size:11px;font-weight:700;letter-spacing:.08em;opacity:.7}.loop-btn{background:#00000026;color:inherit;border:none;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:4px;font-family:var(--font-body)}.sign-word{font-family:var(--font-display);font-size:22px;font-weight:800;margin-bottom:14px}.sign-video-placeholder{width:100%;aspect-ratio:16/10;background:#0003;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:32px}.grammar-link{margin-top:20px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer;color:var(--mid);background:none;border:none;font-family:var(--font-body)}.grammar-link:hover{color:var(--near-black)}.learn-hero{background:linear-gradient(135deg,var(--teal) 0%,#2d6e5c 100%);border-radius:24px;padding:28px 32px;margin-bottom:20px;position:relative;overflow:hidden}.learn-hero:before{content:"";position:absolute;right:-30px;top:-30px;width:160px;height:160px;background:#ffffff14;border-radius:50%}.learn-hero:after{content:"";position:absolute;right:40px;bottom:-50px;width:120px;height:120px;background:#ffffff0d;border-radius:50%}.learn-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.learn-hero-left h2{font-family:var(--font-display);font-size:28px;font-weight:900;color:#fff;margin-bottom:4px}.learn-hero-left p{color:#ffffffbf;font-size:13px}.learn-xp-badge{background:#ffffff26;border:1.5px solid rgba(255,255,255,.25);border-radius:14px;padding:10px 16px;text-align:center;flex-shrink:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.learn-xp-num{font-family:var(--font-display);font-size:26px;font-weight:900;color:var(--yellow);line-height:1}.learn-xp-label{font-size:10px;font-weight:700;letter-spacing:.08em;color:#fff9;margin-top:2px}.learn-level-bar{margin-top:16px}.learn-level-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.learn-level-name{font-size:12px;font-weight:700;color:#fffc}.learn-level-next{font-size:11px;color:#ffffff80}.learn-level-track{height:8px;background:#ffffff26;border-radius:999px;overflow:hidden}.learn-level-fill{height:100%;background:var(--yellow);border-radius:999px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.unit-path{display:flex;flex-direction:column;gap:20px}.unit-block{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 2px 16px #0000000f}.unit-block.locked{opacity:.55}.unit-header{padding:18px 22px;display:flex;align-items:center;gap:14px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.unit-header:hover{background:var(--soft)}.unit-header.locked-header{cursor:default}.unit-header.locked-header:hover{background:transparent}.unit-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}.unit-icon.ui0{background:#fde8d8}.unit-icon.ui1{background:#fdf3d0}.unit-icon.ui2{background:#d8f0ea}.unit-icon.ui3{background:#e8e4f8}.unit-icon.ui4{background:#ffe0df}.unit-title-wrap{flex:1}.unit-title{font-family:var(--font-display);font-size:17px;font-weight:800;color:var(--near-black)}.unit-subtitle{font-size:12px;color:var(--mid);margin-top:2px}.unit-progress-text{font-size:12px;font-weight:700;color:var(--mid);flex-shrink:0}.unit-lock-icon{font-size:18px;opacity:.5;flex-shrink:0}.unit-progress-bar-wrap{height:4px;background:var(--soft);margin:0 22px;border-radius:999px;overflow:hidden}.unit-progress-bar-fill{height:100%;border-radius:999px;transition:width .4s}.ub0 .unit-progress-bar-fill{background:var(--coral)}.ub1 .unit-progress-bar-fill{background:var(--yellow)}.ub2 .unit-progress-bar-fill{background:var(--teal)}.ub3 .unit-progress-bar-fill{background:var(--purple)}.ub4 .unit-progress-bar-fill{background:var(--coral-light)}.lesson-list{padding:8px 16px 16px;display:flex;flex-direction:column;gap:8px}.lesson-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;cursor:pointer;transition:background .15s;position:relative}.lesson-row:hover{background:var(--soft)}.lesson-row.locked-lesson{opacity:.4;cursor:default;pointer-events:none}.lesson-row.lesson-row-done{cursor:default}.lesson-row.lesson-row-done:hover{background:#fff}.lesson-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:4px}.lesson-redo-btn{width:32px;height:32px;border-radius:10px;border:2px solid var(--soft);background:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--mid);transition:all .15s;flex-shrink:0;touch-action:manipulation}.lesson-redo-btn:hover{border-color:var(--coral);color:var(--coral);background:#fff8f7}.lesson-quiz-btn{display:flex;align-items:center;gap:5px;padding:7px 14px;border-radius:999px;background:var(--teal);color:#fff;border:none;font-family:var(--font-body);font-size:13px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;white-space:nowrap;flex-shrink:0;touch-action:manipulation}.lesson-quiz-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3d8c7a4d}.lesson-dot{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;border:3px solid transparent}.lesson-dot.done{background:var(--teal);color:#fff;border-color:var(--teal)}.lesson-dot.perfect{background:var(--yellow);color:var(--near-black);border-color:var(--yellow)}.lesson-dot.available{background:#fff;border-color:var(--soft);color:var(--mid);font-size:13px;font-weight:700}.lesson-dot.locked-dot{background:var(--soft);border-color:transparent}.lesson-info{flex:1}.lesson-name{font-weight:700;font-size:14px;color:var(--near-black)}.lesson-desc{font-size:12px;color:var(--mid);margin-top:2px}.lesson-xp-badge{font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--mid);flex-shrink:0}.lesson-xp-badge.earned{background:var(--yellow);color:var(--near-black)}.unit-quiz-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;cursor:pointer;transition:background .15s;margin-top:4px;border:1.5px dashed var(--teal);background:linear-gradient(135deg,#3d8c7a12,#f5b82e12)}.unit-quiz-row:hover{background:linear-gradient(135deg,#3d8c7a24,#f5b82e1a)}.unit-quiz-row.locked-uq{opacity:.4;cursor:default;pointer-events:none}.unit-quiz-row.passed-uq{border-style:solid;border-color:var(--yellow);cursor:default}.uq-dot{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--teal);color:#fff;border:3px solid var(--teal)}.uq-dot.locked-dot{background:var(--soft);border-color:transparent;color:var(--mid)}.uq-dot.passed-dot{background:var(--yellow);color:var(--near-black);border-color:var(--yellow)}.uq-label{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--teal)}.uq-label.passed{color:var(--teal)}.lesson-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cream);display:flex;flex-direction:column;z-index:150;overflow-y:auto}.lesson-topbar{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#f5efe6f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10;border-bottom:1.5px solid var(--soft)}.lesson-back{background:none;border:none;cursor:pointer;width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--near-black);transition:background .15s;flex-shrink:0}.lesson-back:hover{background:var(--soft)}.lesson-progress-track{flex:1;height:10px;background:var(--soft);border-radius:999px;overflow:hidden}.lesson-progress-fill{height:100%;background:var(--teal);border-radius:999px;transition:width .4s cubic-bezier(.34,1.56,.64,1)}.lesson-card-num{font-size:13px;font-weight:700;color:var(--mid);flex-shrink:0}.lesson-body{flex:1;padding:28px 24px 40px;display:flex;flex-direction:column;align-items:center;max-width:600px;margin:0 auto;width:100%;box-sizing:border-box;align-self:stretch}.lesson-question{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--near-black);text-align:center;margin-bottom:24px;line-height:1.3;width:100%}.lesson-sign-img{width:min(520px,95vw);aspect-ratio:4 / 3;border-radius:24px;background:#fff;padding:10px;box-shadow:0 8px 32px #0000001a;margin-bottom:28px;overflow:hidden;box-sizing:border-box}.lesson-sign-img img{width:100%;height:100%;object-fit:contain}.lesson-sign-img video{border-radius:16px}.lesson-letter-display{width:120px;height:120px;border-radius:20px;background:var(--coral);color:#fff;font-family:var(--font-display);font-size:72px;font-weight:900;display:flex;align-items:center;justify-content:center;margin-bottom:28px;box-shadow:0 8px 28px #f4736a4d}.lesson-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:480px}.lesson-choice{padding:16px 12px;border-radius:16px;border:3px solid var(--soft);background:#fff;cursor:pointer;font-family:var(--font-display);font-size:20px;font-weight:800;text-align:center;transition:all .15s;color:var(--near-black)}.lesson-choice{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.lesson-choice:hover:not(:disabled){border-color:var(--coral);transform:translateY(-2px);background:#fff8f7}.lesson-choice.correct{border-color:var(--teal);background:#e8f7f4;color:var(--teal);transform:scale(1.04)}.lesson-choice.wrong{border-color:var(--coral);background:#fde8e6;color:var(--coral)}.lesson-choice.reveal{border-color:var(--teal);background:#e8f7f4;color:var(--teal)}.lesson-choice:disabled{cursor:default}.lesson-img-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:480px}.lesson-img-choice{border-radius:16px;border:3px solid var(--soft);background:#fff;cursor:pointer;padding:12px;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:6px}.lesson-img-choice{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.lesson-img-choice:hover:not(:disabled){border-color:var(--coral);transform:translateY(-2px)}.lesson-img-choice.correct{border-color:var(--teal);background:#e8f7f4}.lesson-img-choice.wrong{border-color:var(--coral);background:#fde8e6}.lesson-img-choice.reveal{border-color:var(--teal);background:#e8f7f4}.lesson-img-choice-media{width:100%;aspect-ratio:4 / 3;border-radius:12px;overflow:hidden}.lesson-img-choice-media img,.lesson-img-choice-media video{width:100%;height:100%;object-fit:cover;display:block}.lesson-img-label{font-family:var(--font-display);font-size:18px;font-weight:800}.lesson-feedback{margin-top:20px;padding:14px 20px;border-radius:14px;font-weight:700;font-size:15px;text-align:center;width:100%;max-width:480px}.lesson-feedback.fb-correct{background:#e8f7f4;color:var(--teal)}.lesson-feedback.fb-wrong{background:#fde8e6;color:var(--coral-dark)}.lesson-next-btn{margin-top:16px;padding:16px 40px;border-radius:999px;background:var(--near-black);color:#fff;border:none;font-family:var(--font-body);font-size:16px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;width:100%;max-width:480px}.lesson-next-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000002e}.lesson-hearts{display:flex;gap:6px;align-items:center;flex-shrink:0}.heart-icon{font-size:22px;transition:transform .2s;line-height:1}.heart-icon.lost{filter:grayscale(1);opacity:.35;transform:scale(.85)}.heart-icon.pop{animation:heartPop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.5)}to{transform:scale(1)}}.combo-badge{display:inline-flex;align-items:center;gap:6px;background:var(--yellow);color:var(--near-black);font-family:var(--font-display);font-size:14px;font-weight:900;padding:5px 12px;border-radius:999px;box-shadow:0 3px 12px #f5b82e80;animation:comboPop .25s cubic-bezier(.34,1.56,.64,1);margin-bottom:10px;align-self:center}.combo-badge.x3{background:var(--coral);color:#fff;box-shadow:0 3px 12px #f4736a80}@keyframes comboPop{0%{transform:scale(.7) translateY(4px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.answer-flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:160;opacity:0}.answer-flash.flash-correct{animation:flashGreen .45s ease forwards}.answer-flash.flash-wrong{animation:flashRed .45s ease forwards}@keyframes flashGreen{0%{opacity:0;background:#3d8c7a2e}20%{opacity:1}to{opacity:0}}@keyframes flashRed{0%{opacity:0;background:#f4736a38}20%{opacity:1}to{opacity:0}}.lesson-body.shake-wrong{animation:cardShake .4s ease}@keyframes cardShake{0%,to{transform:translate(0)}15%{transform:translate(-10px)}40%{transform:translate(10px)}65%{transform:translate(-7px)}85%{transform:translate(5px)}}.lesson-choice.correct,.lesson-img-choice.correct{animation:correctBounce .35s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes correctBounce{0%{transform:scale(1)}50%{transform:scale(1.07)}to{transform:scale(1.04)}}.no-hearts-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px}.no-hearts-emoji{font-size:72px;margin-bottom:16px;animation:heartBreak .5s ease}@keyframes heartBreak{0%{transform:scale(1.3)}to{transform:scale(1)}}.no-hearts-title{font-family:var(--font-display);font-size:34px;font-weight:900;margin-bottom:8px;color:var(--coral)}.no-hearts-sub{font-size:15px;color:var(--mid);margin-bottom:32px;line-height:1.6;max-width:320px}.no-hearts-btn{padding:18px 48px;border-radius:999px;background:var(--coral);color:#fff;border:none;font-family:var(--font-body);font-size:17px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 6px 24px #f4736a4d;margin-bottom:12px;width:100%;max-width:320px}.no-hearts-btn:hover{transform:translateY(-2px);box-shadow:0 10px 32px #f4736a66}.no-hearts-back{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:14px;color:var(--mid)}.intro-card{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:32px;flex-wrap:wrap;width:100%}.intro-sign-box{width:min(300px,82vw);min-height:200px;border-radius:24px;background:#fff;padding:14px;box-shadow:0 8px 32px #0000001a;display:flex;align-items:center;justify-content:center;flex-shrink:0}.intro-sign-box--video{width:min(500px,94vw);aspect-ratio:4 / 3;min-height:0;padding:10px;box-sizing:border-box}.intro-equals{font-family:var(--font-display);font-size:48px;font-weight:900;color:var(--soft);flex-shrink:0}.intro-letter-box{width:140px;height:140px;border-radius:24px;background:var(--coral);color:#fff;font-family:var(--font-display);font-size:96px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px #f4736a4d;flex-shrink:0}.intro-context{width:100%;max-width:440px;margin:4px auto;background:#fff;border:2px solid var(--soft);border-radius:16px;padding:14px 18px;text-align:center;box-sizing:border-box}.intro-context-label{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--purple);text-transform:uppercase;margin-bottom:6px}.intro-context-gloss{font-family:var(--font-display);font-weight:800;font-size:17px;color:var(--near-black);line-height:1.35;letter-spacing:.01em}.intro-context-english{font-size:13px;color:var(--mid);margin-top:4px;font-style:italic}.intro-context-tip{font-family:var(--font-body);font-weight:600;font-size:15px;color:var(--near-black);line-height:1.45}.create-lesson-card{background:linear-gradient(135deg,var(--purple) 0%,#7d6fc4 100%);border-radius:20px;padding:18px;margin-bottom:16px;color:#fff;box-shadow:0 6px 22px #9b8fd452}.create-lesson-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.create-lesson-emoji{font-size:26px;flex-shrink:0;line-height:1}.create-lesson-title{font-family:var(--font-display);font-weight:800;font-size:17px}.create-lesson-sub{font-size:12.5px;opacity:.85;margin-top:3px;line-height:1.35}.create-lesson-input{width:100%;box-sizing:border-box;border:none;border-radius:12px;padding:13px 15px;font-size:15px;font-family:var(--font-body);color:var(--near-black);background:#fff;outline:none}.create-lesson-count{font-size:11px;opacity:.8;margin:6px 2px 12px;font-weight:600}.create-lesson-count.over{color:#ffd3cd;opacity:1}.create-lesson-btn{width:100%;border:none;border-radius:12px;padding:14px;background:var(--near-black);color:#fff;font-family:var(--font-body);font-size:15px;font-weight:700;cursor:pointer;transition:transform .15s,opacity .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.create-lesson-btn:hover:not(:disabled){transform:translateY(-2px)}.create-lesson-btn:disabled{opacity:.5;cursor:default}.custom-sentence{font-family:var(--font-display);font-weight:900;font-size:24px;color:var(--near-black);text-align:center;line-height:1.3;margin:0 auto 18px;max-width:460px}.custom-gloss-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:480px;margin:0 auto 18px}.custom-gloss-chip{background:#fff;border:2px solid var(--soft);border-radius:999px;padding:6px 14px;font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--near-black)}.custom-gloss-chip.marker{background:#f5f0ff;border-color:var(--purple);color:var(--purple)}.custom-hint{font-size:14px;color:var(--mid);text-align:center;line-height:1.5;max-width:420px;margin:0 auto 8px}.custom-word-label{font-family:var(--font-display);font-weight:900;font-size:30px;color:var(--teal);text-align:center;letter-spacing:.5px;margin:14px 0 6px;word-break:break-word}.custom-replay-hint{background:#fff8e8;border:2px solid var(--yellow);border-radius:14px;padding:12px 16px;font-size:14px;font-weight:600;color:var(--near-black);text-align:center;line-height:1.45;max-width:440px;margin:14px auto 0}.lesson-hearts-nofail{font-size:12px;font-weight:800;color:var(--teal);letter-spacing:.04em;flex-shrink:0;white-space:nowrap}.review-banner{width:100%;display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,var(--purple) 0%,#7d6fc4 100%);border:none;border-radius:18px;padding:14px 18px;margin-bottom:16px;cursor:pointer;text-align:left;color:#fff;box-shadow:0 4px 18px #9b8fd459;transition:transform .15s,box-shadow .15s;font-family:var(--font-body)}.review-banner:hover{transform:translateY(-2px);box-shadow:0 8px 24px #9b8fd473}.review-banner-icon{font-size:28px;flex-shrink:0}.review-banner-text{flex:1}.review-banner-title{font-family:var(--font-display);font-weight:800;font-size:16px}.review-banner-sub{font-size:12px;opacity:.85;margin-top:2px}.review-banner-cta{font-weight:800;font-size:14px;flex-shrink:0}.grammar-tip-card{width:100%;max-width:480px;margin:0 auto 12px;background:#fff;border:2px solid var(--soft);border-radius:22px;padding:24px 22px;box-sizing:border-box;box-shadow:0 8px 32px #00000014}.grammar-tip-badge{display:inline-block;background:var(--purple);color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;padding:5px 12px;border-radius:999px;margin-bottom:14px}.grammar-tip-title{font-family:var(--font-display);font-weight:900;font-size:24px;color:var(--near-black);margin-bottom:10px;line-height:1.2}.grammar-tip-explain{font-size:15px;line-height:1.55;color:var(--dark);margin:0 0 16px}.grammar-tip-example{background:#f5f0ff;border-radius:14px;padding:14px 16px;margin-bottom:12px}.grammar-tip-example-label{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--purple);margin-bottom:6px}.grammar-tip-example-text{font-family:var(--font-display);font-weight:800;font-size:17px;color:var(--near-black);line-height:1.35}.grammar-tip-note{font-size:13px;color:var(--mid);font-style:italic;line-height:1.45;border-left:3px solid var(--yellow);padding-left:12px}.watch-phrase-strip{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:12px;width:100%;max-width:480px}.watch-phrase-clip{position:relative;width:120px;border-radius:14px;overflow:hidden;background:#111;box-shadow:0 4px 16px #0000001f}.watch-phrase-clip-media{width:100%;aspect-ratio:4 / 3}.watch-phrase-clip-media video,.watch-phrase-clip-media img{width:100%;height:100%;object-fit:cover;display:block}.watch-phrase-clip-num{position:absolute;top:6px;left:6px;width:20px;height:20px;background:#0009;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800}.watch-phrase-hint{font-size:13px;color:var(--mid);text-align:center;margin-bottom:16px}.watch-phrase-choices{max-width:480px}.watch-phrase-choice{font-size:15px!important;text-align:center}@media (max-width: 600px){.watch-phrase-clip{width:100px}}.sentence-fill-blank{background:#f5f0ff!important;border:3px dashed var(--purple);display:flex;align-items:center;justify-content:center}.sentence-fill-blank .watch-phrase-clip-media{display:none}.sentence-fill-qmark{width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:40px;color:var(--purple)}.sentence-order-answer{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;min-height:96px;width:100%;max-width:480px;background:#fff;border:2px dashed var(--soft);border-radius:16px;padding:12px;margin-bottom:16px;box-sizing:border-box}.sentence-order-placeholder{color:var(--mid);font-size:14px;font-weight:600}.sentence-order-slot{position:relative;width:96px;border-radius:12px;overflow:hidden;cursor:pointer;box-shadow:0 3px 12px #0000001f}.sentence-order-slot-media{width:100%;aspect-ratio:4 / 3}.sentence-order-slot-media video,.sentence-order-slot-media img{width:100%;height:100%;object-fit:cover;display:block}.sentence-order-slot-num{position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:var(--coral);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}.sentence-order-pool{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:100%;max-width:480px}.sentence-order-tile{width:104px;border-radius:14px;overflow:hidden;cursor:pointer;border:3px solid var(--soft);background:#fff;transition:transform .12s,border-color .12s}.sentence-order-tile:hover{transform:translateY(-2px);border-color:var(--coral)}.sentence-order-tile-media{width:100%;aspect-ratio:4 / 3}.sentence-order-tile-media video,.sentence-order-tile-media img{width:100%;height:100%;object-fit:cover;display:block}.produce-mirror-hint{font-size:14px;color:var(--mid);text-align:center;max-width:400px;line-height:1.5;margin-bottom:20px}.produce-mirror-actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:400px}.produce-mirror-btn{padding:16px;border-radius:16px;border:3px solid var(--soft);background:#fff;font-family:var(--font-body);font-size:16px;font-weight:700;cursor:pointer;transition:transform .12s,border-color .12s,background .12s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.produce-mirror-btn.got:hover{border-color:var(--teal);background:#e8f7f4;transform:translateY(-2px)}.produce-mirror-btn.practice:hover{border-color:var(--yellow);background:#fff8e8;transform:translateY(-2px)}.flashcard-confirm-btn{margin-top:20px;padding:16px 40px;border-radius:999px;background:var(--teal);color:#fff;border:none;font-family:var(--font-body);font-size:16px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;width:100%;max-width:480px}.flashcard-confirm-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.flashcard-confirm-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3d8c7a59}.drag-phase-label{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--mid);text-transform:uppercase;margin-bottom:6px}.drag-board{width:100%;max-width:500px;display:grid;grid-template-columns:1fr auto 1fr;gap:12px 8px;align-items:center}.drag-sign-col{display:flex;flex-direction:column;gap:10px}.drag-arrow-col{display:flex;flex-direction:column;gap:10px;justify-content:center;align-items:center}.drag-target-col{display:flex;flex-direction:column;gap:10px}.drag-sign-card{background:#fff;border-radius:16px;padding:10px;border:3px solid var(--soft);display:flex;align-items:center;justify-content:center;width:80px;height:80px;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s;position:relative;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.drag-sign-card.selected{border-color:var(--coral);transform:scale(1.08);box-shadow:0 8px 24px #f4736a59;z-index:10;background:#fff8f7}.drag-sign-card.matched{border-color:var(--teal);background:#e8f7f4;cursor:default;opacity:.7}.drag-sign-card img,.drag-sign-card video{width:100%;height:100%;object-fit:cover;pointer-events:none;border-radius:12px}.drag-sign-card .drag-matched-check{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:13px;background:#3d8c7a2e;display:flex;align-items:center;justify-content:center;font-size:28px}.drag-select-hint{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:var(--coral);border-radius:50%;color:#fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #f4736a80;animation:hintPop .2s cubic-bezier(.34,1.56,.64,1)}@keyframes hintPop{0%{transform:scale(0)}to{transform:scale(1)}}.drag-arrow{height:80px;display:flex;align-items:center;font-size:18px;color:var(--soft)}.drag-target{height:80px;border-radius:16px;border:3px dashed var(--soft);background:#fff9;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:32px;font-weight:900;color:var(--mid);transition:border-color .2s,background .2s,transform .15s;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.drag-target.can-drop{border-color:var(--coral);border-style:solid;background:#fff8f7;color:var(--coral);transform:scale(1.04)}.drag-target.over{border-color:var(--coral);background:#fff0ee;color:var(--coral)}.drag-target.matched{border-color:var(--teal);background:#e8f7f4;color:var(--teal);border-style:solid}.drag-target.shake{animation:targetShake .35s ease}@keyframes targetShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}60%{transform:translate(6px)}80%{transform:translate(-4px)}}.drag-done-btn{margin-top:24px;padding:16px 40px;border-radius:999px;background:var(--near-black);color:#fff;border:none;font-family:var(--font-body);font-size:16px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;width:100%;max-width:480px}.drag-done-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000002e}.drag-all-done-msg{margin-top:16px;padding:12px 20px;border-radius:14px;background:#e8f7f4;color:var(--teal);font-weight:700;font-size:15px;text-align:center;width:100%;max-width:480px}.recall-badge{color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;padding:6px 14px;border-radius:999px;margin-bottom:16px;background:var(--purple)}.hard-letter-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;max-width:480px}.hard-letter-btn{font-family:var(--font-display)!important;font-size:40px!important;font-weight:900!important;padding:20px 12px!important;border-radius:20px!important;border:3px solid var(--soft)!important;background:#fff!important;cursor:pointer;transition:all .15s;color:var(--near-black)!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.hard-letter-btn:hover:not(:disabled){border-color:var(--purple)!important;transform:translateY(-2px);background:#f8f5ff!important}.hard-letter-btn.correct{border-color:var(--teal)!important;background:#e8f7f4!important;color:var(--teal)!important}.hard-letter-btn.wrong{border-color:var(--coral)!important;background:#fde8e6!important;color:var(--coral)!important}.hard-sign-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;max-width:480px}.hard-sign-btn{border-radius:20px!important;border:3px solid var(--soft)!important;background:#fff!important;cursor:pointer;padding:16px!important;transition:all .15s;display:flex!important;align-items:center!important;justify-content:center!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.hard-sign-btn:hover:not(:disabled){border-color:var(--purple)!important;transform:translateY(-2px)}.hard-sign-btn.correct{border-color:var(--teal)!important;background:#e8f7f4!important}.hard-sign-btn.wrong{border-color:var(--coral)!important;background:#fde8e6!important}.type-answer-wrap{width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center;gap:0}.type-input-row{display:flex;width:100%;gap:10px;align-items:center;margin-top:8px}.type-input{flex:1;padding:16px 20px;font-family:var(--font-display);font-size:28px;font-weight:800;text-align:center;letter-spacing:.1em;text-transform:uppercase;border:3px solid var(--soft);border-radius:16px;background:#fff;outline:none;transition:border-color .2s,box-shadow .2s;color:var(--near-black)}.type-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px #9b8fd426}.type-input.correct{border-color:var(--teal);background:#e8f7f4;color:var(--teal)}.type-input.wrong{border-color:var(--coral);background:#fde8e6;color:var(--coral);animation:cardShake .35s ease}.type-submit-btn{padding:16px 24px;border-radius:16px;background:var(--purple);color:#fff;border:none;font-family:var(--font-body);font-size:16px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;flex-shrink:0;touch-action:manipulation}.type-submit-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #9b8fd466}.type-submit-btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.type-hint{font-size:12px;color:var(--mid);margin-top:8px;text-align:center}.lesson-complete{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px}.complete-star{font-size:80px;margin-bottom:8px;animation:starPop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes starPop{0%{transform:scale(0) rotate(-20deg)}to{transform:scale(1) rotate(0)}}.complete-title{font-family:var(--font-display);font-size:40px;font-weight:900;margin-bottom:8px}.complete-sub{color:var(--mid);font-size:15px;margin-bottom:32px}.complete-stats{display:flex;gap:16px;justify-content:center;margin-bottom:32px;flex-wrap:wrap}.complete-stat{background:#fff;border-radius:18px;padding:18px 24px;text-align:center;box-shadow:0 4px 16px #00000012;min-width:100px}.complete-stat-val{font-family:var(--font-display);font-size:36px;font-weight:900}.complete-stat-val.xp-val{color:var(--yellow)}.complete-stat-val.score-val{color:var(--teal)}.complete-stat-label{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--mid);margin-top:4px}.complete-btn{padding:18px 48px;border-radius:999px;background:var(--coral);color:#fff;border:none;font-family:var(--font-body);font-size:17px;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 6px 24px #f4736a4d}.complete-btn:hover{transform:translateY(-2px);box-shadow:0 10px 32px #f4736a66}.topbar-xp-pill{display:flex;align-items:center;gap:6px;background:var(--near-black);color:var(--yellow);padding:7px 14px;border-radius:999px;font-size:13px;font-weight:800;font-family:var(--font-body)}.daily-goal-bar{background:#fff;border-radius:20px;padding:16px 20px;margin-bottom:20px;box-shadow:0 4px 16px #0000000f;display:flex;align-items:center;gap:16px}.daily-goal-icon{width:44px;height:44px;border-radius:999px;background:var(--yellow);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}.daily-goal-info{flex:1;min-width:0}.daily-goal-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--mid);margin-bottom:4px}.daily-goal-progress-row{display:flex;align-items:center;gap:10px}.daily-goal-track{flex:1;height:10px;border-radius:999px;background:var(--soft);overflow:hidden}.daily-goal-fill{height:100%;border-radius:999px;background:var(--yellow);transition:width .5s cubic-bezier(.34,1.56,.64,1)}.daily-goal-fill.done{background:var(--teal)}.daily-goal-count{font-size:13px;font-weight:700;color:var(--near-black);white-space:nowrap}.daily-goal-done-badge{font-size:11px;font-weight:700;color:var(--teal);letter-spacing:.06em;background:#e8f7f4;padding:4px 10px;border-radius:999px;flex-shrink:0}.streak-widget{background:var(--near-black);border-radius:20px;padding:18px 20px;margin-bottom:20px;display:flex;align-items:center;gap:14px}.streak-widget-fire{width:48px;height:48px;background:var(--coral);border-radius:999px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.streak-widget-info{flex:1;min-width:0}.streak-widget-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:#ffffff80;margin-bottom:2px}.streak-widget-count{font-family:var(--font-display);font-size:26px;font-weight:900;color:#fff;line-height:1}.streak-widget-sub{font-size:12px;color:#ffffff73;margin-top:2px}.streak-week-dots{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.streak-week-dot{width:28px;height:28px;border-radius:999px;background:#ffffff1f;display:flex;align-items:center;justify-content:center;flex-shrink:0}.streak-week-dot.done{background:var(--coral)}.streak-week-dot.today{box-shadow:0 0 0 2px var(--coral)}.streak-week-dot-label{font-size:9px;font-weight:700;color:#ffffff59;text-align:center;margin-top:3px}.streak-widget-best{color:var(--yellow);font-size:12px;font-weight:700;display:flex;align-items:center;gap:4px;flex-shrink:0;padding-top:2px}.detail-label{font-size:11px;font-weight:700;letter-spacing:.1em;opacity:.6;margin-bottom:8px}.detail-letter{font-family:var(--font-display);font-size:64px;font-weight:900;line-height:1;margin-bottom:12px}.detail-desc{font-size:15px;font-weight:600;margin-bottom:20px;line-height:1.5}.detail-hand{background:#ffffff80;border-radius:16px;padding:24px;text-align:center;font-size:80px;margin-bottom:12px}.detail-note{font-size:12px;opacity:.6;text-align:center}.play-header{background:var(--purple-light);border-radius:24px;padding:28px 32px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.play-header-left h2{font-family:var(--font-display);font-size:30px;font-weight:900}.play-header-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--mid);margin-bottom:8px}.play-stats{display:flex;gap:12px;flex-shrink:0}.stat-circle{background:#fff9;border-radius:999px;width:72px;height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.stat-label{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--mid)}.stat-num{font-family:var(--font-display);font-size:22px;font-weight:900}.streak-card{background:var(--near-black);border-radius:20px;padding:20px 24px;margin-bottom:24px;display:flex;align-items:flex-start;gap:16px;overflow:hidden}.streak-fire{width:48px;height:48px;background:var(--coral);border-radius:999px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.streak-info{flex:1;min-width:0}.streak-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:#ffffff80}.streak-days{font-family:var(--font-display);font-size:24px;font-weight:900;color:#fff}.streak-dots{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.streak-dot{width:28px;height:28px;border-radius:999px;background:#ffffff26;display:flex;align-items:center;justify-content:center;flex-shrink:0}.streak-dot.done{background:var(--coral)}.streak-dot-label{font-size:9px;font-weight:700;color:#fff6;text-align:center;margin-top:4px}.streak-best{color:var(--yellow);font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap;padding-top:4px}.games-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.game-card{border-radius:20px;padding:24px;cursor:pointer;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.game-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px #0000001f}.game-card:before{content:"";position:absolute;z-index:0;pointer-events:none;top:-36px;right:-36px;width:112px;height:112px;border-radius:50%;border:22px solid rgba(255,255,255,.15)}.game-card:after{content:"";position:absolute;z-index:0;pointer-events:none;bottom:-22px;left:-18px;width:76px;height:76px;border-radius:50%;background:#ffffff1a}.game-card.gc1:before{border-color:#3d2f2a17}.game-card.gc1:after{background:#3d2f2a0f}.game-card.gc0{background:var(--coral)}.game-card.gc1{background:var(--yellow)}.game-card.gc2{background:var(--teal)}.game-card.gc3{background:var(--purple-light)}.game-num{font-size:11px;font-weight:700;letter-spacing:.08em;opacity:.6;margin-bottom:8px;display:flex;align-items:center;gap:6px}.game-title{font-family:var(--font-display);font-size:22px;font-weight:800;margin-bottom:8px}.game-desc{font-size:13px;opacity:.75;line-height:1.5;margin-bottom:20px}.game-play-btn{background:var(--near-black);color:#fff;border:none;padding:10px 20px;border-radius:999px;cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:700;display:inline-flex;align-items:center;gap:6px}.signs-header{background:var(--coral);border-radius:24px;padding:28px 32px;margin-bottom:24px}.signs-header-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:#ffffffb3;margin-bottom:8px}.signs-header h2{font-family:var(--font-display);font-size:32px;font-weight:900;color:#fff;margin-bottom:16px}.signs-search{width:100%;padding:14px 20px;background:#f5efe6f2;border:none;border-radius:14px;font-family:var(--font-body);font-size:15px;outline:none;color:var(--near-black)}.signs-grid-full{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.mascot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:mascotFadeIn .15s ease forwards}.mascot-overlay.hiding{animation:mascotFadeOut .4s ease forwards}.mascot-video-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px}.mascot-video{width:220px;height:220px;border-radius:50%;object-fit:cover;filter:drop-shadow(0 8px 32px rgba(244,115,106,.45))}.mascot-xp-badge{background:var(--yellow);color:var(--near-black);font-family:var(--font-display);font-size:22px;font-weight:900;padding:6px 20px;border-radius:999px;box-shadow:0 4px 16px #f5b82e80;animation:mascotBadgePop .35s cubic-bezier(.34,1.56,.64,1) .1s both}@keyframes mascotFadeIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes mascotFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.08)}}@keyframes mascotBadgePop{0%{opacity:0;transform:scale(.5) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.paywall-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:24px}.paywall-card{background:#fff;border-radius:28px;padding:40px;max-width:440px;width:100%;box-shadow:0 24px 80px #0003;text-align:center}.paywall-emoji{font-size:48px;margin-bottom:16px}.paywall-title{font-family:var(--font-display);font-size:28px;font-weight:900;margin-bottom:10px}.paywall-sub{color:var(--mid);font-size:15px;line-height:1.6;margin-bottom:28px}.paywall-pro{background:var(--near-black);color:#fff;border:none;width:100%;padding:16px;border-radius:14px;cursor:pointer;font-family:var(--font-body);font-size:16px;font-weight:700;margin-bottom:12px;transition:transform .15s}.paywall-pro:hover{transform:translateY(-1px)}.paywall-ad{background:var(--cream);color:var(--near-black);border:2px solid var(--soft);width:100%;padding:14px;border-radius:14px;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:600;margin-bottom:12px}.paywall-dismiss{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:14px;color:var(--mid)}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%;max-width:520px;margin-bottom:24px}.mem-card{aspect-ratio:1;border-radius:16px;cursor:pointer;perspective:600px;position:relative}.mem-card-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .35s}.mem-card.flipped .mem-card-inner,.mem-card.matched .mem-card-inner{transform:rotateY(180deg)}.mem-front,.mem-back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.mem-front{background:var(--coral);color:#fff;font-family:var(--font-display);font-size:32px;font-weight:900}.mem-back{background:#fff;box-shadow:0 4px 16px #0000001a;transform:rotateY(180deg);padding:6px}.mem-back img{width:100%;height:100%;object-fit:contain}.mem-back.letter-back{font-family:var(--font-display);font-size:36px;font-weight:900;color:var(--near-black)}.mem-card.matched .mem-front{background:var(--teal)}.mem-card.matched .mem-back{background:#e8f7f4;box-shadow:0 4px 16px #3d8c7a33}.mem-stats{display:flex;gap:24px;margin-bottom:20px}.mem-stat{text-align:center}.mem-stat-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--mid)}.mem-stat-val{font-family:var(--font-display);font-size:28px;font-weight:900}.wsq-prompt{font-family:var(--font-display);font-size:52px;font-weight:900;color:var(--near-black);margin-bottom:8px;text-align:center}.wsq-subtitle{color:var(--mid);font-size:14px;font-weight:500;margin-bottom:28px}.wsq-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;max-width:480px}.wsq-choice{background:#fff;border:3px solid var(--soft);border-radius:20px;padding:10px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:6px}.wsq-choice:hover{border-color:var(--coral);transform:translateY(-2px)}.wsq-choice.correct{border-color:var(--teal);background:#e8f7f4}.wsq-choice.wrong{border-color:var(--coral);background:#fde8e6}.wsq-choice img{width:90px;height:90px;object-fit:contain}.wsq-choice-label{font-family:var(--font-display);font-size:22px;font-weight:900}.wsq-progress{display:flex;gap:6px;margin-bottom:20px}.wsq-pip{width:24px;height:8px;border-radius:999px;background:var(--soft)}.wsq-pip.done{background:var(--teal)}.wsq-pip.active{background:var(--coral)}.sspell-word{font-family:var(--font-display);font-size:52px;font-weight:900;color:var(--near-black);margin-bottom:6px;letter-spacing:.05em}.sspell-slots{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap;justify-content:center}.sspell-slot{width:44px;height:44px;border-radius:12px;border:3px solid var(--soft);background:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:22px;font-weight:900;transition:all .15s}.sspell-slot.filled{border-color:var(--coral);color:var(--coral)}.sspell-slot.correct-slot{border-color:var(--teal);color:var(--teal);background:#e8f7f4}.sspell-slot.wrong-slot{border-color:var(--coral);color:var(--coral);background:#fde8e6}.sspell-img{width:180px;height:180px;background:#fff;border-radius:24px;padding:10px;box-shadow:0 8px 28px #0000001a;margin-bottom:20px}.sspell-img img{width:100%;height:100%;object-fit:contain}.sspell-choices{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;width:100%;max-width:480px}.sspell-btn{aspect-ratio:1;border-radius:12px;border:2px solid var(--soft);background:#fff;cursor:pointer;font-family:var(--font-display);font-size:18px;font-weight:800;transition:all .15s;display:flex;align-items:center;justify-content:center}.sspell-btn:hover{border-color:var(--coral);color:var(--coral);transform:scale(1.06)}.sspell-btn:disabled{opacity:.3;cursor:default;transform:none}.dc-header{background:var(--yellow);border-radius:24px;padding:24px 28px;margin-bottom:20px;width:100%;max-width:560px;text-align:center}.dc-header-label{font-size:11px;font-weight:700;letter-spacing:.1em;opacity:.6;margin-bottom:6px}.dc-title{font-family:var(--font-display);font-size:28px;font-weight:900}.dc-progress-bar{height:8px;border-radius:999px;background:#0000001f;margin-top:12px;overflow:hidden}.dc-progress-fill{height:100%;border-radius:999px;background:var(--near-black);transition:width .4s}.dc-question{font-family:var(--font-display);font-size:22px;font-weight:800;margin-bottom:20px;text-align:center;color:var(--near-black)}.dc-img-prompt{width:160px;height:160px;background:#fff;border-radius:20px;padding:10px;box-shadow:0 6px 24px #0000001a;margin:0 auto 20px}.dc-img-prompt img{width:100%;height:100%;object-fit:contain}.dc-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:480px}.dc-choice{background:#fff;border:3px solid var(--soft);border-radius:16px;padding:16px;cursor:pointer;font-family:var(--font-display);font-size:22px;font-weight:800;text-align:center;transition:all .15s}.dc-choice:hover{border-color:var(--coral);transform:translateY(-2px)}.dc-choice.correct{border-color:var(--teal);background:#e8f7f4;color:var(--teal)}.dc-choice.wrong{border-color:var(--coral);background:#fde8e6;color:var(--coral)}.dc-result-screen{text-align:center;padding:20px}.dc-result-emoji{font-size:64px;margin-bottom:12px}.dc-result-score{font-family:var(--font-display);font-size:64px;font-weight:900;color:var(--coral)}.dc-result-label{font-size:16px;color:var(--mid);margin-bottom:24px}.game-screen{min-height:100vh;background:var(--cream);display:flex;flex-direction:column}.game-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:2px solid var(--soft)}.game-back{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:600;display:flex;align-items:center;gap:6px;color:var(--near-black)}.game-content{flex:1;padding:32px;display:flex;flex-direction:column;align-items:center}.game-title-big{font-family:var(--font-display);font-size:36px;font-weight:900;margin-bottom:8px}.game-timer{background:var(--near-black);color:#fff;padding:12px 28px;border-radius:999px;font-family:var(--font-display);font-size:32px;font-weight:900;margin-bottom:28px}.game-timer.urgent{background:var(--coral);animation:pulse .5s infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.04)}}.fingerspell-letter{background:#fff;border-radius:28px;width:220px;height:220px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 40px #f4736a33;margin-bottom:32px;overflow:hidden;padding:12px}.fingerspell-letter img{width:100%;height:100%;object-fit:contain}.fingerspell-score{font-family:var(--font-display);font-size:24px;font-weight:800;margin-bottom:24px;color:var(--mid)}.fingerspell-score span{color:var(--near-black);font-size:36px}.answer-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:400px}.choice-btn{padding:18px;border-radius:16px;border:3px solid var(--soft);background:#fff;cursor:pointer;font-family:var(--font-display);font-size:28px;font-weight:900;transition:all .15s}.choice-btn:hover{border-color:var(--coral);background:#fff8f7}.choice-btn.correct{background:var(--teal);color:#fff;border-color:var(--teal)}.choice-btn.wrong{background:var(--coral);color:#fff;border-color:var(--coral)}.sb-sentence{background:#fff;border-radius:20px;padding:24px;margin-bottom:24px;width:100%;max-width:600px;min-height:80px;box-shadow:0 4px 20px #0000000f;font-family:var(--font-display);font-size:22px;font-weight:700}.sb-target{color:var(--mid);font-size:14px;font-family:var(--font-body);font-weight:500;margin-bottom:8px}.sb-words{display:flex;flex-wrap:wrap;gap:10px;width:100%;max-width:600px;margin-bottom:24px}.sb-word{padding:12px 20px;border-radius:12px;background:#fff;border:2px solid var(--soft);cursor:pointer;font-family:var(--font-display);font-size:18px;font-weight:700;transition:all .15s}.sb-word:hover{border-color:var(--coral);background:#fff8f7}.sb-word.used{opacity:.3;cursor:default}.sb-check{background:var(--coral);color:#fff;border:none;padding:16px 40px;border-radius:999px;cursor:pointer;font-family:var(--font-body);font-size:16px;font-weight:700;transition:transform .15s}.sb-check:hover{transform:translateY(-2px)}.sb-result{margin-top:16px;padding:16px 24px;border-radius:14px;font-weight:700;font-size:16px}.sb-result.ok{background:#e8f8f0;color:var(--teal)}.sb-result.err{background:#fee8e8;color:var(--coral-dark)}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fdfaf6f7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(232,224,213,.8);padding:6px 8px 20px;z-index:100;box-shadow:0 -4px 24px #3d2f2a0f}.mobile-topbar{display:none;align-items:center;justify-content:space-between;padding:10px 14px 8px;gap:0;background:#fdfaf6f7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);position:sticky;top:0;z-index:99;border-bottom:1px solid rgba(232,224,213,.8);box-shadow:0 2px 12px #3d2f2a0d}.mobile-topbar-logo{display:flex;align-items:center;gap:7px}.mobile-topbar-right{display:flex;align-items:center;gap:8px}.mobile-nav-inner{display:flex;justify-content:space-around;align-items:center;padding:0 4px}.mobile-nav-btn{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:10px;font-weight:700;color:var(--mid);padding:7px 14px;border-radius:16px;transition:background .18s,color .18s,transform .15s;letter-spacing:.01em}.mobile-nav-btn:active{transform:scale(.92)}.mobile-nav-btn.active{background:var(--near-black);color:#fff;border-radius:999px;padding:8px 18px;box-shadow:0 3px 12px #3d2f2a2e}.mobile-nav-btn svg{width:22px;height:22px}.mobile-nav-btn.active svg{width:20px;height:20px}@keyframes sig-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-22px)}70%{transform:translateY(-10px)}}@keyframes sig-spin{0%{transform:rotate(0)}30%{transform:rotate(-22deg)}65%{transform:rotate(22deg)}to{transform:rotate(0)}}@keyframes sig-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-13deg)}75%{transform:rotate(13deg)}}@keyframes sig-shake{0%,to{transform:translate(0)}25%{transform:translate(-11px)}75%{transform:translate(11px)}}@keyframes sig-droop{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(5px) scaleY(.94)}}.sig-anim-bounce{animation:sig-bounce .65s ease}.sig-anim-spin{animation:sig-spin .65s ease}.sig-anim-wiggle{animation:sig-wiggle .55s ease}.sig-anim-shake{animation:sig-shake .55s ease}.sig-anim-droop{animation:sig-droop .65s ease}.sig-screen{max-width:400px;margin:0 auto;padding:20px 16px 80px;display:flex;flex-direction:column;align-items:center}.sig-level-badge{background:var(--near-black);color:#fff;font-size:12px;font-weight:700;padding:4px 14px;border-radius:999px;letter-spacing:.04em}.sig-bubble{position:relative;background:#fff;border:1.5px solid #e8e2dc;border-radius:16px;padding:10px 16px;font-size:14px;font-weight:500;color:var(--near-black);text-align:center;max-width:240px;box-shadow:0 2px 8px #0000000f;min-height:42px;display:flex;align-items:center;justify-content:center}.sig-bubble:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);border-width:10px 8px 0;border-style:solid;border-color:#fff transparent transparent;filter:drop-shadow(0 1px 0 #e8e2dc)}.sig-bars{width:100%;background:#fff;border-radius:16px;padding:16px;border:1.5px solid #e8e2dc;margin-bottom:14px;display:flex;flex-direction:column;gap:12px}.sig-bar-row{display:flex;align-items:center;gap:10px}.sig-bar-label{font-size:13px;font-weight:600;color:var(--mid);width:80px;flex-shrink:0}.sig-bar-track{flex:1;height:10px;background:var(--soft);border-radius:999px;overflow:hidden}.sig-bar-fill{height:100%;border-radius:999px;transition:width .6s ease}.sig-bar-hunger{background:linear-gradient(90deg,var(--coral),#F5A23A)}.sig-bar-xp{background:linear-gradient(90deg,var(--teal),#5DCAA5)}.sig-bar-val{font-size:12px;font-weight:700;color:var(--near-black);width:36px;text-align:right;flex-shrink:0}.sig-actions{display:flex;gap:10px;width:100%}.sig-btn{flex:1;padding:14px 8px;border:none;border-radius:14px;font-family:var(--font-body);font-size:14px;font-weight:700;cursor:pointer;transition:transform .15s}.sig-btn:active{transform:scale(.96)}.sig-btn-tap{background:var(--coral);color:#fff}.sig-btn-shop{background:var(--teal);color:#fff}.sig-coins-pill{display:inline-flex;align-items:center;gap:5px;background:#f5b82e26;border:1.5px solid rgba(245,184,46,.4);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;color:var(--near-black)}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.shop-item{background:#faf8f5;border:1.5px solid #e8e2dc;border-radius:14px;padding:12px 10px;text-align:center}.shop-item-disabled{opacity:.55}.landing-extra{display:flex;flex-direction:column;gap:0}.landing-section-inner{max-width:860px;margin:0 auto;width:100%;padding:0 32px}.landing-section-title{font-family:var(--font-display);font-size:32px;font-weight:800;color:var(--near-black);margin-bottom:32px;text-align:center}.landing-faq{background:#fff;padding:72px 0;border-top:1px solid rgba(0,0,0,.06)}.faq-list{display:flex;flex-direction:column;gap:8px}.faq-item{background:var(--cream);border:1.5px solid rgba(0,0,0,.07);border-radius:14px;overflow:hidden;transition:border-color .2s}.faq-item[open]{border-color:var(--coral-light)}.faq-question{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;font-family:var(--font-body);font-size:16px;font-weight:600;color:var(--near-black);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.faq-question::-webkit-details-marker{display:none}.faq-chevron{flex-shrink:0;color:var(--mid);transition:transform .25s ease}.faq-item[open] .faq-chevron{transform:rotate(180deg)}.faq-answer{padding:0 20px 18px;font-size:15px;line-height:1.65;color:var(--mid)}.landing-privacy{background:linear-gradient(160deg,#f8f4ff,#f0f9f6);padding:72px 0;border-top:1px solid rgba(0,0,0,.06)}.privacy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:36px}.privacy-card{background:#fff;border-radius:18px;padding:24px 22px;border:1.5px solid rgba(0,0,0,.06)}.privacy-icon{font-size:28px;margin-bottom:10px}.privacy-card h3{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--near-black);margin-bottom:8px}.privacy-card p{font-size:14px;line-height:1.6;color:var(--mid)}.privacy-links{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.landing-footer{background:var(--near-black);color:#fff9;padding:40px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-logo{display:flex;align-items:center;gap:6px}.footer-logo .logo-text{color:#fff;font-size:18px}.footer-copy{font-size:14px}.footer-nav{display:flex;gap:20px}.footer-link{font-size:14px;color:#ffffff8c;text-decoration:none;transition:color .2s}.footer-link:hover{color:#fff}@media (max-width: 700px){.landing-section-inner{padding:0 20px}.landing-section-title{font-size:26px;margin-bottom:24px}.landing-faq,.landing-privacy{padding:52px 0}.privacy-grid{grid-template-columns:1fr}.landing-footer{flex-direction:column;align-items:flex-start;gap:16px}}@media (max-width: 700px){body,.tab-content{overflow-x:hidden}.landing-nav{padding:16px 20px}.landing-hero{flex-direction:column;padding:20px 20px 100px}.hero-right{display:none}.hero-h1{font-size:42px}.app-topbar{display:none}.mobile-topbar{display:flex}.mobile-nav{display:block}.tab-content{padding:16px 14px 100px}.greeting-row{flex-direction:column;align-items:flex-start;gap:12px}.greeting-text h2{font-size:22px}.quota-pill{font-size:12px;padding:8px 14px}.play-header{flex-direction:column;align-items:flex-start;padding:22px 20px;gap:18px}.play-header-left h2{font-size:26px}.play-stats{width:100%;justify-content:space-between}.stat-circle{width:80px;height:80px;flex:1}.stat-num{font-size:26px}.streak-card{flex-wrap:wrap;padding:18px 16px;gap:12px}.streak-info{width:100%}.streak-best{width:100%;justify-content:flex-start;padding-top:0}.streak-dots{gap:6px}.streak-dot{width:26px;height:26px}.learn-hero{padding:22px 20px}.learn-hero-left h2{font-size:24px}.unit-header{padding:14px 16px;gap:10px}.lesson-body{padding:16px 12px 40px;box-sizing:border-box}.lesson-question{font-size:18px;margin-bottom:16px}.lesson-choices{grid-template-columns:1fr 1fr;gap:8px}.lesson-choice{padding:14px 8px;font-size:18px}.lesson-img-choices{grid-template-columns:1fr 1fr;gap:10px}.lesson-img-choice{padding:8px}.lesson-letter-display{width:90px;height:90px;font-size:52px}.complete-stats{gap:10px}.complete-title{font-size:30px}.drag-board{gap:14px 8px}.drag-sign-card{width:132px;height:88px;border-radius:16px;padding:6px}.drag-target{height:88px;border-radius:16px;font-size:32px}.drag-arrow{height:88px;font-size:16px}.games-grid{grid-template-columns:1fr}.game-card{padding:20px}.signs-grid-full,.signs-grid{grid-template-columns:1fr 1fr}.auth-card{padding:28px 20px}.game-content{padding:20px 16px}.game-topbar{padding:14px 16px}.memory-grid{grid-template-columns:repeat(4,1fr);gap:8px}.wsq-choices{gap:10px}.sspell-choices{grid-template-columns:repeat(6,1fr);gap:6px}.intro-card{flex-direction:column;align-items:center;gap:16px;margin-bottom:24px}.intro-equals{display:none}.intro-letter-box{width:120px;height:120px;font-size:80px}.type-answer-wrap{max-width:100%;gap:0}.type-input-row{flex-direction:column;gap:10px;align-items:stretch;margin-top:8px}.type-input{font-size:22px;padding:14px 16px;width:100%}.type-submit-btn{width:100%;padding:14px 20px;font-size:16px;flex-shrink:unset}.streak-widget{flex-wrap:wrap;gap:12px;padding:16px;align-items:flex-start}.streak-widget-fire{width:42px;height:42px;flex-shrink:0}.streak-widget-info{flex:1;min-width:0}.streak-widget-count{font-size:22px}.streak-week-dots{width:100%;gap:5px;margin-top:8px;flex-wrap:wrap}.streak-week-dot{width:26px;height:26px}.streak-widget-best{width:100%;justify-content:flex-start;padding-top:0;font-size:12px}.lesson-topbar{padding:10px 14px;gap:8px}.lesson-back{width:30px;height:30px;font-size:17px}.lesson-progress-track{height:8px}.lesson-card-num{font-size:11px}.heart-icon{font-size:18px}.lesson-hearts{gap:3px}.daily-goal-bar{padding:12px 14px;gap:10px}.daily-goal-icon{width:36px;height:36px;font-size:16px}.daily-goal-label{font-size:10px}.daily-goal-count{font-size:12px}.daily-goal-done-badge{font-size:10px;padding:3px 8px}.translate-textarea{font-size:20px;min-height:64px}.translate-input-card{padding:20px 18px}.gloss-card{flex-direction:column;align-items:flex-start;gap:10px}.complete-stat{padding:14px 16px;min-width:80px}.complete-stat-val{font-size:28px}.complete-btn{padding:16px 32px;font-size:15px}.lesson-feedback{font-size:14px;padding:12px 14px}.lesson-next-btn{padding:14px 24px;font-size:15px}}.teacher-topbar{padding:12px 16px;flex-wrap:wrap;gap:8px}.teacher-nav{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch;border-radius:12px}.teacher-nav-btn{padding:8px 12px;font-size:12px;white-space:nowrap}.teacher-body{padding:16px}.teacher-section-title{font-size:20px;margin-bottom:14px}.create-class-form{flex-direction:column;align-items:stretch}.class-grid{grid-template-columns:1fr}.student-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.student-table th,.student-table td{padding:10px 12px;font-size:13px}.lb-body{flex-direction:column!important}.lb-pages{width:100%!important;flex-direction:row!important;overflow-x:auto!important;overflow-y:hidden!important;border-right:none!important;border-bottom:1.5px solid #e8e2dc!important;padding:8px 10px!important;min-height:64px!important;flex-shrink:0!important;gap:6px!important}.lb-canvas{padding:14px 10px!important}.lb-props{width:100%!important;border-left:none!important;border-top:1.5px solid #e8e2dc!important;max-height:55vh!important}@media (max-width: 390px){.type-input{font-size:18px;padding:12px}.streak-widget{padding:12px;gap:10px}.streak-widget-count{font-size:20px}.streak-week-dot{width:22px;height:22px}.streak-week-dot-label{font-size:8px}.lesson-topbar{padding:8px 10px;gap:6px}.heart-icon{font-size:16px}.lesson-card-num{display:none}.complete-title{font-size:26px}.complete-stat{padding:10px 12px;min-width:70px}.complete-stat-val{font-size:24px}.tab-content{padding:12px 10px 100px}.daily-goal-bar{padding:10px 12px;gap:8px}.daily-goal-icon{width:30px;height:30px;font-size:14px}}.teacher-signup-btn{display:flex;align-items:center;gap:12px;width:100%;background:var(--off-white);border:2px solid var(--soft);border-radius:14px;padding:14px 16px;cursor:pointer;font-family:var(--font-body);color:var(--near-black);text-align:left;transition:border-color .2s,background .2s;margin:10px 0}.teacher-signup-btn:hover{border-color:var(--teal);background:#f0faf9}.teacher-signup-btn.active{border-color:var(--teal);background:#e6f7f5}.teacher-plan-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:900;padding:20px;box-sizing:border-box}.teacher-plan-modal{background:#fff;border-radius:24px;padding:36px 32px;max-width:420px;width:100%;box-shadow:0 24px 60px #0000002e;position:relative}.teacher-plan-modal h2{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--near-black);margin:0 0 6px}.teacher-plan-modal .tpm-subtitle{font-size:14px;color:var(--mid);margin-bottom:22px}.teacher-plan-feature{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--near-black);margin-bottom:12px}.teacher-plan-feature-icon{width:32px;height:32px;border-radius:10px;background:#e6f7f5;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.teacher-plan-price{background:var(--off-white);border-radius:14px;padding:16px 18px;margin:20px 0;display:flex;align-items:baseline;gap:6px}.teacher-plan-price .tpp-amount{font-family:var(--font-display);font-size:30px;font-weight:800;color:var(--near-black)}.teacher-plan-price .tpp-period{font-size:13px;color:var(--mid)}.teacher-plan-cta{width:100%;padding:15px;border-radius:14px;border:none;background:var(--teal);color:#fff;font-family:var(--font-display);font-size:16px;font-weight:800;cursor:pointer;transition:opacity .2s;margin-bottom:10px}.teacher-plan-cta:hover{opacity:.88}.teacher-plan-cancel{width:100%;padding:11px;border-radius:14px;border:none;background:none;color:var(--mid);font-family:var(--font-body);font-size:14px;cursor:pointer}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9550;pointer-events:none}.tour-spotlight{position:fixed;pointer-events:none;box-shadow:0 0 0 3px var(--coral),0 6px 24px #0000004d,0 0 0 9999px #000000b8;transition:all .25s ease}.tour-tooltip{position:fixed;width:280px;max-width:calc(100vw - 32px);background:var(--cream);border-radius:18px;padding:16px 18px;box-shadow:0 12px 32px #0000004d;pointer-events:none;transition:all .25s ease}.tour-step-label{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--coral);margin-bottom:6px}.tour-title{font-family:var(--font-display);font-size:17px;font-weight:900;color:var(--near-black);margin-bottom:6px}.tour-body{font-size:13px;line-height:1.45;color:var(--mid)}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9500;padding:20px;box-sizing:border-box}.onboarding-card{background:var(--cream);border-radius:28px;padding:28px 28px 24px;max-width:380px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:0 24px 60px #00000040;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}.onboarding-art{width:100%;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:var(--soft);margin-bottom:20px;position:relative;display:flex;align-items:center;justify-content:center}.onboarding-art img,.onboarding-art video{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}.survey-card{background:var(--cream);border-radius:28px;padding:22px 24px 24px;max-width:380px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:0 24px 60px #00000040;position:relative;display:flex;flex-direction:column}.survey-topbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.survey-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 2px 8px #0000001f;flex-shrink:0}.survey-progress-track{flex:1;height:8px;background:var(--soft);border-radius:999px;overflow:hidden}.survey-progress-fill{height:100%;background:var(--coral);border-radius:999px;transition:width .3s ease}.survey-progress-label{font-size:12px;font-weight:700;color:var(--mid);flex-shrink:0;white-space:nowrap}.survey-banner{background:var(--coral-light);color:#86211f;font-size:12px;font-weight:700;border-radius:12px;padding:10px 14px;margin:0 0 14px;text-align:center;line-height:1.4}.survey-title{font-family:var(--font-display);font-size:21px;font-weight:900;color:var(--near-black);margin:0 0 16px;text-align:center;line-height:1.3}.survey-options{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.survey-option{display:flex;align-items:center;gap:12px;width:100%;background:#fff;border:2px solid var(--soft);border-radius:14px;padding:14px 16px;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--near-black);text-align:left;cursor:pointer;transition:all .15s ease}.survey-option:hover{border-color:var(--coral-light)}.survey-option.selected{border-color:var(--coral);background:var(--coral-light);color:#86211f}.survey-option-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--soft);flex-shrink:0;position:relative;background:#fff}.survey-option.selected .survey-option-radio{border-color:#86211f;background:var(--coral)}.survey-option.selected .survey-option-radio:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:#fff}.onboarding-confetti-burst{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:9600}.onboarding-confetti-piece{position:absolute;top:-5%;border-radius:2px;animation-name:onboarding-confetti-fall;animation-timing-function:cubic-bezier(.25,.46,.45,.94);animation-fill-mode:forwards}@keyframes onboarding-confetti-fall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--cf-drift),110vh) rotate(var(--cf-spin));opacity:0}}.onboarding-title{font-family:var(--font-display);font-size:24px;font-weight:900;color:var(--near-black);margin:0 0 10px}.namelesson-hint-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:20px}.namelesson-hint-img{width:52px;height:52px;border-radius:14px;background:#fff;padding:6px;box-shadow:0 4px 14px #00000014;flex-shrink:0}.onboarding-body{font-size:14px;line-height:1.5;color:var(--mid);margin:0 0 18px}.onboarding-chips{display:flex;gap:10px;width:100%;margin-bottom:18px}.onboarding-chip{flex:1;background:#fff;border:1.5px solid var(--soft);border-radius:14px;padding:14px 8px;font-size:12px;font-weight:700;color:var(--near-black);display:flex;flex-direction:column;align-items:center;gap:6px}.onboarding-chip-icon{font-size:20px}.onboarding-dots{display:flex;gap:6px;margin-bottom:20px}.onboarding-dot{width:7px;height:7px;border-radius:999px;background:var(--soft);transition:all .2s}.onboarding-dot.active{background:var(--coral);width:20px}.onboarding-actions{width:100%;display:flex;flex-direction:column;gap:10px}.onboarding-btn-primary{width:100%;padding:15px;border-radius:999px;border:none;background:var(--coral);color:#fff;font-family:var(--font-display);font-size:16px;font-weight:800;cursor:pointer;transition:opacity .2s}.onboarding-btn-primary:hover{opacity:.9}.onboarding-btn-secondary{width:100%;padding:13px;border-radius:999px;border:none;background:var(--soft);color:var(--near-black);font-family:var(--font-body);font-size:14px;font-weight:700;cursor:pointer}.quota-pill-at-limit{background:#ef4444!important}.quota-reset-label{font-size:11px;color:#ffffffbf;font-weight:600;margin-top:2px}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased}.learn-map-wrap{padding:4px 0 8px;max-width:400px;margin:0 auto}.map-unit-section{margin-bottom:4px}.map-section-hdr{margin:22px 8px 10px;padding:16px 18px;background:linear-gradient(135deg,var(--near-black) 0%,#3a332f 100%);border-radius:18px;color:#fff;box-shadow:0 6px 22px #00000024}.map-section-hdr:first-child{margin-top:4px}.map-section-hdr-top{display:flex;align-items:baseline;justify-content:space-between}.map-section-title{font-family:var(--font-display);font-weight:900;font-size:20px;letter-spacing:.01em}.map-section-pct{font-weight:800;font-size:14px;opacity:.85}.map-section-desc{font-size:12.5px;opacity:.7;margin:3px 0 10px}.map-section-track{height:7px;border-radius:999px;background:#ffffff2e;overflow:hidden}.map-section-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--yellow),var(--coral));transition:width .4s}.map-unit-hdr{text-align:center;padding:10px 4px;margin-bottom:6px;border-bottom:1.5px solid #dec0bc;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7a6e69}.map-unit-hdr.locked{color:#c4bcb6}.map-path-area{padding:4px 0 14px}.map-unit-canvas{container-type:inline-size}@keyframes map-pulse-ring{0%,to{opacity:.15;transform:scale(1)}50%{opacity:.28;transform:scale(1.2)}}.map-pulse-ring{animation:map-pulse-ring 1.8s ease-in-out infinite}@keyframes map-badge-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.map-start-badge{animation:map-badge-bounce 1s ease-in-out infinite}.map-decor{display:flex;align-items:center;justify-content:center}.map-decor-img{width:72%;height:72%;object-fit:contain;position:relative;z-index:1;transition:transform .15s ease}.map-decor:active .map-decor-img{transform:scale(.92)}.map-decor-glow{position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;border-radius:50%;background:radial-gradient(circle,#f5b82e59,#f5b82e00 72%);animation:map-decor-pulse 2.4s ease-in-out infinite}.castle-glow{top:43%;right:43%;bottom:43%;left:43%;background:radial-gradient(circle,#9b8fd452,#9b8fd400 72%)}.map-castle .map-decor-img{width:100%;height:100%}@keyframes map-decor-pulse{0%,to{opacity:.6;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}.map-decor-label{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);background:#fff;border:2px solid var(--yellow);border-radius:9px;padding:3px 10px;font-size:11px;font-weight:800;color:#8a6400;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;z-index:2}.castle-label{border-color:var(--purple);color:#5d4ea8}.map-chest.claimed .map-decor-img{filter:grayscale(.7) opacity(.55)}.map-chest.claimed .map-decor-glow{display:none}.map-chest.claimed .map-decor-label{border-color:var(--soft);color:var(--mid)}.map-decor.locked .map-decor-img{filter:grayscale(1) opacity(.45)}.map-decor.locked .map-decor-label{border-color:var(--soft);color:var(--mid)}.game-card{border-radius:20px;padding:24px;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;text-align:left;border:none;color:var(--near-black);position:relative;overflow:hidden}.game-card:hover{transform:translateY(-3px);box-shadow:0 10px 32px #00000026}.toast-container{position:fixed;bottom:90px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:300px}@keyframes toast-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.toast{padding:12px 16px;border-radius:12px;font-size:14px;font-weight:600;line-height:1.4;box-shadow:0 4px 20px #0003;pointer-events:auto;animation:toast-in .25s ease;word-break:break-word}.toast-error{background:#ef4444;color:#fff}.toast-success{background:var(--teal);color:#fff}.toast-warn{background:#f59e0b;color:#fff}.toast-info{background:var(--near-black);color:#fff}.game-card-banner{display:none}.game-card-body{display:contents}.game-num{font-size:11px;font-weight:700;letter-spacing:.08em;opacity:.6;margin-bottom:10px;display:flex;align-items:center;gap:6px}.game-title{font-family:var(--font-display);font-size:22px;font-weight:800;margin-bottom:8px;color:var(--near-black)}.game-desc{font-size:13px;opacity:.75;line-height:1.5;margin-bottom:20px;flex:1}.game-play-btn{background:var(--near-black);color:#fff;border:none;padding:10px 22px;border-radius:999px;cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:700;display:inline-flex;align-items:center;align-self:flex-start}@keyframes badgeSlideUp{0%{opacity:0;transform:translate(-50%) translateY(20px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}
