@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/nunito-latin-500-normal-EugFkASW.woff2)format("woff2"),url(/assets/nunito-latin-500-normal-B5klmw3Q.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-900-normal-BVB1fGs6.woff2)format("woff2"),url(/assets/nunito-latin-900-normal-CVn49sIn.woff)format("woff")}:root{--bg-sky-gradient:linear-gradient(to bottom, #e0f2fe, #f8fafc);--path-gold:#fef08a;--btn-success-green:#22c55e;--text-primary-dark:#0f172a;--lol-z-layer-sky:-3;--lol-z-layer-ambient:-2;--lol-z-layer-path:-1;--lol-bg-sky:var(--bg-sky-gradient);--lol-ambient-opacity:.15;--lol-path-stroke:var(--path-gold);--lol-path-shadow-color:#fef08a66;--lol-ambient-filter:none}.dreamlyland-age-theme--adventure-valley{--lol-bg-sky:linear-gradient(180deg, #bae6fd 0%, #e0f2fe 42%, #f8fafc 100%);--lol-ambient-opacity:.15;--lol-path-stroke:#fef08a;--lol-path-shadow-color:#fef08a6b;--lol-ambient-filter:none}.dreamlyland-age-theme--cosmic-navigator{--lol-bg-sky:linear-gradient(165deg, #1e1b4b 0%, #0f172a 48%, #1e293b 100%);--lol-ambient-opacity:.12;--lol-path-stroke:#fbbf24;--lol-path-shadow-color:#fbbf2452;--lol-ambient-filter:saturate(.85)}.dreamlyland-bg-canvas{z-index:0;pointer-events:none;isolation:isolate;position:fixed;inset:0;overflow:hidden}.dreamlyland-bg-layer{position:absolute;inset:0}.dreamlyland-bg-layer--sky{z-index:var(--lol-z-layer-sky);background:var(--lol-bg-sky)}.dreamlyland-bg-layer--ambient{z-index:var(--lol-z-layer-ambient);opacity:var(--lol-ambient-opacity);filter:var(--lol-ambient-filter)}.dreamlyland-bg-ambient{color:#fff;width:clamp(120px,22vw,280px);height:auto;position:absolute}.dreamlyland-bg-ambient--cloud{color:#fff}.dreamlyland-age-theme--cosmic-navigator .dreamlyland-bg-ambient--cloud{display:none}.dreamlyland-bg-ambient--cloud-1{top:8%;left:-4%}.dreamlyland-bg-ambient--cloud-2{width:clamp(140px,26vw,320px);top:22%;right:-6%}.dreamlyland-bg-ambient--cloud-3{width:clamp(100px,18vw,220px);bottom:18%;left:12%}.dreamlyland-bg-ambient--stars{color:#fff;width:100%;height:100%;inset:0}.dreamlyland-age-theme--adventure-valley .dreamlyland-bg-star-node{animation:3.2s ease-in-out infinite dreamlyland-star-pulse}.dreamlyland-age-theme--cosmic-navigator .dreamlyland-bg-star-node{animation:none}.dreamlyland-bg-star-node{fill:currentColor}@keyframes dreamlyland-star-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}.dreamlyland-bg-layer--path{z-index:var(--lol-z-layer-path)}.dreamlyland-bg-path{width:100%;height:100%;position:absolute;inset:0}.dreamlyland-bg-path__curve-glow{fill:none;stroke:url(#lol-path-glow-gradient);stroke-width:clamp(22px,3.6vw,42px);stroke-linecap:round;stroke-linejoin:round;opacity:.35;filter:blur(10px)}.dreamlyland-bg-path__curve{fill:none;stroke:var(--lol-path-stroke);stroke-width:clamp(14px,2.4vw,28px);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 14px var(--lol-path-shadow-color))}.dreamlyland-bg-path__curve-shadow{fill:none;stroke:#0f172a14;stroke-width:clamp(18px,3vw,36px);stroke-linecap:round;transform:translateY(6px)}.dreamlyland-age-theme--cosmic-navigator .dreamlyland-bg-path__curve-shadow{stroke:#00000038}body.page-cover-bg .dreamlyland-bg-canvas,body.page-cover-bg .auth-hero{display:none}@media (width<=640px){.dreamlyland-bg-ambient--cloud-2{top:14%}.dreamlyland-bg-path__curve{stroke-width:12px}}@media (prefers-reduced-motion:reduce){.dreamlyland-age-theme--adventure-valley .dreamlyland-bg-star-node{animation:none}}:root{--bg-canvas:linear-gradient(135deg, #083344 0%, #004f58 40%, #0d9488 100%);--glass-panel:#ffffffa6;--glass-border:1px solid #fff6;--text-modern-gold:#fbbf24;--text-clean-dark:#0f172a;--glass-blur:blur(12px);--glass-shadow:0 20px 40px #00000026;--glass-glow:0 0 0 1px #ffffff59, 0 0 24px #0d948847;--glass-radius:20px;--glow-mint:#34d399;--glow-gold:#fbbf24;--cta-emerald-start:#10b981;--cta-teal-end:#0d9488}.glass-panel{border-radius:var(--glass-radius);-webkit-backdrop-filter:blur(12px);box-shadow:var(--glass-shadow);background:#ffffffa6;border:1px solid #fff6}.glass-panel--glow{box-shadow:var(--glass-glow), var(--glass-shadow)}.glass-panel--solid-readability{background:#ffffffb8;border:1px solid #ffffff8c}.dashboard-hub--modern{color:var(--text-clean-dark)}.app-shell-content:has(.dashboard-hub--modern){background:0 0}:is(body.page-cover-bg:has(.dashboard-hub--modern) .dreamlyland-bg-canvas,body.page-cover-bg:has(.dashboard-hub--modern) .auth-hero){display:none}.roadmap-glass-node.is-play-now .roadmap-glass-node__index{box-shadow:0 0 0 3px #34d3998c,0 0 18px #34d39973,inset 0 1px #ffffffe6}.roadmap-glass-node.is-locked .roadmap-glass-node__index,.roadmap-glass-node.is-premium-locked .roadmap-glass-node__index{opacity:.5;color:#0f172a8c;box-shadow:0 0 0 2px #ffffff59,inset 0 1px #ffffff80}.roadmap-glass-node__visual{aspect-ratio:4/3;-webkit-backdrop-filter:blur(8px);background:#ffffff59;border:1px solid #ffffff8c;border-radius:0;width:100%;position:relative;overflow:hidden;box-shadow:0 16px 32px #0000001f,0 0 0 1px #ffffff59,inset 0 1px #fff9}.roadmap-glass-node.is-locked .roadmap-glass-node__visual,.roadmap-glass-node.is-premium-locked .roadmap-glass-node__visual{filter:grayscale(.35)blur(.5px);opacity:.5}.roadmap-glass-node.is-locked,.roadmap-glass-node.is-premium-locked{opacity:.88}.roadmap-glass-node__progress{pointer-events:none;z-index:3;background:#ffffff8c;border:0;width:100%;height:4px;margin:0;padding:0;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.roadmap-glass-node__progress-fill{background:#e50914;max-width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;bottom:0;left:0}.roadmap-glass-node.is-play-now .roadmap-glass-node__visual-wrap .roadmap-glass-node__visual{box-shadow:0 0 0 2px #34d399bf,0 0 24px #34d39959,0 16px 32px #0000001f,inset 0 1px #ffffffa6}.roadmap-visual-svg{object-fit:cover;border-radius:0;width:100%;height:100%;display:block}.teaser-highlights{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0;display:grid}.teaser-highlight-card{border:var(--glass-border);text-align:center;background:#ffffff1f;border-radius:14px;padding:10px}.teaser-highlight-card__visual{background:linear-gradient(145deg,#ffffff4d,#00c4cc33);border-radius:12px;width:64px;height:64px;margin:0 auto 8px;overflow:hidden}.teaser-highlight-card__title{color:var(--text-clean-dark);margin:0;font-size:.72rem;font-weight:800}.teaser-highlight-card__title-en{color:#0f172a8c;margin:2px 0 0;font-size:.65rem}.ep-hero{background:#123226;border:2px solid #16a34a47;border-radius:26px;margin-bottom:22px;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 18px 40px #0f172a1f}.ep-hero__art .roadmap-glass-node__visual{aspect-ratio:16/9;box-shadow:none;border:none;border-radius:0}.ep-hero__body{z-index:1;background:linear-gradient(#0000 0%,#0a1812d1 58%);flex-wrap:nowrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;width:auto;min-width:0;padding:56px 22px 18px;display:flex;position:absolute;inset:auto 0 0}.ep-hero__copy{flex-direction:column;flex:auto;align-items:flex-start;gap:6px;min-width:0;display:flex}.ep-hero__actions{flex-direction:column;flex:none;align-items:flex-end;gap:10px;display:flex}.ep-hero__title{color:#fff;margin:0;font-size:1.7rem;font-weight:900;line-height:1.2}.ep-hero__title-en{color:#ffffffb8;margin-top:4px;font-size:.9rem;font-weight:600;display:block}.ep-hero__play{background:var(--ep-green-500);color:#fff;cursor:pointer;box-shadow:0 5px 0 var(--ep-green-700), 0 8px 0 #12201647;border:3px solid #fff6e4;border-radius:18px;justify-content:center;align-items:center;gap:8px;margin-top:0;padding:11px 20px 13px;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.ep-hero__play:hover{box-shadow:0 6px 0 var(--ep-green-700), 0 9px 0 #1220163d;transform:translateY(-1px)}.ep-hero__play:active{box-shadow:0 1px 0 var(--ep-green-700), 0 2px 0 #12201633;transform:translateY(4px)}.ep-hero__play-icon{flex-shrink:0;width:18px;height:18px;display:flex}.ep-hero__play-label{flex-direction:column;align-items:flex-start;line-height:1.1;display:flex}.ep-hero__play-zh{letter-spacing:.04em;font-size:1.18rem;font-weight:900}.ep-hero__play-en{opacity:.88;font-size:.68rem;font-weight:700}.ep-card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;display:grid}.ep-card{color:inherit;font:inherit;text-align:center;background:#ffffffe6;border:1px solid #0f172a14;border-radius:18px;flex-direction:column;gap:6px;padding:8px;transition:transform .12s,box-shadow .12s;display:flex}.ep-card__open{width:100%;color:inherit;font:inherit;text-align:center;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.ep-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #0f172a1f}.ep-card__art{border-radius:12px;display:block;position:relative;overflow:hidden}.ep-card__art .roadmap-glass-node__visual{aspect-ratio:4/3;box-shadow:none;border-radius:12px}.ep-card__index{color:#0f172a;background:#ffffffeb;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.76rem;font-weight:800;display:flex;position:absolute;top:5px;left:5px}.ep-card.is-completed{border-color:#16a34a59}.ep-card.is-progress{border-color:#3f7f4d73}.ep-card.is-current{border-color:#16a34a;box-shadow:0 0 0 2px #16a34a47}.ep-card__title{color:var(--text-clean-dark);font-size:.92rem;font-weight:800}.ep-card__jyutping{font-size:.68rem;font-weight:600}.ep-card--locked{cursor:pointer}.ep-card--locked .roadmap-glass-node__visual{filter:grayscale(.45)saturate(.85)brightness(.98)}.ep-card--locked:hover .roadmap-glass-node__visual,.ep-card--locked:focus-visible .roadmap-glass-node__visual{filter:none}.ep-card__art--sealed{aspect-ratio:4/3;background:linear-gradient(150deg,#fdf6e3,#f5e7c8);border:1px solid #a0782838;border-radius:12px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ep-card--locked .ep-card__title{color:#0f172a9e}.ep-card--locked .ep-card__jyutping{color:#5c3e08b8;font-weight:700}.ep-card__sealed-idiom{letter-spacing:.06em;text-align:center;color:#5c3e089e;padding:0 10px;font-size:1.12rem;font-weight:900}.ep-card__seal{background:#ffffffeb;border-radius:50%;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:1rem;line-height:1;display:flex;position:absolute;bottom:6px;right:6px;box-shadow:0 4px 10px #0f172a2e}@media (width<=760px){.teaser-highlights{grid-template-columns:1fr}.ep-hero{padding:0}.ep-hero__title{font-size:1.35rem}}@media (width<=520px){.ep-hero__body{flex-wrap:wrap;padding:40px 14px 14px}.ep-hero__actions{align-items:stretch;width:100%}.ep-hero__play{justify-content:center;width:100%}}:root{--bg:#f4fbf4;--surface:#fff;--surface-muted:#f7faf7;--border:#e2ebe2;--text:#1a2e1a;--text-muted:#5f6f5f;--primary:#2f8f4e;--primary-dark:#24703c;--primary-soft:#e8f7ec;--accent:#e8f3ff;--accent-strong:#3b82f6;--danger:#dc4c4c;--danger-soft:#fdecec;--warning:#d97706;--shadow:0 8px 24px #1a2e1a14;--radius:16px;--radius-sm:10px;--brand-nav-border:#9ed08e;--brand-nav-bg-hover:#e3f6dc;--brand-nav-shadow:#35782b24;--bg-sky-gradient:linear-gradient(to bottom, #e0f2fe, #f8fafc);--path-gold:#fef08a;--btn-success-green:#22c55e;--text-primary-dark:#0f172a}*{box-sizing:border-box}html{overflow-x:clip}body{color:var(--text);background:var(--bg);max-width:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;overflow-x:clip}.dreamlyland-protected{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.dreamlyland-protected input,.dreamlyland-protected textarea,.dreamlyland-protected [contenteditable=true]{-webkit-user-select:text;user-select:text}.dreamlyland-protected .admin-layout,.dreamlyland-protected .admin-layout *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}body.page-cover-bg{background-color:var(--bg);background-image:url(/main-background.png);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed}body.page-cover-bg:has(.auth-page){background-color:#f5f3ee;background-image:url(/landing-hero-illustration.png);background-position:100%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed}body.page-cover-bg .app-shell{z-index:1;position:relative}body.page-cover-bg .app-brand-bar,body.page-cover-bg .app-footer{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}body.page-cover-bg .app-header{background:var(--surface)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;width:100%;min-width:0;max-width:100%;min-height:100vh;display:flex;overflow-x:clip}.app-shell-content{flex-direction:column;flex:1;width:100%;min-width:0;max-width:100%;display:flex;overflow-x:clip}.app-brand-bar,.app-footer{background:#fff}.app-brand-bar{border-bottom:1px solid var(--border);max-width:100%;overflow-x:clip;box-shadow:0 2px 8px #0000000a}.app-brand-bar-inner,.app-footer-inner{width:min(1120px,100% - 32px);max-width:100%;margin:0 auto}.app-brand-bar-inner{box-sizing:border-box;grid-template-columns:1fr 1fr;align-items:center;gap:12px;min-height:52px;padding:10px 0;display:grid;position:relative}.app-brand-bar-start{z-index:1;grid-area:1/1;justify-self:start;align-items:center;gap:14px;min-width:0;display:flex}.app-brand-bar-greeting{align-items:center;gap:10px;min-width:0;max-width:100%;line-height:1.15;display:flex;overflow:hidden}.app-brand-bar-greeting__text{min-width:0;overflow:hidden}.app-brand-bar-greeting__text .dashboard-hub-greeting{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-brand-bar-greeting .dashboard-hub-greeting,.app-brand-bar-greeting .dashboard-hub-subgreeting{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-brand-bar-greeting .dashboard-hub-greeting{align-items:center;gap:8px;font-size:.95rem;display:flex}.app-brand-bar-greeting .dashboard-hub-greeting__name{text-overflow:ellipsis;min-width:0;overflow:hidden}.greeting-star-chip{color:#7a4b00;background:#fff6d6;border:2px solid #f5c542;border-radius:999px;flex-shrink:0;align-items:center;gap:3px;padding:1px 8px;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.greeting-star-chip .dl-icon{display:flex}.dashboard-greeting-line{display:none}@media (width<=600px){.app-brand-bar--child .app-brand-bar-greeting__text{display:none}.dashboard-greeting-line{color:#24344d;white-space:nowrap;align-items:center;gap:8px;min-width:0;margin:0 0 12px;font-size:1.05rem;font-weight:900;line-height:1.3;display:flex}.dashboard-greeting-line__text{text-overflow:ellipsis;min-width:0;overflow:hidden}}.app-brand-bar-greeting .dashboard-hub-subgreeting{margin-top:3px;font-size:.75rem;line-height:1.25}.app-brand-bar-start:empty{display:none}.app-brand-bar-center{z-index:0;pointer-events:none;grid-area:1/1/auto/-1;justify-content:center;place-self:center;align-items:center;line-height:0;display:flex}.app-brand-bar-title{color:var(--text-muted);white-space:nowrap;font-size:.95rem;font-weight:700}.app-brand-bar-nav,.app-brand-bar-end{z-index:1;grid-area:1/2;place-self:center end;min-width:0}.app-brand-bar-nav-wrap{z-index:2;grid-area:1/2;place-self:center end;align-items:center;gap:10px;min-width:0;display:flex}.app-brand-bar-actions{flex-shrink:0;align-items:center;display:flex}.app-brand-bar-nav{flex-shrink:0;justify-content:flex-end}.app-brand-bar-nav-mobile{display:none;position:relative}.app-brand-bar-menu-toggle{border:2px solid var(--brand-nav-border);color:#24344d;width:42px;height:42px;box-shadow:0 4px 12px var(--brand-nav-shadow);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background-color .12s,border-color .12s;display:inline-flex}.app-brand-bar-menu-toggle:hover,.app-brand-bar-menu-toggle[aria-expanded=true]{background:var(--brand-nav-bg-hover);border-color:var(--brand-nav-border)}.app-brand-bar-menu-icon{flex-direction:column;justify-content:center;gap:4px;width:18px;display:flex}.app-brand-bar-menu-icon span{background:currentColor;border-radius:999px;height:2px;display:block}.app-brand-bar-menu-panel{z-index:120;border:1px solid var(--border);min-width:min(240px,100vw - 32px);box-shadow:var(--shadow);background:#fff;border-radius:16px;flex-direction:column;align-items:stretch;gap:8px;padding:10px;position:absolute;top:calc(100% + 8px);right:0}.app-brand-bar-menu-panel a,.app-brand-bar-menu-panel button{white-space:normal;text-align:center;justify-content:center;width:100%}.app-brand-link{pointer-events:auto;flex-shrink:0;justify-content:center;align-items:center;line-height:0;text-decoration:none;display:inline-flex}.app-brand-link:hover{text-decoration:none}.app-logo{object-fit:contain;background:0 0;width:auto;max-width:100%;display:block}.app-logo--header{width:auto;height:40px;display:block}.app-logo--auth{height:78px;margin:0 auto}.app-footer{border-top:1px solid var(--border);margin-top:auto}.app-footer-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px 0;display:flex}.app-footer-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .55rem;margin:0;display:flex}.app-footer-sep{color:var(--text-muted);font-size:.85rem}.app-footer-links a{color:var(--text-muted);white-space:nowrap;font-size:.88rem;text-decoration:none}.app-footer-links a span[lang=en]{font-size:.85em}.app-footer-links a:hover{color:var(--primary-dark);text-decoration:underline}.app-footer-meta{color:var(--text-muted);opacity:.85;margin:0;font-size:.78rem}.app-footer-version{opacity:.75;margin-left:.45rem;font-size:.68rem}.app-footer--compact{padding:0}.app-footer--compact .app-footer-inner{gap:4px;padding:8px 0 10px}.app-footer--compact .app-footer-links a{font-size:.78rem}.app-footer--compact .app-footer-meta{font-size:.68rem}.app-header-inner,.page-wrap,.admin-layout{width:min(1120px,100% - 32px);margin:0 auto}.top-nav{flex-wrap:wrap;gap:8px;display:flex}.top-nav a,.btn{border-radius:var(--radius-sm);font:inherit;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 16px;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.top-nav a{background:var(--accent);color:var(--text);text-decoration:none}.top-nav button{background:var(--accent);color:var(--text);font:inherit;cursor:pointer;border:none;text-decoration:none}.top-nav a:hover,.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-ghost{color:var(--text-muted);background:0 0;border:1px solid #0000}.app-nav-link-label{flex-direction:column;align-items:center;gap:1px;line-height:1.15;display:inline-flex}.app-nav-link-label__main{font-size:inherit;font-weight:inherit;white-space:nowrap}.app-nav-link-label__short{display:none}.app-nav-link-label__en{opacity:.88;white-space:nowrap;font-size:.72em;font-weight:700;line-height:1.1}.top-nav.app-brand-bar-nav a,.top-nav.app-brand-bar-nav button{border:2px solid var(--brand-nav-border);color:#24344d;box-shadow:0 4px 12px var(--brand-nav-shadow);white-space:nowrap;cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.84rem;font-weight:800;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex;transform:none}.top-nav.app-brand-bar-nav a:hover,.top-nav.app-brand-bar-nav button:hover{background:var(--brand-nav-bg-hover);border-color:var(--brand-nav-border);text-decoration:none;transform:none}.top-nav.app-brand-bar-nav a.app-brand-bar-nav__text{box-shadow:none;color:#24344d;background:0 0;border-color:#0000}.top-nav.app-brand-bar-nav a.app-brand-bar-nav__text:hover{color:var(--primary-dark);background:0 0}.top-nav.app-brand-bar-nav a.app-brand-bar-nav__cta{background:var(--primary);color:#fff;box-shadow:none;border-color:#0000}.top-nav.app-brand-bar-nav a.app-brand-bar-nav__cta:hover{background:var(--primary-dark);color:#fff}.btn-block{width:100%}.auth-page,.route-fallback{flex:1;place-items:center;padding:32px 16px 48px;display:grid}.payment-result-card{-webkit-backdrop-filter:blur(12px);text-align:center;background:#ffffffe6;border-radius:24px;flex-direction:column;align-items:center;gap:.9rem;width:min(480px,100%);padding:2.25rem 1.75rem;display:flex;box-shadow:0 20px 40px #00000026}.payment-result-card__title{color:#1e3a5f;margin:0;font-size:1.3rem;font-weight:800;line-height:1.4}.payment-result-card__body{color:#334e68;margin:0;font-size:.95rem;line-height:1.6}.payment-result-card__install{color:#4a5d73;margin:0;font-size:.92rem;line-height:1.45}.payment-result-card__install-en{margin-top:.15rem;display:block}.payment-result-card__install-note{color:#66788f;margin-top:.45rem;font-size:.78rem;line-height:1.4;display:block}.legal-page{flex:1;width:min(1120px,100% - 32px);margin:0 auto;padding:32px 0 48px}.legal-card.panel{-webkit-backdrop-filter:blur(12px);background:#ffffffa6;border:1px solid #fff6;border-radius:24px;padding:clamp(24px,4vw,36px);box-shadow:0 20px 40px #00000026}.legal-card h1{margin-top:0}.legal-card p{color:var(--text-muted)}.legal-updated{margin-top:-4px;font-size:.92rem}.legal-section{margin-top:24px}.legal-section h2{color:var(--text);margin:0 0 10px;font-size:1.05rem}.legal-section ul{color:var(--text-muted);margin:0 0 12px;padding-left:1.25rem}.legal-section li+li{margin-top:6px}.auth-consent-checks{flex-direction:column;gap:10px;margin:0 0 16px;display:flex}.auth-consent-checks .auth-consent__check{margin-top:0}.auth-consent__check{cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px;margin-top:12px;font-size:.92rem;line-height:1.55;display:grid}.auth-consent__check:first-of-type{margin-top:0}.auth-consent__check input{width:18px;height:18px;accent-color:var(--green-600,#3d8f3a);cursor:pointer;margin-top:3px}.auth-consent__check a{color:var(--green-700,#2f6f2d);text-underline-offset:2px;font-weight:700;text-decoration:underline}.auth-consent__check a:hover{color:var(--green-800,#245824)}.auth-consent__check-text{display:block}.auth-subtitle{text-align:center;color:var(--text-muted);margin:0 0 24px}.field{margin-bottom:16px}.field label{margin-bottom:6px;font-size:.92rem;font-weight:600;display:block}.field-hint{color:var(--text-muted);margin:6px 0 0;font-size:.82rem}.field-label-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.field-name-count{color:var(--text-muted);font-size:.78rem;font-weight:700}.field-name-count--warn{color:#b45309}.field-name-count--full{color:#9b2e2e}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font:inherit;background:#fff;padding:12px 14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:2px solid #2f8f4e40}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.hint{color:var(--text-muted);margin-top:8px;font-size:.85rem}.ui-note{border-radius:var(--radius-sm);background:var(--primary-soft);color:#245f37;margin-top:18px;padding:12px 14px;font-size:.88rem}.dashboard-signup-banner{max-width:960px;margin:0 auto 16px}.cms-catalog-error-banner{margin:0 0 14px}.cms-catalog-error-banner__en{opacity:.9;margin-top:.2rem;font-size:.82rem;display:block}.error-boundary-page,.not-found-page{min-height:50vh}.error-boundary-card{-webkit-backdrop-filter:blur(12px);text-align:center;background:#ffffffe6;border-radius:24px;flex-direction:column;align-items:center;gap:.9rem;width:min(480px,100%);padding:2.25rem 1.75rem;display:flex;box-shadow:0 20px 40px #00000026}.error-boundary-card__title{color:#1e3a5f;margin:0;font-size:1.3rem;font-weight:800;line-height:1.4}.error-boundary-card__body{color:#334e68;margin:0;font-size:.95rem;line-height:1.6}.error-boundary-card__body-en{opacity:.85;margin-top:.35rem;font-size:.88rem;display:block}.error-boundary-card__actions{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:.35rem;display:flex}.not-found-card__code{color:#2f6f44;opacity:.35;margin:0;font-size:3rem;font-weight:900;line-height:1}.offline-banner{color:#664d03;background:#fff3cd;border-bottom:1px solid #ffecb5;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.offline-banner__text{margin:0;font-size:.88rem;line-height:1.4}.offline-banner__text-en{opacity:.9;font-size:.8rem;display:block}.offline-banner__dismiss{color:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.15rem .35rem;font-size:1rem;line-height:1}.gamification-widget__placeholder,.gamification-widget__error{color:#334e68;margin:0;padding:.5rem 0;font-size:.9rem}.gamification-widget__error{color:#9b2c2c}.gamification-widget__error-en{opacity:.9;margin-top:.2rem;font-size:.82rem;display:block}@keyframes auth-page-fadein{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-page--toki{flex-direction:column;flex:1;justify-content:center;align-items:center;width:min(1120px,100% - 32px);margin:0 auto;padding:48px 0 40px;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.auth-page--toki .auth-glass-card{animation:.45s cubic-bezier(.22,1,.36,1) both auth-page-fadein}@media (prefers-reduced-motion:reduce){.auth-page--toki .auth-glass-card{animation:none}}.auth-landing{justify-content:center;align-items:center;width:100%;display:flex}.auth-phone-wrap{align-items:stretch;width:min(520px,100%);min-height:0;margin-inline:auto;display:flex}.auth-phone{box-sizing:border-box;flex-direction:column;justify-content:center;width:100%;height:100%;min-height:0;display:flex;position:relative}.auth-page--signup{justify-content:flex-start;padding-top:24px;padding-bottom:32px}.auth-phone-wrap--signup{width:min(540px,96vw)}.auth-phone-screen--signup{border-radius:28px;height:auto;max-height:none;overflow:visible}.auth-glass-card--signup-wide{border-radius:28px}.auth-glass-card--signup-wide h1{text-align:center;width:100%;margin-bottom:4px;font-size:1.4rem}.auth-glass-card--signup-wide .auth-subtitle{opacity:.85;text-align:center;width:100%;margin-bottom:16px;font-size:.9rem}.auth-glass-card,.landing-card{z-index:1;isolation:isolate;box-sizing:border-box;-webkit-backdrop-filter:blur(40px)saturate(180%);background:#ffffff85;border:1px solid #ffffffb8;position:relative;overflow:hidden;box-shadow:0 12px 40px #0f172a1a,inset 0 1px #ffffffe6,inset 0 -1px #0f172a0a}.auth-glass-card{border-radius:28px;width:100%;padding:28px 22px 20px}.auth-glass-card:before,.landing-card:before{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(165deg,#ffffff8c 0%,#ffffff1f 38%,#fff0 62%);position:absolute;inset:0}.auth-glass-card:after,.landing-card:after{content:"";border-radius:inherit;pointer-events:none;z-index:0;border:1px solid #ffffff59;position:absolute;inset:1px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.auth-glass-card,.landing-card{background:#ffffffeb}.field--toki input{background:#fffffff2}}.auth-glass-text,.auth-glass-card .auth-phone-welcome__title>span:first-child,.auth-glass-card .auth-phone-welcome__divider,.auth-glass-card .auth-phone-welcome__en,.auth-glass-card .auth-phone-welcome__subtitle,.auth-glass-card .auth-phone-welcome__subtitle-en,.auth-glass-card .auth-phone-footer a,.auth-glass-card .field--toki label{color:#1c1c1e;text-shadow:none}.auth-glass-card .auth-phone-welcome__en,.auth-glass-card .auth-phone-welcome__subtitle,.auth-glass-card .auth-phone-welcome__subtitle-en{color:#3a3a3c}.auth-glass-card .auth-phone-footer a{color:#007aff}@media (prefers-reduced-motion:reduce){.auth-glass-card:before,.btn-toki-login .btn-spinner{animation:none}}.auth-phone-screen{box-sizing:border-box;flex-direction:column;flex:1;justify-content:center;width:100%;min-height:0;padding:16px;display:flex;position:relative}.auth-phone-form{z-index:2;position:relative}.auth-phone-welcome{text-align:center;margin:0 0 20px}.auth-phone-welcome__title{letter-spacing:.02em;margin:0 0 6px;font-size:1.45rem;font-weight:700;line-height:1.3}.auth-phone-welcome__title>span:first-child{font-weight:700;display:inline-block}.auth-phone-welcome__divider{margin:0 .28em;font-weight:600;display:inline-block}.auth-phone-welcome__en{letter-spacing:.04em;font-size:.9em;font-weight:600;display:inline-block}.auth-phone-welcome__subtitle{letter-spacing:.03em;margin:0;font-size:.82rem;font-weight:600;line-height:1.5}.auth-phone-welcome__subtitle-en{letter-spacing:.02em;margin-top:3px;font-size:.94em;font-weight:500;display:block}.field--toki{margin-bottom:12px}.field--toki label{margin-bottom:6px;font-size:.82rem;font-weight:800;display:block}.field--toki input{-webkit-backdrop-filter:blur(20px)saturate(150%);color:#1c1c1e;background:#ffffff9e;border:1px solid #00000014;border-radius:14px;width:100%;padding:13px 18px;font-family:inherit;font-weight:600;box-shadow:inset 0 1px #fffc,0 1px 2px #0f172a0a}.field--toki input:focus{background:#ffffffc7;border-color:#007aff73;outline:none;box-shadow:0 0 0 3px #007aff2e,inset 0 1px #ffffffe6}.field--toki input::placeholder{color:#8e8e93;font-weight:500}.field--toki select{-webkit-backdrop-filter:blur(20px)saturate(150%);color:#1c1c1e;appearance:auto;background:#ffffff9e;border:1px solid #00000014;border-radius:14px;width:100%;padding:13px 18px;font-family:inherit;font-weight:600;box-shadow:inset 0 1px #fffc,0 1px 2px #0f172a0a}.ui-note--toki{color:#b42318;text-align:center;background:#ffececf2;border-radius:16px;margin-top:10px;margin-bottom:4px;padding:10px 14px;font-weight:700;line-height:1.45}.ui-note--success{color:#065f46;background:#d1fae5f2}.form-validity-alert{color:#b42318;background:#ffececf2;border-radius:12px;margin:0;padding:8px 12px;font-size:.92rem;font-weight:700;line-height:1.4}.form-validity-alert[hidden]{display:none}.toast-stack{z-index:9999;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;top:66px;left:50%;transform:translate(-50%)}.toast{-webkit-backdrop-filter:blur(12px);color:#fff;text-align:center;background:#1e1e28ed;border:1px solid #ffffff24;border-radius:16px;flex-direction:column;align-items:center;gap:4px;min-width:260px;max-width:420px;padding:16px 32px;animation:.35s cubic-bezier(.22,1,.36,1) both toast-in,.3s 4.2s both toast-out;display:flex;box-shadow:0 10px 32px #00000047}.toast__text{font-size:1.05rem;font-weight:700;line-height:1.3}.toast__sub{opacity:.72;font-size:.88rem;line-height:1.3}.toast__count{vertical-align:middle;background:#ffffff2e;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.8rem;font-weight:700}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.96)}}.logout-curtain{z-index:99999;-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:all;background:#fff0;animation:.6s cubic-bezier(.4,0,.2,1) forwards logout-curtain-in;position:fixed;inset:0}@keyframes logout-curtain-in{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur();background:#fff0}to{opacity:1;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#ffffffb8}}.auth-phone-actions{flex-direction:column;gap:16px;margin-top:14px;display:flex}.auth-phone-actions .btn-toki{width:100%}.btn-toki{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;width:100%;min-height:52px;padding:0 18px;font-family:inherit;font-size:1rem;font-weight:900;text-decoration:none;display:inline-flex}.btn-toki-login{color:#1c1c1e;letter-spacing:.04em;text-transform:none;-webkit-backdrop-filter:blur(12px);background:#ffffffe0;border:1px solid #ffffffe6;box-shadow:0 4px 14px #0f172a1a,inset 0 1px #fffffff2}.btn-toki-login:hover{background:#fffffff5}.btn-toki-login:disabled{opacity:.75;cursor:not-allowed}.btn-toki-login .btn-spinner{border:2.5px solid #3d3d5c40;border-top-color:#3d3d5c;border-radius:50%;width:1.1rem;height:1.1rem;margin-right:.5rem;animation:.7s linear infinite btn-spinner-spin}@keyframes btn-spinner-spin{to{transform:rotate(360deg)}}.auth-phone-footer{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:16px;margin:16px 0 0;font-size:.88rem;font-weight:700;display:flex;position:relative}.auth-phone-footer a{letter-spacing:.04em;text-underline-offset:4px;font-weight:600;text-decoration:underline;transition:opacity .2s}.auth-phone-footer a:hover{opacity:.85}@media (width<=900px){.auth-landing{align-items:center}.auth-phone-wrap,.auth-phone{height:auto;min-height:0}}@media (width<=480px){.auth-page--toki{width:calc(100% - 20px);padding-top:12px}.auth-phone-screen{padding-inline:12px}.auth-glass-card,.auth-glass-card--landing{padding-inline:18px}.auth-phone-welcome__title{flex-direction:column;align-items:center;gap:2px;display:flex}.auth-phone-welcome__divider{display:none}.auth-phone-welcome__en{font-size:.95rem}.auth-phone-footer a{overflow-wrap:break-word;max-width:100%}}.admin-shell{grid-template-columns:240px 1fr;gap:20px;min-height:calc(100vh - 72px);padding:24px 0 40px;display:grid}.admin-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:fit-content;padding:18px;position:sticky;top:16px}.admin-sidebar h2{margin:0 0 14px;font-size:1rem}.admin-menu{gap:6px;display:grid}.admin-menu button{text-align:left;border-radius:var(--radius-sm);width:100%;font:inherit;cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.admin-menu__icon-wrap{width:18px;height:18px;color:inherit;flex-shrink:0;margin-top:2px;display:inline-flex}.admin-menu__icon{width:18px;height:18px;display:block}.admin-menu__label{flex-direction:column;gap:2px;min-width:0;line-height:1.25;display:flex}.admin-menu__label-en{font-weight:600}.admin-menu__label-zh{opacity:.85;font-size:.82em}.admin-menu button.active,.admin-menu button:hover{background:var(--primary-soft);color:var(--primary-dark)}.admin-main{gap:20px;display:grid}.admin-panel.active{display:block}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.admin-input{min-height:var(--admin-control-h,34px);border-radius:var(--admin-radius-sm,8px);color:#0f172a;box-sizing:border-box;background:#fff;border:1px solid #00000026;outline:none;padding:6px 10px;font-size:.86rem}.admin-input:focus{border-color:#10b981;box-shadow:0 0 0 2px #10b9812e}.admin-scene-tester{flex-direction:column;gap:12px;width:100%;max-width:none;display:flex}.admin-scene-tester__controls{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 12px;max-width:none;display:grid}.admin-scene-tester__actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;display:flex}.admin-scene-tester__stage{background:#fff;border:1px solid #0f172a1a;border-radius:12px;min-height:min(62vh,680px);max-height:min(82vh,920px);margin-top:4px;padding:12px;overflow:auto}.admin-scene-tester__stage-label{color:#64748b;margin:0 0 8px;font-size:.85rem;font-weight:700}.admin-scene-tester__listen .ep-scene-stage--theatre,.admin-scene-tester__listen .ep-scene-stage--split{flex:auto;min-height:min(56vh,600px)}.admin-scene-tester__listen .ep-scene-theatre{flex:auto;min-height:min(52vh,560px)}.admin-scene-tester__listen .ep-scene-theatre__dock{position:relative}.admin-scene-tester__row{flex-direction:column;gap:6px;display:flex}.admin-scene-tester__label{color:#475569;font-size:.82rem;font-weight:700}.admin-scene-tester__range{color:#94a3b8;font-weight:400}.admin-scene-tester__scene-wrap{align-items:center;gap:12px;display:flex}.admin-scene-tester__launch{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981,#0d9488);border:none;border-radius:10px;align-self:flex-start;padding:10px 24px;font-size:.9rem;font-weight:700;transition:opacity .15s}.admin-scene-tester__launch:hover{opacity:.88}.admin-mini-game-tester{flex-direction:column;gap:12px;display:flex}.admin-cms-panel--mini-game-tester{padding:14px 16px}.admin-cms-panel--mini-game-tester>.admin-cms-panel__head,.admin-mini-game-tester__head{align-items:center;margin-bottom:10px}.admin-cms-panel--mini-game-tester .admin-cms-panel__head h2{margin:0;font-size:1.12rem}.admin-cms-panel--mini-game-tester .admin-cms-panel__subtitle{margin-top:2px;font-size:.8rem}.admin-mini-game-tester__reset{flex-shrink:0;min-height:34px;padding:0 12px;font-size:.82rem}.admin-mini-game-tester__toolbar{background:#fff;border:1px solid #0f172a1a;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(160px,.9fr);align-items:end;gap:10px 12px;padding:10px 12px;display:grid}.admin-mini-game-tester__field{flex-direction:column;gap:4px;min-width:0;display:flex}.admin-mini-game-tester__field-label{letter-spacing:.02em;color:#64748b;font-size:.72rem;font-weight:700}.admin-mini-game-tester__field .admin-input{width:100%;min-height:36px;padding:6px 10px;font-size:.88rem}.admin-mini-game-tester__idiom{background:#f0fdfa;border:1px solid #0d948838;border-radius:8px;flex-direction:column;justify-content:center;gap:1px;min-width:0;min-height:36px;padding:4px 10px;display:flex}.admin-mini-game-tester__idiom-kicker{color:#0f766e;letter-spacing:.02em;font-size:.68rem;font-weight:700}.admin-mini-game-tester__idiom-zh{color:#0f172a;font-size:1rem;font-weight:800;line-height:1.2}.admin-mini-game-tester__idiom-jyut{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:600;line-height:1.2;overflow:hidden}.admin-mini-game-tester__tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:10px;padding:0;display:grid}.admin-mini-game-tester__tabs--5{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-mini-game-tester__tab{cursor:pointer;color:#475569;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;min-width:0;min-height:44px;padding:6px 8px;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:flex}.admin-mini-game-tester__tab:hover{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}.admin-mini-game-tester__tab.is-active{color:#fff;background:#0f766e;border-color:#0f766e;box-shadow:0 4px 12px #0f766e38}.admin-mini-game-tester__tab-icon{flex-shrink:0;font-size:1rem;line-height:1}.admin-mini-game-tester__tab-text{flex-direction:column;gap:1px;min-width:0;display:flex}.admin-mini-game-tester__tab-zh{font-size:.86rem;font-weight:800;line-height:1.2}.admin-mini-game-tester__tab-en{opacity:.78;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:600;line-height:1.2;overflow:hidden}.admin-mini-game-tester__tab.is-active .admin-mini-game-tester__tab-en{opacity:.9}.admin-mini-game-tester__controls{background:#fff;border:1px solid #0f172a14;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:8px 10px;display:flex}.admin-mini-game-tester__control-group{align-items:center;gap:8px;min-width:0;display:flex}.admin-mini-game-tester__control-btns{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-mini-game-tester__controls-label{color:#64748b;letter-spacing:.02em;text-transform:none;flex-shrink:0;margin-right:0;font-size:.72rem;font-weight:700}.admin-mini-game-tester__difficulty-btn{color:#475569;cursor:pointer;background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:8px;width:30px;height:30px;font-size:.82rem;font-weight:800;transition:background .12s,border-color .12s,color .12s}.admin-mini-game-tester__difficulty-btn:hover{color:#0d9488;border-color:#0d9488}.admin-mini-game-tester__difficulty-btn.is-active{color:#fff;background:#0d9488;border-color:#0d9488}.admin-mini-game-tester__char-btn{cursor:pointer;color:#334155;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-size:1rem;font-weight:700;transition:all .15s;display:inline-flex}.admin-mini-game-tester__char-btn:hover{background:#f8fafc;border-color:#94a3b8}.admin-mini-game-tester__char-btn.is-active{color:#fff;background:#0d9488;border-color:#0d9488}.admin-mini-game-tester__char-btn-index{opacity:.75;font-size:.68rem;font-weight:600}.admin-mini-game-tester__loading{margin:0}.admin-mini-game-tester__stage{background:#fff;border:1px solid #0f172a14;border-radius:12px;padding:12px}@media (width<=900px){.admin-mini-game-tester__toolbar{grid-template-columns:1fr 1fr}.admin-mini-game-tester__idiom{grid-column:1/-1}.admin-mini-game-tester__tabs,.admin-mini-game-tester__tabs--4,.admin-mini-game-tester__tabs--5,.admin-mini-game-tester__tabs--6{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.admin-mini-game-tester__toolbar,.admin-mini-game-tester__tabs,.admin-mini-game-tester__tabs--4,.admin-mini-game-tester__tabs--5,.admin-mini-game-tester__tabs--6{grid-template-columns:1fr}}.stat-card,.panel,.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.stat-card strong{margin-top:6px;font-size:1.6rem;display:block}.stat-card span{color:var(--text-muted);font-size:.92rem}.stat-card--stack .stat-card__list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.stat-card--stack .stat-card__list li{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.stat-card--stack .stat-card__list span{font-size:.82rem;line-height:1.3}.stat-card--stack .stat-card__list strong{flex-shrink:0;margin-top:0;font-size:1.15rem}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.toolbar input,.toolbar select{border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:#fff;padding:10px 12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.94rem}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 10px}th{color:var(--text-muted);font-size:.85rem;font-weight:600}.badge{border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-block}.badge.success{background:var(--primary-soft);color:var(--primary-dark)}.badge.warning{color:var(--warning);background:#fff4e5}.badge.muted{color:var(--text-muted);background:#f1f3f1}@media (width<=900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static}.stats-grid,.field-row{grid-template-columns:1fr}.app-brand-bar-inner{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:0 8px;min-height:0;padding:6px 0 4px}.app-brand-bar-center{pointer-events:auto;grid-area:1/2;place-self:center;line-height:0}.app-brand-bar-start{grid-area:1/1;justify-self:start}.app-brand-bar-greeting .dashboard-hub-greeting{font-size:.88rem}.app-brand-bar-greeting .dashboard-hub-subgreeting{margin-top:3px;font-size:.75rem;line-height:1.25}@media (width<=520px){.app-brand-bar-greeting .dashboard-hub-subgreeting{display:none}}.app-brand-bar-nav-wrap{z-index:2;grid-area:1/3;place-self:center end}.app-brand-bar-nav--inline{display:none}.app-brand-bar-nav-wrap--inline-always .app-brand-bar-nav--inline{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.app-brand-bar-nav-wrap--inline-always .app-brand-bar-nav-mobile,.app-brand-bar-actions{display:none}.app-brand-bar--child .app-brand-bar-actions{align-items:center;display:flex}.app-brand-bar--child .app-brand-bar-nav-mobile{display:none}.app-brand-bar-nav-mobile{display:block}.app-brand-bar-end{display:none}}@media (width<=600px){.app-nav-link-label__short{display:inline}.app-nav-link-label__main:has(.app-nav-link-label__short) .app-nav-link-label__full{display:none}.app-brand-bar-inner:has(.app-brand-bar-nav-wrap--inline-always){grid-template-columns:minmax(0,auto) minmax(0,1fr);column-gap:8px}.app-brand-bar-inner:has(.app-brand-bar-nav-wrap--inline-always) .app-brand-bar-center{grid-area:1/1;justify-self:start}.app-brand-bar-inner:has(.app-brand-bar-nav-wrap--inline-always) .app-brand-bar-nav-wrap{grid-area:1/2;justify-self:end;min-width:0}.app-brand-bar-nav-wrap--inline-always .app-brand-bar-nav--inline a,.app-brand-bar-nav-wrap--inline-always .app-brand-bar-nav--inline button{padding:4px 8px;font-size:.78rem}}@media (width<=520px){.app-footer-links{row-gap:4px}}.app-shell-content:has(.dashboard-hub){background:0 0;flex:1;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:visible}.app-shell:has(.dashboard-hub){overflow-x:visible}body.page-cover-bg .app-shell-content:has(.dashboard-hub){background:0 0}.dashboard-hub{width:min(1240px,100% - 24px);max-width:100%;margin:0 auto;padding:16px 0 0;overflow-x:visible}.dashboard-hub-shell{box-shadow:none;background:0 0;border:none;border-radius:34px;padding:22px;overflow-x:visible}@media (width<=900px){.dashboard-hub{width:100%;padding:8px 8px 0}.dashboard-hub-shell{padding:8px}}@media (width<=600px){.dashboard-hub{width:100%;padding:12px 12px 0}.dashboard-hub-shell{padding:0}.dashboard-hub-layout{gap:16px}.dashboard-hub-support{gap:16px;margin-top:16px}.dashboard-panel--episodes-nf .nf-episodes{gap:16px}.nf-episodes__season{margin-top:0}.ep-hero{margin-inline:0;margin-bottom:0}:is(.app-shell:has(.dashboard-hub) .app-footer-inner,.app-shell:has(.dashboard-hub) .app-brand-bar-inner){width:calc(100% - 24px)}}.dashboard-hub-greeting{color:#24344d;margin:0;font-size:1.15rem;font-weight:900}.dashboard-hub-subgreeting{color:#66788f;margin:0;font-size:.88rem;font-weight:700}.auth-hero--night~.app-shell .dashboard-hub-greeting,.auth-hero--night~.app-shell .dashboard-hub-subgreeting{color:#fff;text-shadow:0 1px 2px #0009,0 2px 8px #00000059}.auth-hero--night~.app-shell .dashboard-hub-subgreeting{color:#ffffffe0}.dashboard-hub-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.dashboard-hub-play{min-width:0}.dashboard-hub-support{gap:16px;margin-top:24px;display:grid}@media (width>=900px){.dashboard-hub-support{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.dashboard-hub-support>.dashboard-panel--gamification,.dashboard-hub-support>.dashboard-panel--sticker-tree{height:100%;min-height:100%}}.lol-parent-settings__report-link{color:#2f6b3f;margin-top:10px;font-size:.86rem;font-weight:700;display:inline-block}.lol-parent-settings__coop-hint{color:#1e3a5f;width:100%;font:inherit;text-align:left;cursor:pointer;background:#f3fbf6;border:1.5px dashed #9ad5ae;border-radius:12px;flex-direction:column;margin:8px 0 0;padding:8px 10px;font-size:.82rem;font-weight:700;line-height:1.3;display:flex}.lol-parent-settings__coop-hint:hover,.lol-parent-settings__coop-hint:focus-visible{background:#e9f7ee;border-style:solid}.lol-parent-settings__coop-hint span{color:#66788f;font-size:.72rem;font-weight:600}.lol-parent-settings__sheet-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.lol-parent-settings__sheet-actions{flex:none;align-items:stretch;gap:6px;margin-left:auto;display:flex}.lol-parent-settings__sheet-link{color:#2f6b3f;text-align:center;white-space:nowrap;background:#3f7f4d14;border:2px solid #cfe3d8;border-radius:12px;flex-direction:column;flex:none;justify-content:center;min-height:44px;padding:6px 10px;font-size:.78rem;font-weight:700;text-decoration:none;display:flex}.lol-parent-settings__sheet-link-en{color:#0f172a73;font-size:.7rem;font-weight:600}.lol-parent-settings__coop{flex-wrap:wrap;gap:6px;margin:6px 0 12px;display:flex}.lol-parent-settings__coop-btn{color:#1e3a5f;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1.5px solid #cfe3df;border-radius:10px;flex-direction:column;flex:160px;gap:1px;padding:7px 10px;font-size:.82rem;font-weight:700;display:flex}.lol-parent-settings__coop-btn:hover:not(:disabled){background:#f2fbf9;border-color:#0d9488}.lol-parent-settings__coop-btn:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__coop-btn:disabled{color:#0f766e;cursor:default;background:#eefaf6;border-color:#b8e0d5}.lol-parent-settings__coop-btn-en{color:#66788f;font-size:.7rem;font-weight:600}.lol-parent-settings__coop-btn:disabled .lol-parent-settings__coop-btn-en{color:#0f766e}.lol-parent-settings__coop-reward{color:#b45309;margin-top:2px;font-size:.75rem;font-weight:800}.lol-parent-settings__coop-btn:disabled .lol-parent-settings__coop-reward{color:#0f766e}.lol-parent-settings__coop-msg{color:#0f766e;flex:100%;margin:2px 0 0;font-size:.8rem;font-weight:700;line-height:1.35}.lol-parent-settings__coop-msg--err{color:#b42318}.kid-progress__gift{color:#7a4b00;background:#fff8e4;border:1.5px solid #f5c542;border-radius:14px;flex-direction:column;flex:100%;margin:4px 0 0;padding:8px 12px;font-size:.88rem;font-weight:800;line-height:1.3;display:flex}.kid-progress__gift span{font-size:.72rem;font-weight:600}.who-playing__panel{text-align:center;width:min(92vw,28rem)}.who-playing__title{margin:0 0 16px;font-size:1.35rem}.who-playing__title-en{color:#0f172a80;margin-top:4px;font-size:.9rem;font-weight:600;display:block}.who-playing__list{gap:10px;display:grid}.who-playing__chip{font:inherit;cursor:pointer;background:#fff;border:1px solid #0f172a1a;border-radius:16px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.who-playing__name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:1.1rem;font-weight:800;overflow:hidden}.who-playing__meta{color:#0f172a80;font-size:.78rem}.logout-confirm{text-align:left;width:min(92vw,22rem)}.logout-confirm__actions{gap:10px;display:grid}.logout-confirm__btn{min-height:52px;font:inherit;cursor:pointer;text-align:center;border:2px solid #0000;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:12px 14px;display:flex}.logout-confirm__zh{font-size:1.05rem;font-weight:800;line-height:1.2}.logout-confirm__en{font-size:.78rem;font-weight:600;line-height:1.2}.logout-confirm__btn--stay{color:#1a5c32;background:#e8f7ec;border-color:#9ed08e}.logout-confirm__btn--stay .logout-confirm__en{color:#2f6b3f}.logout-confirm__btn--stay:hover{background:#d8f3df}.logout-confirm__btn--leave{color:#9b2e2e;background:#fdecec;border-color:#f0b4b4}.logout-confirm__btn--leave .logout-confirm__en{color:#b42318}.logout-confirm__btn--leave:hover{background:#fbdada}.dashboard-parent-strip{background:#ffffffb8;border:1px solid #0f172a14;border-radius:18px;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 16px;display:flex}.dashboard-parent-strip__who{color:#0f172ab8;font-size:.85rem;font-weight:700}.dashboard-parent-strip__link{color:#3f5d8a;font-size:.82rem;font-weight:700;text-decoration:none}.dashboard-parent-strip__link:hover{text-decoration:underline}.dashboard-parent-details{margin-left:auto}.dashboard-parent-details__summary{cursor:pointer;color:#3f5d8a;font-size:.82rem;font-weight:700}.dashboard-parent-details__body{gap:10px;min-width:min(280px,80vw);margin-top:10px;display:grid}.dashboard-parent-details__note{color:#0f172ab3;margin:0;font-size:.8rem;font-weight:600}.dashboard-hub-episodes.ep-summary{grid-template-columns:unset;box-sizing:border-box;-webkit-backdrop-filter:none;width:100%;min-width:0;max-width:100%;box-shadow:none;background:0 0;border:none;border-radius:0;align-items:stretch;gap:0;margin-top:0;padding:0;display:block;overflow:visible}.dashboard-hub-bottom.ep-summary{grid-template-columns:unset;box-sizing:border-box;background:#fff;border:2px solid #d4c088;border-radius:28px;align-items:stretch;gap:0;width:100%;max-width:100%;margin-top:40px;margin-left:0;margin-right:0;padding:24px clamp(18px,4vw,28px) 32px;display:block;overflow:hidden;box-shadow:0 12px 28px #5c3e0829}.dashboard-panel{background:#fff;border:2px solid #d4c088;border-radius:24px;padding:18px;box-shadow:0 12px 28px #5c3e0829}.dashboard-panel h2{color:#24344d;margin:0;font-size:1.05rem;font-weight:900}.dashboard-panel .nf-episodes__season-title{color:#141414;font-size:1.2rem;font-weight:800}.dashboard-parent-settings-btn{border:2px solid var(--brand-nav-border);color:#24344d;font:inherit;white-space:nowrap;box-shadow:0 4px 12px var(--brand-nav-shadow);cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.84rem;font-weight:800;line-height:1.15;transition:background-color .12s,border-color .12s;display:inline-flex}.dashboard-parent-settings-btn:hover{background:var(--brand-nav-bg-hover);border-color:var(--brand-nav-border)}.dashboard-parent-settings-btn__icon{font-size:1rem;line-height:1}.dashboard-parent-badge{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;margin:0;padding:0;display:flex}.dashboard-parent-badge__icon{background:#fff8e8;border:3px solid #20a95b;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:relative;overflow:hidden}.dashboard-parent-badge__photo{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.dashboard-parent-badge__photo[hidden]{display:none}.dashboard-parent-badge__icon:has(.dashboard-parent-badge__photo:not([hidden])) .dashboard-parent-badge__svg{display:none}.dashboard-parent-badge__svg{width:100%;height:100%;display:block}.dashboard-parent-badge__caption{color:#1a7f45;font-size:.62rem;font-weight:800;line-height:1}.lol-modal-panel.lol-parent-settings__panel{gap:.75rem;width:min(92vw,40rem);max-height:min(85dvh,100svh);overflow:hidden}.lol-parent-settings__tabs{flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid;overflow-x:hidden}.lol-parent-settings__tab{color:#1e3a5f;min-height:44px;max-height:48px;font:inherit;cursor:pointer;background:#fff;border:2px solid #cfe3df;border-radius:999px;flex-flow:wrap;justify-content:center;align-items:center;gap:0 .28em;min-width:0;padding:4px 3px;font-size:.78rem;font-weight:800;line-height:1.15;display:flex}.lol-parent-settings__tab-zh,.lol-parent-settings__tab-en{min-width:0}.lol-parent-settings__tab-en{color:#66788f;font-size:.68rem;font-weight:600}.lol-parent-settings__tab.is-active{color:#1f6b42;background:#eefaf3;border-color:#2f6b3f}.lol-parent-settings__tab:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__body{overscroll-behavior:contain;flex:auto;gap:12px;min-height:0;display:grid;overflow-y:auto}.lol-parent-settings__status{color:#24344d;margin:0 0 10px;font-size:.92rem;font-weight:700;line-height:1.4}.lol-parent-settings__status-en{color:#66788f;margin-top:2px;font-size:.76rem;font-weight:600;display:block}.lol-parent-settings__sheet-row{border-bottom:1px solid #24344d14;gap:6px;padding:8px 0;display:grid}.lol-parent-settings__sheet-main{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.lol-parent-settings__sheet-title{color:#24344d;flex:auto;min-width:0;margin:0;font-size:.86rem;font-weight:800;line-height:1.3}.lol-parent-settings__sheet-title-en{color:#0f172a73;font-size:.7rem;font-weight:600;display:block}.lol-parent-settings__locked-btn,.lol-parent-settings__check-toggle{color:#1e3a5f;min-width:44px;min-height:44px;font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border:2px solid #cfe3df;border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;padding:6px 10px;font-size:.78rem;font-weight:800;display:flex}.lol-parent-settings__check-toggle[aria-expanded=true]{color:#2f6b3f;background:#3f7f4d14;border-color:#2f6b3f}.lol-parent-settings__locked-btn-en,.lol-parent-settings__check-toggle-en,.lol-parent-settings__btn-en,.lol-parent-settings__field-en{color:#66788f;font-size:.68rem;font-weight:600;display:block}.lol-parent-settings__unlock-btn{flex-direction:column;align-items:center;min-height:44px;margin-top:12px;display:flex}.lol-parent-settings__payment-facts{gap:.5rem 1rem;margin:.5rem 0 0;display:grid}@media (width>=640px){.lol-parent-settings__payment-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}.lol-parent-settings__payment-fact{gap:.2rem;display:grid}.lol-parent-settings__payment-fact dt{color:#24344d;margin:0;font-size:.82rem;font-weight:800}.lol-parent-settings__payment-fact dd{color:#334155;word-break:break-word;margin:0;font-size:.9rem;font-weight:700}.lol-parent-settings__payment-ref{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;font-weight:600}.lol-parent-settings__unlock-btn .lol-parent-settings__btn-en,.lol-modal-btn--primary .lol-parent-settings__btn-en{color:#fff}.lol-parent-settings__children-tab{gap:8px;display:grid}.lol-parent-settings__children-head{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.lol-parent-settings__children-title{color:#24344d;flex-direction:column;align-items:flex-start;gap:1px;margin:0;font-size:.95rem;font-weight:800;line-height:1.2;display:flex}.lol-parent-settings__children-title-en{color:#66788f;font-size:.72rem;font-weight:600}.lol-parent-settings__children-count{color:#2f6b3f;margin:0 auto 0 0;font-size:.82rem;font-weight:800}.lol-parent-settings__child-add-btn{color:#1f6b42;height:44px;min-height:44px;font:inherit;cursor:pointer;background:#fff;border:2px solid #2f6b3f;border-radius:12px;flex-direction:row;justify-content:center;align-items:center;gap:6px;width:auto;padding:0 12px;font-size:.88rem;font-weight:800;display:inline-flex}.lol-parent-settings__child-add-btn .lol-parent-settings__btn-en{color:#3d7a52;font-size:.72rem;font-weight:700}.lol-parent-settings__child-add-btn:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__children-limit{margin:0 0 0 auto}.lol-parent-settings__child-add-panel{margin:0}.lol-parent-settings__child-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lol-parent-settings__child-row{background:#fff;border:1px solid #24344d1f;border-radius:12px;align-content:center;gap:8px;min-height:64px;padding:8px 10px;display:grid}.lol-parent-settings__child-main{align-items:center;gap:10px;min-width:0;display:flex}.lol-parent-settings__child-avatar{color:#fff;border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:800;line-height:1;display:inline-flex}.lol-parent-settings__child-meta{flex:auto;min-width:0}.lol-parent-settings__child-name-row{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.lol-parent-settings__child-name{text-overflow:ellipsis;white-space:nowrap;color:#1e3a5f;min-width:0;max-width:100%;margin:0;font-size:.95rem;font-weight:800;line-height:1.2;overflow:hidden}.lol-parent-settings__child-age{color:#4f6276;margin:2px 0 0;font-size:.78rem;font-weight:700;line-height:1.25}.lol-parent-settings__playing{color:#1f6b42;background:#eefaf3;border-radius:999px;flex-direction:row;align-items:baseline;gap:4px;padding:2px 8px;font-size:.68rem;font-weight:800;line-height:1.15;display:inline-flex}.lol-parent-settings__playing-en{font-size:.65rem;font-weight:600}.lol-parent-settings__child-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lol-parent-settings__child-pill{color:#1e3a5f;height:36px;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1.5px solid #24344d2e;border-radius:999px;flex-direction:row;justify-content:center;align-items:center;gap:4px;width:auto;padding:0 10px;font-size:.78rem;font-weight:800;display:inline-flex}.lol-parent-settings__child-pill .lol-parent-settings__btn-en{color:#66788f;font-size:.68rem;font-weight:700}.lol-parent-settings__child-pill--danger{color:#9b2e2e;background:#fff7f7;border-color:#f1b4b4}.lol-parent-settings__child-pill--danger .lol-parent-settings__btn-en{color:#c45b5b}.lol-parent-settings__child-pill:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__child-confirm{gap:8px;display:grid}.lol-parent-settings__child-confirm-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.lol-parent-settings__child-confirm-actions .lol-parent-settings__child-pill{width:100%;height:44px;min-height:44px}.lol-parent-settings__child-form{gap:8px;display:grid}.lol-parent-settings__child-form-title{color:#24344d;flex-direction:column;align-items:flex-start;gap:1px;margin:0;font-size:.9rem;font-weight:800;display:flex}.lol-parent-settings__child-form-title-en{color:#66788f;font-size:.72rem;font-weight:600}.lol-parent-settings__child-form-fields{gap:8px;display:grid}@media (width>=560px){.lol-parent-settings__child-form-fields{grid-template-columns:1fr 1fr;gap:10px}}.lol-parent-settings__child-form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.lol-parent-settings__child-form-save,.lol-parent-settings__child-form-cancel{height:44px;min-height:44px;font:inherit;cursor:pointer;border-radius:12px;flex-direction:row;justify-content:center;align-items:center;gap:6px;width:auto;padding:0 14px;font-size:.88rem;font-weight:800;display:inline-flex}.lol-parent-settings__child-form-save{color:#fff;background:#2f6b3f;border:none}.lol-parent-settings__child-form-save .lol-parent-settings__btn-en{color:#d7f0df;font-size:.72rem}.lol-parent-settings__child-form-cancel{color:#1e3a5f;background:#fff;border:1.5px solid #24344d33}.lol-parent-settings__child-form-cancel .lol-parent-settings__btn-en{color:#66788f;font-size:.72rem}.lol-parent-settings__child-form-save:focus-visible,.lol-parent-settings__child-form-cancel:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__children-tab .lol-parent-settings__field input,.lol-parent-settings__children-tab .lol-parent-settings__select-wrap select{box-sizing:border-box;width:100%;height:44px;min-height:44px;font:inherit;background:#fff;border:1.5px solid #5a739059;border-radius:10px;padding:0 12px;font-weight:500}.lol-parent-settings__select-wrap{position:relative}.lol-parent-settings__select-wrap:after{content:"";pointer-events:none;border-bottom:2px solid #4a5d73;border-right:2px solid #4a5d73;width:8px;height:8px;position:absolute;top:50%;right:12px;transform:translateY(-70%)rotate(45deg)}.lol-parent-settings__children-tab .lol-parent-settings__select-wrap select{appearance:none;padding-right:28px}.lol-parent-settings__field-hint{color:#66788f;margin-top:4px;font-size:.78rem;font-weight:600;display:block}.lol-parent-settings__field-label-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.lol-parent-settings__name-count{color:#66788f;flex-shrink:0;font-size:.78rem;font-weight:700}.lol-parent-settings__name-count--warn{color:#b45309}.lol-parent-settings__name-count--full{color:#9b2e2e}.lol-parent-settings__limit-note{color:#4f6276;margin:0;font-size:.78rem;font-weight:700}.lol-parent-settings__account{gap:14px;display:grid}.lol-parent-settings__group{gap:8px;display:grid}.lol-parent-settings__section-label{color:#66788f;text-transform:none;margin:0;font-size:.8rem;font-weight:700}.lol-parent-settings__account .lol-parent-settings__card{padding:12px 14px}.lol-parent-settings__account .lol-parent-settings__privacy-copy{margin:0 0 .45rem;font-size:.88rem}.lol-parent-settings__inline-en{color:#66788f;font-weight:600}.lol-parent-settings__sound{gap:4px;display:grid}.lol-parent-settings__switch-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-width:0;min-height:44px;display:flex}.lol-parent-settings__switch-label{color:#24344d;min-width:0;font-size:.92rem;font-weight:800}.lol-parent-settings__switch-row input[type=checkbox]{appearance:none;cursor:pointer;background:#e8eef3;border:2px solid #9bb0a8;border-radius:999px;flex:none;width:2.75rem;height:1.55rem;margin:0;position:relative}.lol-parent-settings__switch-row input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:1.05rem;height:1.05rem;position:absolute;inset-block:2px;inset-inline-start:2px;box-shadow:0 1px 2px #0f274433}.lol-parent-settings__switch-row input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary-dark)}.lol-parent-settings__switch-row input[type=checkbox]:checked:after{inset-inline:auto 2px}.lol-parent-settings__switch-row input[type=checkbox]:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__switch-help{color:#66788f;margin:0;font-size:.78rem;font-weight:600;line-height:1.35}.lol-parent-settings__switch-help--quiet{font-size:.72rem;font-weight:600}.lol-parent-settings__account-row{align-items:center;gap:10px;min-width:0;min-height:44px;display:flex}.lol-parent-settings__account-avatar{color:#fff;border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:800;line-height:1;display:inline-flex}.lol-parent-settings__account-email{text-overflow:ellipsis;white-space:nowrap;color:#24344d;flex:auto;min-width:0;margin:0;font-size:.92rem;font-weight:700;overflow:hidden}.lol-parent-settings__status-chip{border-radius:999px;flex-wrap:wrap;flex:none;align-items:center;max-width:100%;min-height:28px;padding:2px 8px;font-size:.72rem;font-weight:800;line-height:1.2;display:inline-flex}.lol-parent-settings__status-chip--ok{color:#1f6b42;background:#eefaf3;border:1px solid #b7e0c6}.lol-parent-settings__status-chip--warn{color:#8a5a00;background:#fff6e5;border:1px solid #e8c47a}.lol-parent-settings__verify-banner{background:#fff6e5;border:1px solid #e8c47a;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0 0;padding:8px 10px;display:flex}.lol-parent-settings__verify-copy{color:#4a5d73;flex:12rem;min-width:0;margin:0;font-size:.86rem;font-weight:700}.lol-parent-settings__verify-banner .lol-parent-settings__privacy-copy{flex:100%;margin:0}.lol-parent-settings__session-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:10px;display:grid}.lol-parent-settings__session-item{justify-items:start;gap:4px;min-width:0;display:grid}.lol-parent-settings__logout-note{color:#66788f;margin:0;font-size:.72rem;font-weight:600;line-height:1.35}.lol-parent-settings__about{flex-wrap:wrap;align-items:stretch;gap:4px 16px;display:flex}.lol-parent-settings__about-link{color:#1e3a5f;flex-wrap:wrap;align-items:center;min-height:44px;font-size:.86rem;font-weight:700;text-decoration:none;display:inline-flex}.lol-parent-settings__about-link:hover,.lol-parent-settings__about-link:focus-visible{text-underline-offset:3px;text-decoration:underline}.lol-parent-settings__about-link:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__text-btn{color:#1e3a5f;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 0;font-size:.9rem;font-weight:800;text-decoration:underline;display:inline-flex}.lol-parent-settings__text-btn .lol-parent-settings__btn-en{color:#66788f;font-size:.72rem;text-decoration:none}.lol-parent-settings__danger-zone{background:#f8fafc;border:1px solid #24344d1f;border-radius:16px;margin-top:0;padding:0}.lol-parent-settings__danger-toggle{color:#9b2e2e;width:100%;min-height:44px;font:inherit;text-align:start;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;font-size:.92rem;font-weight:800;display:flex}.lol-parent-settings__danger-toggle:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.lol-parent-settings__danger-chevron{color:#9b2e2e;transition:transform .2s;display:inline-flex}.lol-parent-settings__danger-chevron.is-open{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.lol-parent-settings__danger-chevron{transition:none}}.lol-parent-settings__danger-body{background:#fff7f7;border-top:1px solid #c45b5b59;border-radius:0 0 16px 16px;padding:0 14px 12px}.lol-parent-settings__head{flex-shrink:0;align-items:flex-start;gap:.65rem;padding-right:1.75rem;display:flex}.lol-parent-settings__head-icon{color:#1e3a5f;font-size:1.35rem;line-height:1.2}.lol-parent-settings__title{color:#1e3a5f;margin:0;font-size:1.15rem;font-weight:800;line-height:1.25}.lol-parent-settings__title-en{color:#5a7390;margin-top:.15rem;font-size:.88rem;font-weight:700;display:block}.lol-parent-settings__card{background:#f8fafc;border:1px solid #24344d1f;border-radius:16px;padding:1rem 1.05rem}.lol-parent-settings__card--install{padding:12px 14px}.lol-parent-settings__card-title{color:#24344d;text-autospace:no-autospace;flex-direction:column;align-items:flex-start;gap:.15rem;margin:0 0 .75rem;font-size:.95rem;font-weight:800;display:flex}.lol-parent-settings__card-title-en{color:#66788f;text-autospace:no-autospace;font-size:.78rem;font-weight:700;display:block}.lol-parent-settings__card-title--inline{flex-flow:wrap;align-items:baseline;gap:0;margin:0 0 .5rem}.lol-parent-settings__card-title--inline .lol-parent-settings__card-title-en{font-weight:600;display:inline}.lol-parent-settings__bullet-en{color:#66788f;margin-top:.15rem;font-size:.76rem;font-weight:600;display:block}.lol-parent-settings__card--privacy{border-color:#b45a5a40}.lol-parent-settings__privacy-copy{color:#4a5d73;margin:0 0 .85rem;font-size:.92rem;line-height:1.45}.lol-parent-settings__install-heading{align-items:center;gap:.4rem;display:inline-flex}.lol-parent-settings__install-steps{color:#4a5d73;margin:0 0 .4rem;padding-inline-start:1.2rem;font-size:.88rem;line-height:1.4}.lol-parent-settings__install-steps li+li{margin-top:.45rem}.lol-parent-settings__install-other{margin:0 0 .4rem}.lol-parent-settings__install-other>summary{cursor:pointer;color:#24344d;flex-direction:column;justify-content:center;min-height:44px;font-size:.92rem;font-weight:700;display:flex}.lol-parent-settings__install-signin{margin-bottom:0}.lol-parent-settings__privacy-actions{flex-wrap:wrap;gap:.6rem;display:flex}.lol-parent-settings__danger-btn{appearance:none;color:#9b2e2e;cursor:pointer;background:#fff7f7;border:1.5px solid #c45b5b;border-radius:12px;flex-direction:column;align-items:flex-start;min-height:44px;padding:.55rem .9rem;font-weight:700;display:flex}.lol-parent-settings__danger-btn:disabled{opacity:.55;cursor:not-allowed}.lol-parent-settings__danger-btn--solid{color:#fff;background:#c45b5b;margin-top:.35rem}.lol-parent-settings__danger-btn--solid .lol-parent-settings__btn-en{color:#fff}.lol-parent-settings__delete-form{gap:.65rem;margin-top:.9rem;display:grid}.lol-parent-settings__field{color:#4a5d73;gap:.3rem;font-size:.85rem;font-weight:700;display:grid}.lol-parent-settings__field input{font:inherit;border:1.5px solid #5a739059;border-radius:10px;padding:.55rem .7rem;font-weight:500}.lol-parent-settings__privacy-error{color:#9b2e2e;margin:.75rem 0 0;font-size:.88rem;font-weight:700}.dashboard-feature-btn.is-locked{opacity:.85;cursor:not-allowed}.dashboard-episode-card:hover:not(.is-premium-locked){border-color:#2f8f4e73;transform:translateY(-2px);box-shadow:0 8px 18px #2f8f4e1f}.dashboard-episode-card.is-premium-locked{cursor:pointer;filter:grayscale();opacity:.4;background:linear-gradient(145deg,#faf5ff,#fff);border-color:#9b59b659}.dashboard-episode-card.is-premium-locked:hover{border-color:#9b59b68c;box-shadow:0 8px 18px #9b59b624}.dashboard-episode-card.locked,.dashboard-episode-card.in_progress,.dashboard-episode-card.completed{opacity:.92}.dashboard-hub--guest .dashboard-hub-top{align-items:flex-start}.guest-dashboard-chrome{background:#ffffffeb;border:1px solid #5cb84840;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.guest-dashboard-chrome__name{margin:0;font-size:1.05rem;font-weight:800}.guest-dashboard-chrome__name-en{color:var(--text-muted);margin:2px 0 0;font-size:.82rem}.guest-dashboard-chrome__actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.guest-save-progress-btn{color:#4a3200;cursor:pointer;background:linear-gradient(135deg,#ffd86b,#f5b942);border:none;border-radius:999px;padding:10px 16px;font-size:.88rem;font-weight:800;animation:2.2s ease-in-out infinite guest-save-glow;box-shadow:0 0 #f5b94299}@keyframes guest-save-glow{0%,to{box-shadow:0 0 #f5b94273}50%{box-shadow:0 0 18px 4px #f5b94259}}.guest-dashboard-chrome__stars{background:#fff8e8;border:1px solid #f5b94259;border-radius:12px;align-items:baseline;gap:6px;padding:8px 12px;display:flex}.guest-dashboard-chrome__stars-label{color:#7a5a12;font-size:.78rem;font-weight:700}.guest-dashboard-chrome__stars-value{color:#c47f00;font-size:1.25rem}.dashboard-episode-card.is-play-now{border-color:#5cb848;animation:2s ease-in-out infinite play-now-pulse;box-shadow:0 0 0 2px #5cb84840}@keyframes play-now-pulse{0%,to{box-shadow:0 0 0 2px #5cb84833}50%{box-shadow:0 0 0 5px #5cb84859}}.dashboard-episode-card.is-sequential-locked{opacity:.72;filter:grayscale(.15)}.lol-episode-teaser__video-wrap{aspect-ratio:16/9;background:#0f172a;border-radius:12px;width:100%;margin:12px 0;overflow:hidden}.lol-episode-teaser__video{object-fit:cover;width:100%;height:100%}.lol-episode-teaser__video-fallback{color:#fff;flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:16px;display:flex}.lol-episode-teaser__cta{text-align:center;margin-top:12px}.lol-episode-teaser__cta-text{margin:0 0 4px;font-weight:800}.lol-episode-teaser__cta-text-en{color:var(--text-muted);margin:0 0 12px;font-size:.88rem}.dashboard-profiles{flex-direction:column;gap:.75rem;display:flex}.dashboard-profiles__list{flex-wrap:wrap;gap:.5rem;display:flex}.dashboard-profile-chip{cursor:pointer;text-align:left;background:#fff;border:2px solid #2f8f4e40;border-radius:14px;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0;max-width:100%;min-height:48px;padding:.55rem .85rem;display:flex}.dashboard-profile-chip.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px #2f8f4e33}.dashboard-profile-chip__name{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;color:var(--text);font-weight:800;overflow:hidden}.dashboard-profile-chip__meta{color:var(--text-muted);font-size:.78rem}.dashboard-profiles__premium-note{color:#8a5a00;background:#fff8e6;border-radius:12px;margin:0;padding:.65rem .75rem;font-size:.88rem;font-weight:700}.dashboard-profiles__premium-note-en{opacity:.9;font-size:.78rem;font-weight:600;display:block}.dashboard-profiles__add-btn,.dashboard-profiles__form .btn{min-width:48px;min-height:48px}.dashboard-profiles__add-btn{color:var(--primary-dark);cursor:pointer;background:#f8fcf7;border:2px dashed #2f8f4e73;border-radius:14px;padding:.65rem .85rem;font-weight:800}.dashboard-profiles__form{flex-direction:column;gap:.65rem;display:flex}.dashboard-profiles__form-actions{flex-wrap:wrap;gap:.5rem;display:flex}.dashboard-profiles__helper{flex-direction:column;gap:.35rem;margin-top:.5rem;display:flex}.dashboard-profiles__helper-label{color:var(--text-muted);font-size:.82rem;font-weight:700}.dashboard-profiles__helper-select{width:100%;color:var(--text-primary);background:#fff;border:1px solid #24344d24;border-radius:10px;padding:.55rem .65rem;font-size:.85rem}.dashboard-profile-loading{color:var(--text-muted);margin:0;font-size:.9rem}.ep-page--font-large .ep-karaoke-pair .ep-karaoke-char,.ep-page--font-large .ep-karaoke-punct{font-size:2.35rem}.ep-page--font-medium .ep-karaoke-pair .ep-karaoke-char,.ep-page--font-medium .ep-karaoke-punct{font-size:1.85rem}.ep-page--hide-jyutping .ep-karaoke-syllable,.ep-page--hide-jyutping .ep-summary-jyutping{display:none}.dashboard-week-day.is-done{color:#5b3ea6;background:#ece4ff}.dashboard-week-day.is-today{color:#24344d;background:#ffe566;box-shadow:0 4px #e6c400}.dashboard-badge-chip.locked{opacity:.55}.dashboard-panel--sticker-tree{flex-direction:column;justify-content:center;gap:8px;display:flex}.dashboard-sticker-tree-node.is-locked{opacity:.55;background:#faf6ef;border-color:#ddd2c0}.dashboard-sticker-tree-node.is-locked small{color:#8a96a8}.dashboard-sticker-chip.is-locked{opacity:.55}.dashboard-login-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);background:#0f27446b;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dashboard-login-overlay.is-fading{animation:.3s forwards dashboard-login-overlay-fade}.dashboard-login-overlay__panel{background:#fffffff5;border-radius:24px;flex-direction:column;align-items:center;gap:14px;min-width:min(88vw,220px);padding:28px 36px;display:flex;box-shadow:0 20px 50px #0f27442e,inset 0 0 0 1px #ffffffa6}.dashboard-login-overlay__spinner{border:3px solid #9a5b1633;border-top-color:#9a5b16;border-radius:50%;width:2.4rem;height:2.4rem;animation:.7s linear infinite btn-spinner-spin}.dashboard-login-overlay__text{color:#1e3a5f;margin:0;font-size:1rem;font-weight:800}@keyframes dashboard-login-overlay-fade{to{opacity:0}}.lol-modal-overlay{z-index:10000;overscroll-behavior:none;-webkit-backdrop-filter:blur(4px);background:#0f27447a;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow:hidden}@media (width<=600px){.lol-modal-overlay.lol-parent-settings{overscroll-behavior:none;align-items:flex-end;padding:0;overflow:hidden}.lol-modal-overlay.lol-parent-settings .lol-parent-settings__panel{border-radius:18px 18px 0 0;width:100%;max-width:100%;max-height:100svh}.lol-parent-settings__tabs{overflow-x:hidden}.lol-parent-settings__session-row{grid-template-columns:minmax(0,1fr)}.lol-parent-settings__child-actions{width:100%}.lol-parent-settings__child-pill{flex:auto}}.lol-modal-panel{background:#fffffffa;border-radius:24px;flex-direction:column;gap:.75rem;width:min(92vw,26rem);padding:1.5rem 1.35rem;display:flex;position:relative;box-shadow:0 20px 50px #0f27442e,inset 0 0 0 1px #ffffffa6}.lol-modal-close{color:#5f738c;cursor:pointer;background:#0f27440f;border:none;border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:1.35rem;line-height:1;display:flex;position:absolute;top:.65rem;right:.65rem}.lol-modal-close:hover{color:#1e3a5f;background:#0f27441f}.lol-modal-title{color:#1e3a5f;margin:0;font-size:1.25rem;font-weight:800;line-height:1.3}.lol-modal-subtitle{color:#5a7390;margin:-.35rem 0 0;font-size:.92rem;font-weight:700}.lol-modal-body{color:#334e68;margin:.35rem 0 0;font-size:.95rem;line-height:1.5}.lol-modal-body-en{color:#6b829c;margin-top:.35rem;font-size:.85rem;font-weight:600;display:block}.lol-modal-actions{flex-direction:column;gap:.65rem;margin-top:.5rem;display:flex}.lol-modal-btn{cursor:pointer;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:.15rem;width:100%;min-width:48px;min-height:48px;padding:.85rem 1rem;font-size:1rem;font-weight:800;transition:transform .15s,box-shadow .15s;display:flex}.lol-modal-btn-en{opacity:.88;font-size:.78rem;font-weight:700}.lol-modal-btn--primary{color:#fff;background:linear-gradient(135deg,#3f9f55,#2f7f44);box-shadow:0 8px 20px #2f7f4447}.lol-modal-btn--primary:hover{transform:translateY(-1px)}.lol-modal-btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.lol-modal-btn--primary:disabled:hover,.lol-modal-btn--secondary:disabled:hover{transform:none}.lol-modal-btn--secondary{color:#1e3a5f;background:#eef3f8;box-shadow:inset 0 0 0 1px #1e3a5f1f}.lol-modal-btn--secondary:hover{background:#e4ecf4}.lol-parent-settings .lol-modal-btn{flex-flow:wrap;justify-content:center;align-items:center;gap:.2rem .35rem;width:auto;min-height:44px;padding:.4rem .9rem}.lol-parent-settings .lol-modal-btn .lol-parent-settings__btn-en{font-size:.78rem;display:inline}.lol-parent-settings .lol-parent-settings__unlock-btn{flex-direction:column;width:100%;margin-top:8px}.lol-parent-settings .lol-parent-settings__unlock-btn .lol-parent-settings__btn-en{display:block}.lol-parent-settings .lol-parent-settings__verify-resend{width:auto;min-height:40px;padding:.3rem .75rem}.lol-parent-settings .lol-parent-settings__export-btn{gap:.35rem}.lol-modal-btn--pulse{animation:2.4s ease-in-out infinite lol-btn-pulse}@keyframes lol-btn-pulse{0%,to{transform:scale(1);box-shadow:0 8px 20px #2f7f4447}50%{transform:scale(1.03);box-shadow:0 10px 26px #2f7f4461}}.lol-episode-teaser__panel{text-align:center}.lol-episode-teaser__kicker{color:#5a7390;margin:0;font-size:.82rem;font-weight:800}.lol-episode-teaser__hero{margin:0;font-size:2.5rem;line-height:1}.lol-episode-teaser__progress{background:#e4ecf4;border-radius:999px;height:8px;margin-top:.35rem;position:relative;overflow:hidden}.lol-episode-teaser__progress-fill{border-radius:inherit;background:linear-gradient(90deg,#3f9f55,#73c088);height:100%;transition:width 1s linear;display:block}.lol-purchase-gate__panel .lol-modal-body{text-align:center}.lol-purchase-gate .lol-modal-actions .lol-modal-btn--primary{text-decoration:none}.lol-purchase-gate__price{color:#2f7f44;text-align:center;font-size:1.15rem;font-weight:800}.lol-purchase-gate__episode-shape{color:#66788f;text-align:center;margin:0;font-size:.85rem;font-weight:600}.lol-purchase-gate__episode-shape span{display:block}.lol-purchase-gate__promo{text-align:left;color:#24344d;flex-direction:column;gap:6px;margin:12px 0 4px;font-size:.92rem;font-weight:700;display:flex}.lol-purchase-gate__promo input{min-height:44px;font:inherit;letter-spacing:.06em;text-transform:uppercase;color:#24344d;background:#fff;border:2px solid #d4e8d0;border-radius:12px;padding:10px 14px;font-weight:700}.lol-purchase-gate__promo input:focus{outline-offset:1px;border-color:#2f7f44;outline:3px solid #2f7f4447}.lol-purchase-gate__promo input:disabled{opacity:.65;cursor:not-allowed}.lol-modal-error{color:#b3261e;text-align:center;background:#fdecec;border-radius:12px;margin:.35rem 0 0;padding:.6rem .75rem;font-size:.85rem;font-weight:700}.lol-level-up{z-index:260;place-items:center;display:grid;position:fixed;inset:0}.lol-level-up__backdrop{background:#0f281459;animation:.35s lol-level-up-fade;position:absolute;inset:0}.lol-level-up__panel{z-index:1;text-align:center;color:#fff;background:linear-gradient(145deg,#ffd54f,#ffb300 45%,#ff8f00);border-radius:24px;min-width:min(88vw,320px);animation:.55s cubic-bezier(.34,1.56,.64,1) lol-level-up-pop;position:relative;box-shadow:0 16px 40px #ff8f0073,inset 0 1px #ffffff59}@keyframes lol-level-up-pop{0%{opacity:0;transform:scale(.6)rotate(-6deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes lol-level-up-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lol-modal-btn--pulse,.lol-level-up__panel,.lol-level-up__backdrop{animation:none}}@keyframes dashboard-enter-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.dashboard-enter{animation:.55s cubic-bezier(.22,1,.36,1) forwards dashboard-enter-rise}.dashboard-enter .dashboard-enter-item{opacity:0;animation:.75s cubic-bezier(.22,1,.36,1) forwards dashboard-enter-rise}.dashboard-enter-item--0{animation-delay:40ms}.dashboard-enter-item--1{animation-delay:.1s}.dashboard-enter-item--3{animation-delay:.28s}.dashboard-enter-item--4{animation-delay:.38s}.dashboard-enter-item--6{animation-delay:.58s}@media (prefers-reduced-motion:reduce){.dashboard-login-overlay.is-fading{opacity:0;animation:none}.dashboard-login-overlay__spinner{animation:none}.dashboard-enter,.dashboard-enter .dashboard-enter-item{opacity:1;animation:none;transform:none}}@media (width<=760px){.dashboard-hub-layout,.dashboard-hub-support{grid-template-columns:1fr}.dashboard-parent-strip__actions,.dashboard-parent-details{margin-left:0}.dashboard-hub-episodes.ep-summary{margin-top:0}}body.page-cover-bg:has(.landing-page){color:#0f172a}body.page-cover-bg:has(.landing-page) .app-brand-bar{box-shadow:none;-webkit-backdrop-filter:none;background:#fff;border-bottom:1px solid #e2e8f0}body.page-cover-bg:has(.landing-page) .app-brand-bar-nav--inline a{color:#24344d;box-shadow:none;background:0 0;border:none;border-radius:0;padding:6px 8px;font-weight:800}body.page-cover-bg:has(.landing-page) .app-brand-bar-nav--inline a:hover{color:var(--primary-dark);background:0 0}:is(body.page-cover-bg:has(.landing-page) .app-brand-bar-nav--inline a.app-brand-bar-nav__cta,body.page-cover-bg:has(.landing-page) .app-brand-bar-nav--inline a[href=\/signup]){background:var(--primary);color:#fff;box-shadow:none;border:none;border-radius:999px;padding:6px 12px}:is(body.page-cover-bg:has(.landing-page) .app-brand-bar-nav--inline a.app-brand-bar-nav__cta:hover,body.page-cover-bg:has(.landing-page) .app-brand-bar-nav--inline a[href=\/signup]:hover){background:var(--primary-dark);color:#fff}:is(body.page-cover-bg:has(.auth-page) .app-brand-bar,body.page-cover-bg:has(.legal-page) .app-brand-bar){-webkit-backdrop-filter:none;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 2px 8px #0000000a}:is(body.page-cover-bg:has(.auth-page) .app-footer,body.page-cover-bg:has(.legal-page) .app-footer){color:#475569;-webkit-backdrop-filter:none;background:#fff;border-top:1px solid #e2e8f0}:is(body.page-cover-bg:has(.auth-page) .app-footer a,body.page-cover-bg:has(.legal-page) .app-footer a){color:#0f766e}body.page-cover-bg:has(.landing-page) .app-footer{color:#475569;background:#fff;border-top:1px solid #e2e8f0}body.page-cover-bg:has(.landing-page) .app-footer a{color:#0f766e}.landing-page{z-index:1;max-width:1080px;margin:0 auto;padding:32px 20px 72px;position:relative}.landing-pricing-card.is-highlight{border-color:#10b98173;box-shadow:0 0 0 2px #a7f3d073,inset 0 1px #ffffffbf}.dashboard-panel--episodes-nf{color:#141414;box-shadow:none;background:0 0;border:none;border-radius:0;max-width:none;margin:0;padding:0;overflow:hidden}.dashboard-panel--episodes-nf .nf-episodes{flex-direction:column;gap:.5rem;display:flex}.dashboard-panel--episodes-nf .nf-episodes>.ep-hero{margin-bottom:0}.dashboard-panel--episodes-nf .nf-episodes>.ep-locked-section{margin-top:0}.nf-episodes__season-tabs{flex-wrap:wrap;gap:.5rem;margin:0 0 .75rem;display:flex}.nf-episodes__season-tab{color:#0f172a;cursor:pointer;font:inherit;background:#ffffff8c;border:1px solid #0f172a1f;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.55rem .9rem;display:inline-flex}.nf-episodes__season-tab.is-active{background:#10b9812e;border-color:#10b9818c;box-shadow:0 0 0 1px #10b98140}.nf-episodes__season-tab-en{opacity:.7;font-size:.75rem}.nf-episodes__season-head{margin:0;padding:2px 0 14px}.nf-episodes__season-title{color:#141414;margin:0;font-size:1.2rem;font-weight:800;line-height:1.35}.nf-episodes__season-title-en{color:#14141473;margin-left:8px;font-size:.95rem;font-weight:600}.nf-episode-row.is-premium-locked .nf-episode-row__thumb{filter:grayscale();opacity:.55}.nf-episode-row.is-sequential-locked{opacity:.72}.nf-episode-row.is-sequential-locked .nf-episode-row__thumb{filter:grayscale(.4)}.nf-episode-row.is-play-now .nf-episode-row__thumb-wrap{box-shadow:0 0 0 2px #46d369}@media (width<=640px){.dashboard-hub-episodes.ep-summary,.dashboard-hub-bottom.ep-summary{border-radius:22px;margin-top:0;padding:20px 16px 28px}}@media (width<=600px){.dashboard-hub-episodes.ep-summary,.dashboard-hub-bottom.ep-summary{border-radius:0;padding:0}}.lol-parent-math-gate__form{flex-direction:column;gap:12px;display:flex}.lol-parent-math-gate__input{border:1px solid #00000026;border-radius:10px;min-height:48px;padding:8px 12px;font-size:1.1rem}.lol-parent-math-gate__field{align-items:stretch;display:flex;position:relative}.lol-parent-math-gate__field--secret .lol-parent-math-gate__input{width:100%;padding-right:48px}.lol-parent-math-gate__input--masked{-webkit-text-security:disc;text-security:disc}.lol-parent-math-gate__reveal{width:40px;height:40px;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.lol-buddy-bubble{text-align:left;background:#20a95b1a;border-radius:16px;align-items:center;gap:10px;margin:12px 0;padding:10px 14px;display:flex}.lol-buddy-bubble__avatar{object-fit:contain;flex:none;width:48px;height:48px}.lol-buddy-bubble__text{flex-direction:column;gap:2px;margin:0;display:flex}.lol-buddy-bubble__zh{font-weight:700}.lol-buddy-bubble__en{opacity:.8;font-size:.86rem}@media (prefers-reduced-motion:reduce){.guest-save-progress-btn,.dashboard-episode-card.is-play-now{animation:none}}body.page-cover-bg:has(.landing-page){background-color:#f5f3ee;background-image:none}.landing-page:has(.landing-hero-v2){z-index:1;background:0 0;width:100%;max-width:100vw;margin:0;padding:0;position:relative}.landing-hero-v2{z-index:1;align-items:center;min-height:min(100vh - 66px,820px);display:flex;position:relative;overflow:hidden}.landing-hero-v2__left{z-index:1;background:linear-gradient(90deg,#f5f3eef5 70%,#f5f3ee00 100%);flex-direction:column;justify-content:center;align-items:flex-start;gap:0;width:clamp(320px,50%,560px);min-height:min(100vh - 66px,820px);padding:3vh 5vw;display:flex;position:relative;overflow:hidden}.landing-hero-v2__headline{color:#1a2332;letter-spacing:-.02em;margin:0 0 1vh;font-size:clamp(1.5rem,4.5vh,3.6rem);font-weight:900;line-height:1.08}.landing-hero-v2__headline-through{color:#16a34a}.landing-hero-v2__headline-stories{color:#e8506a}.landing-hero-v2__subhead{color:#334155;margin:0 0 .8vh;font-size:clamp(.9rem,1.8vh,1.4rem);font-weight:600}.landing-hero-v2__subhead-en{color:#64748b;margin-top:2px;font-size:.82em;font-weight:600;display:block}.landing-hero-v2__divider-line{background:#16a34a;border-radius:2px;width:48px;height:3px;margin:0 0 1.2vh}.landing-hero-v2__features{flex-direction:column;gap:clamp(6px,1.2vh,16px);margin:.8vh 0 1.2vh;padding:0;list-style:none;display:flex}.landing-hero-v2__feature{min-width:0}.landing-hero-v2__feature-text{flex-direction:column;gap:1px;display:flex}.landing-hero-v2__feature-text strong{color:#1e293b;font-size:clamp(1rem,1.9vh,1.2rem);font-weight:700;line-height:1.3}.landing-hero-v2__feature-zh{color:#64748b;font-size:clamp(.88rem,1.55vh,1.05rem);font-weight:400;line-height:1.3}.landing-logout-note{text-align:center;margin:0 0 12px}.landing-hero-v2__cta{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:14px;flex-direction:column;align-items:center;gap:2px;width:100%;padding:clamp(10px,1.8vh,16px) 28px;font-size:clamp(.9rem,1.8vh,1.1rem);font-weight:800;transition:transform .1s,box-shadow .1s,background .1s;display:flex;box-shadow:0 4px #14532d}.landing-hero-v2__cta:hover{background:#15803d;transform:translateY(1px);box-shadow:0 3px #14532d}.landing-hero-v2__cta:active{transform:translateY(3px);box-shadow:0 1px #14532d}.landing-hero-v2__cta-zh{opacity:.88;font-size:clamp(.72rem,1.1vh,.82rem);font-weight:500}@media (width<=680px){.landing-hero-v2{flex-direction:column;align-items:stretch;height:auto;min-height:auto;padding:0;overflow:visible}.landing-hero-v2__left{-webkit-backdrop-filter:blur(40px)saturate(180%);background:#ffffff85;border:1px solid #ffffffb8;border-radius:28px;width:auto;height:auto;min-height:0;margin:12px;padding:24px 18px 22px;overflow:hidden;box-shadow:0 12px 40px #0f172a1a,inset 0 1px #ffffffe6,inset 0 -1px #0f172a0a}.landing-hero-v2__left:before{z-index:0;border-radius:inherit;background:linear-gradient(165deg,#ffffff8c 0%,#ffffff1f 38%,#fff0 62%);display:block;inset:0}.landing-hero-v2__left>*{z-index:1;position:relative}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){@media (width<=680px){.landing-hero-v2__left{background:#ffffffeb}}}.landing-backdrop{--landing-wash:0;z-index:0;pointer-events:none;width:100%;height:100lvh;position:fixed;top:0;left:0;overflow:hidden}.landing-backdrop__picture{transform-origin:78% 52%;background-image:url(/landing-hero-illustration.png);background-position:100%;background-repeat:no-repeat;background-size:cover;animation:24s ease-in-out infinite landing-backdrop-breathe;position:absolute;inset:0}.landing-backdrop__wash{background:rgba(250, 248, 241, var(--landing-wash,0));pointer-events:none;position:absolute;inset:0}.hero-decor{z-index:0;pointer-events:none;animation:24s ease-in-out infinite landing-backdrop-breathe;position:absolute}.hero-decor__butterfly,.hero-decor__sparkle{pointer-events:none;display:block;position:absolute}.hero-decor__butterfly{width:100%;height:100%;top:0;left:0}.hero-decor__sprite{--decor-size:clamp(48px, 4.2vw, 64px);width:var(--decor-size);height:var(--decor-size);margin:calc(var(--decor-size) / -2) 0 0 calc(var(--decor-size) / -2);position:absolute}.hero-decor__frame{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-decor__frame--open{opacity:1}.hero-decor__frame--half{opacity:0}.hero-decor__butterfly--blue .hero-decor__sprite{top:18%;left:90%}.hero-decor__butterfly--blue{animation:18s ease-in-out infinite hero-decor-blue-wander}.hero-decor__butterfly--blue .hero-decor__frame--half{animation:18s step-end infinite hero-decor-flap-blue}.hero-decor__butterfly--purple .hero-decor__sprite{top:75%;left:85%}.hero-decor__butterfly--purple{animation:16s ease-in-out infinite hero-decor-purple-wander}.hero-decor__butterfly--purple .hero-decor__frame--half{animation:16s step-end infinite hero-decor-flap-purple}.hero-decor__sparkle{--decor-size:28px;width:var(--decor-size);height:var(--decor-size);margin:calc(var(--decor-size) / -2) 0 0 calc(var(--decor-size) / -2);object-fit:contain;opacity:.35}.hero-decor__sparkle--a{animation:3.2s ease-in-out .2s infinite hero-decor-twinkle;top:12%;left:95%}.hero-decor__sparkle--b{--decor-size:22px;animation:4.6s ease-in-out .8s infinite hero-decor-twinkle;top:24%;left:87%}.hero-decor__sparkle--c{--decor-size:24px;animation:5.4s ease-in-out 1.1s infinite hero-decor-twinkle;top:72%;left:92%}@media (width<=680px){.landing-backdrop__picture{transform-origin:75% 55%;background-position:75% 55%}}.landing-backdrop.is-paused .landing-backdrop__picture,.landing-backdrop.is-paused .hero-decor,.landing-backdrop.is-paused .hero-decor__butterfly,.landing-backdrop.is-paused .hero-decor__sparkle,.landing-backdrop.is-paused .hero-decor__frame--half{animation-play-state:paused}@keyframes landing-backdrop-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes hero-decor-blue-wander{0%,14%{transform:translate(0)}28%{transform:translate(4%,-8%)}40%,54%{transform:translate(0)}70%{transform:translate(-5%,-6%)}84%{transform:translate(3%,6%)}to{transform:translate(0)}}@keyframes hero-decor-purple-wander{0%,16%{transform:translate(0)}30%{transform:translate(6%,-4%)}44%,58%{transform:translate(0)}74%{transform:translate(-6%,3%)}88%{transform:translate(7%,2%)}to{transform:translate(0)}}@keyframes hero-decor-flap-blue{0%,14%,40%,54%,to{opacity:0}16%,20%,24%,28%,32%,36%,58%,62%,66%,70%,74%,78%,82%{opacity:1}18%,22%,26%,30%,34%,38%,60%,64%,68%,72%,76%,80%,84%{opacity:0}}@keyframes hero-decor-flap-purple{0%,16%,44%,58%,to{opacity:0}18%,22%,26%,30%,34%,38%,62%,66%,70%,74%,78%,82%,86%{opacity:1}20%,24%,28%,32%,36%,42%,64%,68%,72%,76%,80%,84%,90%{opacity:0}}@keyframes hero-decor-twinkle{0%,to{opacity:.2;transform:scale(.7)}35%{opacity:.9;transform:scale(1.12)}65%{opacity:.3;transform:scale(.85)}}@media (prefers-reduced-motion:reduce){.landing-backdrop__picture,.hero-decor,.hero-decor__butterfly,.hero-decor__sparkle,.hero-decor__frame--half{animation:none}.hero-decor__butterfly{opacity:1;transform:none}.hero-decor__sparkle{opacity:.4;transform:none}.hero-decor__frame--half{opacity:0}}.puzzle-game{touch-action:none;flex-direction:column;align-items:center;gap:16px;padding:20px;font-family:Nunito,sans-serif;display:flex}.puzzle-game__instruction-zh{color:#134e4a;text-align:center;margin:0;font-size:1.25rem;font-weight:800}.puzzle-game__instruction-en{color:#0d9488;text-align:center;margin:0;font-size:.95rem;font-weight:600}.puzzle-game__scene-label{color:#64748b;letter-spacing:.03em;font-size:.85rem;font-weight:700}.puzzle-game__grid{background:#0d948826;border:2px solid #0d94884d;border-radius:10px;gap:3px;padding:3px;display:grid}.puzzle-game__cell{appearance:none;cursor:pointer;background:#cbd5e166;border:2px dashed #94a3b880;border-radius:6px;padding:0;transition:background .15s,border-color .15s,box-shadow .15s;display:block;overflow:hidden}.puzzle-game__cell:disabled{cursor:default}.puzzle-game__cell.is-filled{background:0 0;border:none}.puzzle-game__cell.is-wrong{background:#ef444426;border-color:#ef4444;animation:.4s puzzle-shake}.puzzle-game__cell.is-target:not(:disabled){border-color:#0d9488;box-shadow:0 0 0 2px #0d948847}@keyframes puzzle-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}60%{transform:translate(5px)}}.puzzle-game__progress{color:#0f766e;margin:0;font-size:.9rem;font-weight:700}.puzzle-game__pool{background:#ffffffb3;border:1.5px solid #0d94882e;border-radius:14px;flex-wrap:wrap;justify-content:center;gap:8px;max-width:340px;padding:12px;display:flex}.puzzle-game__piece{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background-repeat:no-repeat;border:none;border-radius:6px;padding:0;transition:transform .12s,box-shadow .12s,outline .12s;display:block;box-shadow:0 2px 8px #0000002e}.puzzle-game__piece--tile:hover{transform:scale(1.06);box-shadow:0 6px 18px #00000038}.puzzle-game__piece--tile.is-selected{outline-offset:2px;outline:3px solid #0d9488;transform:scale(1.06)}.puzzle-game__piece--tile.is-dragging{opacity:.35}.puzzle-game__piece--tile.is-shaking{animation:.4s puzzle-shake}.puzzle-game__piece--placed{border-radius:4px;width:100%;height:100%}.puzzle-game__complete{text-align:center;flex-direction:column;align-items:center;gap:8px;animation:.4s cubic-bezier(.34,1.56,.64,1) puzzle-pop-in;display:flex}.puzzle-game__complete-zh{color:#0d9488;margin:0;font-size:1.4rem;font-weight:900}.puzzle-game__complete-en{color:#64748b;margin:0;font-size:1rem;font-weight:600}@keyframes puzzle-pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.dashboard-panel--gamification{flex-direction:column;justify-content:flex-start;display:flex}.gamification-widget__stamp-card{flex-direction:column;flex:1;justify-content:flex-start;display:flex}.gamification-widget__stamp-card>.gamification-widget__stamps{margin-block:auto}.gamification-widget__stamp-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.gamification-widget__stamp-head.ep-album__head{margin:0;padding:2px 0 14px}.gamification-widget__stamps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;margin:0;padding:0;list-style:none;display:grid}.gamification-widget__stamp{text-align:center;flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.done-tick{box-sizing:border-box;width:var(--done-tick-size,24px);height:var(--done-tick-size,24px);color:#fff;background:#20a95b;border-radius:50%;flex-shrink:0;place-items:center;display:inline-grid}.done-tick__icon{color:#fff;place-items:center;width:55%;height:55%;line-height:0;display:grid}.done-tick__icon .dl-icon,.done-tick__icon svg{width:100%;height:100%;display:block}.gamification-widget__token{background:#fff;border:3px dashed #20a95b;border-radius:50%;place-items:center;width:64px;height:64px;font-size:.95rem;font-weight:900;display:grid}.gamification-widget__stamp.is-done .gamification-widget__token{width:auto;height:auto;box-shadow:none;background:0 0;border:none;padding:0}.gamification-widget__stamp.is-done .done-tick{border:3px solid #20a95b;width:64px;height:64px;box-shadow:0 3px #178a49}.gamification-widget__stamp.is-done .gamification-widget__mission-title,.gamification-widget__stamp.is-done .gamification-widget__mission-title span{color:#4f6276}@media (width<=600px){.gamification-widget__token,.gamification-widget__stamp.is-done .done-tick{width:56px;height:56px}}.gamification-widget__stamp.is-stamping .gamification-widget__token{animation:.45s cubic-bezier(.34,1.56,.64,1) mission-stamp-bounce}@keyframes mission-stamp-bounce{0%{transform:scale(.6)}60%{transform:scale(1.12)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.gamification-widget__stamp.is-stamping .gamification-widget__token{animation:none}}.gamification-widget__mission-title{color:#334e68;font-size:.92rem;font-weight:800;line-height:1.2}.gamification-widget__mission-title span,.gamification-widget__badge-title span{font-size:.78rem;font-weight:700;display:block}.gamification-widget__ribbon{color:#7a4b00;text-align:center;background:#fff6d6;border-radius:999px;margin:12px 0 0;padding:6px 12px;font-size:.85rem;font-weight:800}.gamification-widget__badge.is-locked{color:#5a7390;background:#f6f9fc;border-style:dashed;border-color:#cfd8e3}.parent-report-page{flex:1;width:min(960px,100% - 32px);margin:0 auto;padding:32px 0 48px}.parent-report-page__title{color:#1e3a5f;flex-direction:column;gap:4px;margin:0 0 4px;font-size:1.5rem;font-weight:800;display:flex}.parent-report-page__title-en,.parent-report-page__subtitle-en{color:#5a7390;font-size:.88rem;font-weight:600;display:block}.parent-report-page__subtitle{color:#334e68;margin:0 0 24px;font-size:1rem}.parent-report-week{background:#ffffffeb;border:1px solid #0f172a14;border-radius:16px;margin:0 0 24px;padding:16px 18px 12px;box-shadow:0 8px 24px #0f172a0f}.parent-report-week__title{color:#1e3a5f;flex-direction:column;gap:2px;margin:0 0 12px;font-size:1.05rem;font-weight:800;display:flex}.parent-report-week__title-en{color:#5a7390;font-size:.8rem;font-weight:600}.parent-report-grid{grid-template-columns:1fr;gap:20px;display:grid}.parent-report-card{background:#ffffffeb;border:1px solid #0f172a14;border-radius:16px;padding:20px;box-shadow:0 8px 24px #0f172a0f}.parent-report-card__head{flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:16px;display:flex}.parent-report-card__head h3{color:#1e3a5f;overflow-wrap:anywhere;margin:0;font-size:1.15rem}.parent-report-card__meta{color:#0d9488;margin:0;font-size:.82rem;font-weight:700}.parent-report-card__meta-en{color:#5a7390;margin-top:2px;font-size:.75rem;font-weight:600;display:block}.parent-report-card__stories-title{color:#1e3a5f;flex-direction:column;gap:2px;margin:0 0 12px;font-size:1rem;font-weight:800;display:flex}.parent-report-card__stories-title-en{color:#5a7390;font-size:.8rem;font-weight:600}.parent-report-card__badges,.parent-report-card__stars{margin-top:18px}.parent-report-badges,.parent-report-stars{margin:0;padding:0;list-style:none}.parent-report-badges{flex-wrap:wrap;gap:8px;display:flex}.parent-report-badges li{color:#7a3e00;background:#fff8e1;border:2px solid #ffe08a;border-radius:14px;padding:6px 12px;font-size:.88rem;font-weight:800}.parent-report-badges__en,.parent-report-stars__reason span{color:#5a7390;font-size:.74rem;font-weight:600;display:block}.parent-report-stars{flex-direction:column;gap:6px;display:flex}.parent-report-stars li{color:#1e3a5f;align-items:center;gap:12px;font-size:.88rem;font-weight:700;display:flex}.parent-report-stars__points{color:#b35c00;min-width:56px;font-weight:900}.parent-report-stars__when{color:#5a7390;white-space:nowrap;margin-left:auto;font-size:.78rem}.parent-report-idioms{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.parent-report-idioms__item{color:#8a9bb0;text-align:center;background:#f4f7f2;border:2px dashed #c9d6c4;border-radius:12px;flex-direction:column;justify-content:center;min-width:0;min-height:44px;padding:8px 6px;display:flex}.parent-report-idioms__item.is-done{color:#1e3a5f;background:#e7f6ea;border-style:solid;border-color:#7cbc88}.parent-report-idioms__ep{letter-spacing:.04em;font-size:12px;font-weight:800}.parent-report-idioms__title{font-size:12px;font-weight:800;line-height:1.25}.parent-report-idioms__title-en{color:inherit;opacity:.75;font-size:12px;font-weight:600}.week-learn-chart{margin:0}.week-learn-chart__bars{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:6px;width:100%;display:grid}.week-learn-chart__day{border-radius:10px;flex-direction:column;align-items:center;min-width:0;padding:4px 2px 6px;display:flex}.week-learn-chart__day.is-today{background:#3f9f551f}.week-learn-chart__value{color:#2f6b3f;min-height:14px;font-size:12px;font-weight:800;line-height:1}.week-learn-chart__track{background:#e4eee7;border-radius:8px;align-items:flex-end;width:100%;max-width:28px;height:72px;margin:4px 0;display:flex;overflow:hidden}.week-learn-chart__fill{background:#3f9f55;border-radius:8px;width:100%;max-height:100%;display:block}.week-learn-chart__label-zh{color:#1e3a5f;font-size:.8rem;font-weight:800;line-height:1.2}.week-learn-chart__label-en{color:#5a7390;font-size:12px;font-weight:600;line-height:1.2}.week-learn-chart__caption{color:#334e68;margin:10px 0 0;font-size:.82rem;font-weight:700}.week-learn-chart__caption-en{color:#5a7390;margin-top:2px;font-size:.75rem;font-weight:600;display:block}.week-learn-chart.is-compact .week-learn-chart__track{height:48px}.week-learn-chart.is-compact .week-learn-chart__caption--inline{margin-top:8px}@media (width>=768px){.parent-report-idioms{grid-template-columns:repeat(6,minmax(0,1fr))}}.lol-level-up{pointer-events:auto}.lol-level-up__panel{min-width:min(88vw,340px);padding:1.5rem 1.75rem 1.25rem}.lol-level-up__badge{margin:0;font-size:4.5rem;line-height:1.1;animation:.9s cubic-bezier(.34,1.56,.64,1) .2s both lol-level-up-grow}.lol-level-up__badge--morph{place-items:center;display:grid}.lol-level-up__badge-old,.lol-level-up__badge-new{grid-area:1/1}.lol-level-up__badge-old{animation:.7s both lol-level-up-fade-old}.lol-level-up__badge-new{animation:.9s cubic-bezier(.34,1.56,.64,1) .25s both lol-level-up-grow}.lol-level-up__badge img{object-fit:contain;width:4.5rem;height:4.5rem}@keyframes lol-level-up-fade-old{to{opacity:0;transform:scale(.6)}}.lol-level-up__title{margin:.4rem 0 0;font-size:1.6rem;font-weight:900}.lol-level-up__title-en{opacity:.92;margin:.15rem 0 0;font-size:.95rem;font-weight:700}.lol-level-up__gift{color:#7a3e00;background:#ffffffeb;border-radius:18px;margin:.9rem 0 0;padding:.7rem .9rem;animation:.9s cubic-bezier(.34,1.56,.64,1) .5s both lol-level-up-grow}.lol-level-up__gift-kicker{margin:0;font-size:1rem;font-weight:900}.lol-level-up__gift-kicker span,.lol-level-up__gift-title span{opacity:.8;font-size:.78rem;font-weight:700;display:block}.lol-level-up__gift-list{flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.lol-level-up__gift-list li{text-align:left;align-items:center;gap:.45rem;display:flex}.lol-level-up__gift-icon{font-size:2.2rem;line-height:1}.lol-level-up__gift-title{font-size:1rem;font-weight:900}.lol-level-up__next{background:#ffffff40;border-radius:999px;margin:.8rem 0 0;padding:.4rem .8rem;font-size:.9rem;font-weight:800}.lol-level-up__btn{color:#b35c00;cursor:pointer;background:#fff;border:none;border-radius:999px;flex-direction:column;align-items:center;min-width:160px;min-height:52px;margin-top:1rem;padding:.5rem 1.5rem;font-size:1.2rem;font-weight:900;display:inline-flex;box-shadow:0 6px 16px #7a4b0040}.lol-level-up__btn-en{font-size:.75rem;font-weight:700}@keyframes lol-level-up-grow{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.lol-level-up__badge{animation:none}}.landing-hero-v2__cta-note{color:#4f6276;text-align:center;margin:10px 0 0;font-size:.9rem;font-weight:700}.landing-hero-v2__cta-note span{text-wrap:balance;margin-top:2px;font-weight:600;display:block}.landing-hero-v2__cta-note .landing-hero-v2__cta-phrase{font-weight:inherit;white-space:nowrap;margin-top:0;display:inline-block}.landing-hero-v2__left .landing-hero-v2__cta-note{text-align:center;align-self:stretch;width:100%;margin-bottom:8px}.landing-hero-v2__cta-secondary{box-sizing:border-box;color:#14532d;text-align:center;background:#fff;border:2px solid #16a34a;border-radius:14px;flex-direction:column;align-items:center;gap:1px;width:100%;margin:2px 0 10px;padding:clamp(8px,1.4vh,12px) 24px;font-size:clamp(.88rem,1.6vh,1rem);font-weight:800;line-height:1.25;text-decoration:none;transition:background .1s,border-color .1s;display:flex}.landing-hero-v2__cta-secondary span{color:#3f6b4c;font-size:.78rem;font-weight:700}.landing-hero-v2__cta-secondary:hover{background:#f0fdf4;border-color:#15803d}.landing-hero-v2__cta-secondary:focus-visible{outline-offset:2px;outline:3px solid #16a34a73}.landing-hero-v2__account{color:#4f6276;text-align:center;width:100%;margin:0 0 10px;font-size:.86rem;font-weight:700;line-height:1.35}.landing-hero-v2__account-link{color:var(--primary-dark);text-underline-offset:2px;margin-inline-start:.25em;font-weight:800;text-decoration:underline}.landing-hero-v2__account-en{color:#66788f;margin-top:2px;font-size:.78rem;font-weight:600;display:block}.landing-hero-v2__left{z-index:1;position:relative}.landing-hero-v2__left:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 30%,#faf8f1f2 55%,#faf8f100 75%);border-radius:32px;position:absolute;inset:-24px -40px -24px -24px}.landing-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin:6px 0 16px;padding:0;list-style:none;display:grid}.landing-facts li{color:#24344d;background:#fff;border:1.5px solid #d9ead3;border-radius:16px;flex-direction:column;justify-content:center;min-width:0;min-height:56px;padding:10px 14px;font-size:1rem;font-weight:800;line-height:1.25;display:flex}.landing-facts__text{flex-direction:column;gap:1px;min-width:0;display:flex}.landing-facts__zh{word-break:keep-all}.landing-facts li span[lang=en]{color:#4f6276;overflow-wrap:break-word;word-break:normal;font-size:.85rem;font-weight:700}@media (width<=900px){.landing-facts--cards{grid-template-columns:minmax(0,1fr)}}.landing-sections-band{z-index:1;background:linear-gradient(#faf8f100 0,#faf8f1f0 110px);position:relative}.landing-sections{z-index:1;flex-direction:column;gap:clamp(36px,6vh,64px);width:min(100% - 32px,1080px);margin:0 auto;padding:clamp(84px,8vh,108px) 0 56px;display:flex;position:relative}.landing-section__title{color:#1a2e4a;text-align:center;text-shadow:0 0 14px #faf8f1f2,0 1px #faf8f1e6;flex-direction:column;margin:0 0 18px;font-size:clamp(1.5rem,3vw,2rem);font-weight:900;display:flex}.landing-section__title span{color:#3d4f63;font-size:.95rem;font-weight:700}.landing-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.landing-step{background:#fff;border:3px solid #d9ead3;border-radius:22px;flex-direction:column;gap:6px;padding:24px 16px 18px;display:flex;position:relative;box-shadow:0 6px #d9ead3}.landing-step__num{color:#fff;background:#20a95b;border-radius:50%;place-items:center;width:28px;height:28px;font-weight:900;display:grid;position:absolute;top:-12px;left:14px}.landing-step strong,.landing-parents strong{color:#24344d;flex-direction:column;font-size:1.1rem;display:flex}.landing-step strong span,.landing-parents strong span{color:#66788f;font-size:.8rem;font-weight:700}.landing-step p{color:#4f6276;margin:0;font-size:.9rem;line-height:1.5}.landing-idioms{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.landing-idioms li{text-align:center;background:#fff;border:2px solid #e2e8e0;border-radius:16px;flex-direction:column;align-items:center;padding:12px 6px;display:flex;position:relative}.landing-idioms li.is-free{background:#eafaf0;border-color:#20a95b}.landing-idioms__sticker{object-fit:contain;filter:drop-shadow(0 3px 6px #1e3a5f26);width:72px;height:72px;margin:0 0 6px;display:block}.landing-idioms__ep{color:#9aa7b4;font-size:.72rem;font-weight:800}.landing-idioms__zh{color:#1e3a5f;letter-spacing:.04em;font-size:1.2rem;font-weight:900}.landing-idioms__free{color:#fff;background:#20a95b;border-radius:999px;padding:2px 8px;font-size:.66rem;font-weight:900;position:absolute;top:-10px;right:-6px}.landing-parents{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.landing-parents li{background:#fff;border:2px solid #e2e8e0;border-radius:18px;padding:18px 16px}.landing-parents strong{min-width:0}@media (width<=900px){.landing-parents{grid-template-columns:repeat(2,minmax(0,1fr))}}.landing-faq{flex-direction:column;gap:10px;width:min(100%,760px);margin:0 auto;display:flex}.landing-faq details{background:#fff;border:2px solid #e2e8e0;border-radius:16px}.landing-faq summary{color:#24344d;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:0 18px;font-weight:800;list-style:none;display:flex}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary:after{content:"+";color:#20a95b;font-size:1.4rem;font-weight:900}.landing-faq details[open] summary:after{content:"−"}.landing-faq details p{color:#4f6276;flex-direction:column;gap:4px;margin:0;padding:0 18px 16px;line-height:1.6;display:flex}.landing-faq details p span:last-child{color:#6a7d90}.landing-sections__cta{flex-direction:column;align-items:center;width:min(100%,460px);margin:0 auto;display:flex}.landing-sections__cta-card{flex-direction:column;align-items:center;width:100%;display:flex}.landing-sections__cta .landing-hero-v2__cta{width:100%}@media (width<=680px){.landing-sections{padding-top:12px}.landing-sections__cta-card{z-index:1;background:#fff;border-radius:22px;width:min(100%,460px);padding:18px 16px 14px;position:relative;box-shadow:0 8px 24px #1a2e1a1a}}@media (width<=900px){.landing-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-idioms{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=520px){.landing-idioms{grid-template-columns:repeat(3,minmax(0,1fr))}.landing-idioms__sticker{width:60px;height:60px}}.landing-more-link{color:#1a7f45;flex-direction:column;align-self:stretch;align-items:center;margin-top:14px;font-weight:900;text-decoration:none;display:flex}.landing-more-link span{font-size:1.4rem;animation:1.6s ease-in-out 3 landing-more-bob}html{scroll-behavior:smooth}#landing-how{scroll-margin-top:80px}@media (prefers-reduced-motion:reduce){.landing-more-link span{animation:none}html{scroll-behavior:auto}}.app-nav-link-label .app-nav-link-label__en,.landing-idioms .landing-idioms__free{font-size:.75rem}.auth-consent__check input[type=checkbox]{accent-color:#20a95b;cursor:pointer;width:24px;height:24px;margin:0}.auth-consent__check{align-items:center;min-height:44px;padding:6px 4px}@media (width<=480px){.dashboard-parent-settings-btn{padding:8px 10px}.dashboard-parent-settings-btn__icon{display:none}}.weekly-prefs{background:#ffffffeb;border:1px solid #0f172a14;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin:0 0 18px;padding:14px 18px;display:flex}.weekly-prefs--invite{background:#f0fbf4;border-color:#b9e4c9}.weekly-prefs__title{color:#1a7f45;margin:0;font-size:1.05rem;font-weight:900}.weekly-prefs__title span,.weekly-prefs__body span,.weekly-prefs__switch-text span,.auth-consent__check-en{color:#66788f;font-size:.82rem;font-weight:600;display:block}.weekly-prefs__body{color:#24344d;max-width:52ch;margin:4px 0 0;font-size:.92rem}.weekly-prefs__actions{flex-wrap:wrap;gap:8px;display:flex}.weekly-prefs__yes,.weekly-prefs__no{min-height:44px;font:inherit;cursor:pointer;border-radius:999px;padding:0 18px;font-weight:800}.weekly-prefs__yes{color:#fff;background:#20a95b;border:none}.weekly-prefs__no{color:#24344d;background:#fff;border:1px solid #0f172a26}.weekly-prefs__switch{cursor:pointer;align-items:center;gap:12px;display:flex}.weekly-prefs__switch input{opacity:0;width:1px;height:1px;position:absolute}.weekly-prefs__switch-track{background:#cbd5e1;border-radius:999px;flex:none;width:48px;height:28px;transition:background .15s;position:relative}.weekly-prefs__switch-track:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px}.weekly-prefs__switch input:checked+.weekly-prefs__switch-track{background:#20a95b}.weekly-prefs__switch input:checked+.weekly-prefs__switch-track:after{transform:translate(20px)}.weekly-prefs__switch input:focus-visible+.weekly-prefs__switch-track{outline-offset:2px;outline:3px solid #20a95b73}.weekly-prefs__switch-text{color:#24344d;font-weight:800}.weekly-prefs__verify{color:#24344d;margin:10px 0 0;font-size:.92rem;font-weight:700}.weekly-prefs__verify span{color:#66788f;margin-top:2px;font-size:.82rem;font-weight:600;display:block}.unsubscribe-page{text-align:center;background:#ffffffeb;border-radius:20px;max-width:560px;margin:48px auto;padding:24px}.unsubscribe-page p span{color:#66788f;margin-top:4px;display:block}.auth-phone-actions .btn-toki-login{color:#fff;-webkit-backdrop-filter:none;background:#20a95b;border-color:#20a95b;font-weight:900;box-shadow:0 5px #178a49,0 10px 20px -10px #178a4999}.auth-phone-actions .btn-toki-login:hover{background:#1e9c54}.auth-phone-actions .btn-toki-login .btn-spinner{border-color:#fff #ffffff59 #ffffff59}.auth-new-here{text-align:center;border-top:1px solid #0f172a1f;flex-direction:column;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.auth-new-here__label{color:#475569;margin:0;font-size:.9rem;font-weight:700}.auth-new-here__label span{color:#64748b;font-weight:600}.auth-new-here__signup{color:#1a7f45;background:#ffffffd9;border:2px solid #20a95b;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 20px;font-weight:800;text-decoration:none;display:inline-flex}.auth-new-here__signup:hover{background:#fff;text-decoration:none}.auth-new-here__trial{color:#1d4ed8;font-size:.86rem;font-weight:700}@media (width>=901px){.app-brand-bar-inner{min-height:70px}}@media (width<=900px){.app-brand-bar-inner{align-items:center;min-height:54px}}html{scrollbar-gutter:stable}.admin-scene-tester__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:8px;display:flex}.admin-scene-tester__bar .admin-scene-tester__stage-label{margin:0}.admin-scene-tester__sizes{border:1px solid #0f172a26;border-radius:10px;display:inline-flex;overflow:hidden}.admin-scene-tester__sizes button{min-height:34px;font:inherit;cursor:pointer;background:#fff;border:none;border-right:1px solid #0f172a1a;padding:0 12px;font-size:.82rem}.admin-scene-tester__sizes button:last-child{border-right:none}.admin-scene-tester__sizes button.is-active{color:#166534;background:#dcfce7;font-weight:700}.admin-scene-tester__frame-wrap{background:#e8edf3;border-radius:12px;justify-content:center;padding:12px;display:flex}.admin-scene-tester__frame{background:#fff;border:1px solid #0f172a2e;border-radius:14px;max-width:100%;height:min(78vh,780px)}.admin-scene-tester__stage{max-height:none;overflow:visible}.season-cert-page{flex-direction:column;align-items:center;gap:16px;padding:8px 0 32px;display:flex}.season-cert-locked{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:28rem;box-shadow:var(--shadow);margin:40px auto;padding:28px 24px}.season-cert-locked__zh{color:var(--text);margin:0;font-size:1.25rem;font-weight:800}.season-cert-locked__en{color:var(--text-muted);margin:6px 0 20px;font-size:.95rem;font-weight:600}.season-cert__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.season-cert{background:var(--surface);border:6px solid var(--primary);width:min(100%,1040px);box-shadow:var(--shadow);-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:18px;padding:20px 24px 16px}.season-cert__head{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.season-cert__logo{height:48px}.season-cert__title{color:var(--primary-dark);flex-direction:column;gap:2px;margin:0;font-size:1.7rem;font-weight:800;line-height:1.2;display:flex}.season-cert__title-en{color:var(--text-muted);font-size:.95rem;font-weight:700}.season-cert__name{text-align:center;color:var(--text);overflow-wrap:anywhere;margin:10px 0 4px;font-size:2rem;font-weight:800;line-height:1.2}.season-cert__body{text-align:center;color:var(--text);flex-direction:column;align-items:center;gap:2px;margin:0 0 14px;font-size:1rem;font-weight:700;display:flex}.season-cert__body-en{color:var(--text-muted);font-size:.85rem;font-weight:600}.season-cert__grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.season-cert__idiom{background:var(--primary-soft);text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px 8px;display:flex}.season-cert__sticker{object-fit:contain;width:52px;height:52px}.season-cert__sticker-fallback{background:var(--surface);border:2px dashed var(--primary);width:52px;height:52px;color:var(--primary-dark);border-radius:50%;place-items:center;font-weight:800;display:grid}.season-cert__idiom-zh{color:var(--text);font-size:.95rem;font-weight:800}.season-cert__idiom-jy{color:var(--text-muted);font-size:.68rem;font-weight:600;line-height:1.2}.season-cert__idiom-en{color:var(--text-muted);font-size:.72rem;font-weight:600}.season-cert__foot{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;margin-top:12px;padding-top:8px;display:flex}.season-cert__date,.season-cert__issuer{color:var(--text-muted);margin:0;font-size:.85rem;font-weight:700}.season-cert-cta{text-align:center;background:var(--primary-soft);border:2px solid var(--primary);border-radius:var(--radius);margin:0 0 16px;padding:16px 18px}.season-cert-cta__zh{color:var(--primary-dark);margin:0;font-size:1.15rem;font-weight:800}.season-cert-cta__en{color:var(--text-muted);margin:4px 0 12px;font-size:.9rem;font-weight:600}.season-cert-report-btn{margin:0 0 16px;text-decoration:none;display:inline-flex}@media print{@page{size:A4 landscape;margin:12mm}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff!important}body.season-cert-print .app-brand-bar,body.season-cert-print .app-footer,body.season-cert-print .offline-banner,body.season-cert-print .dreamlyland-bg-canvas,body.season-cert-print .auth-hero,body.season-cert-print .lol-level-up,body.season-cert-print .season-cert__actions{display:none!important}body.season-cert-print .app-shell-content{max-width:none!important;padding:0!important}.season-cert-page{align-items:stretch;padding:0}.season-cert{max-width:none;box-shadow:none;break-inside:avoid;page-break-inside:avoid;width:100%!important}}.auth-hero{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.auth-hero__bg{background-image:url(/landing-hero-illustration.png);background-position:100%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.auth-hero__light,.auth-hero__vignette{display:none}@media (width<=768px){.auth-hero__bg{background-position:50%}}@media (prefers-reduced-motion:reduce){.auth-hero__bg{transform:scale(1.03);animation:none!important}}:root{--ep-green-50:#f2fbf0;--ep-green-100:#e3f6dc;--ep-green-200:#c8ecbb;--ep-green-300:#a5dc94;--ep-green-400:#7fcb68;--ep-green-500:#5cb848;--ep-green-600:#459836;--ep-green-700:#35782b;--ep-green-border:#9ed08e;--ep-green-border-strong:#7cb86c;--ep-green-shadow:#35782b24;--ep-green-text-muted:#4d7354}.app-shell-content:has(.ep-page){--ep-brand-offset:2.75rem;background:0 0;flex:1;width:100%;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.page-cover-bg .app-shell-content:has(.ep-page){background:0 0}body.ep-immersive .app-brand-bar,body.ep-immersive .app-footer{display:none!important}body.ep-immersive .app-shell-content{padding:0}body.ep-immersive .ep-page{min-height:100dvh;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}body.ep-immersive .ep-shell{padding:0}body.ep-immersive #story.ep-panel{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}body.ep-immersive .ep-story-workspace{gap:0;width:100%;min-height:100dvh}body.ep-immersive .ep-story-workspace__canvas{width:100%;min-height:100dvh;max-height:none;box-shadow:none;background:0 0;border-radius:0;overflow:hidden}body.ep-immersive .ep-scenes-viewport{flex:auto;width:100%;height:auto;min-height:0}body.ep-immersive .ep-scenes-track>.ep-story-hero--slide.ep-panel--home,body.ep-immersive .ep-scenes-track>.ep-story-card{flex-direction:column;justify-content:flex-start;align-items:stretch;display:flex}body.ep-immersive .ep-scenes-track>.ep-story-hero--slide{background:var(--ep-scene-toolbar-bg);height:100%;min-height:100%;padding-top:0;padding-left:0;padding-right:0}body.ep-immersive .ep-story-hero-body{box-sizing:border-box;text-align:center;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;width:100%;padding:2px clamp(12px,2.5vw,20px) clamp(8px,1.8vw,14px);display:flex;position:relative;overflow:visible}body.ep-immersive .ep-story-hero-body .ep-hero-home,body.ep-immersive .ep-story-hero-body .ep-story-hero-intro,body.ep-immersive .ep-story-hero-body .ep-story-hero-ready{width:100%;max-width:100%}body.ep-immersive .ep-story-hero-body .ep-story-hero-intro{flex:1;align-self:stretch;min-height:0}.ep-story-hero-intro{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;max-width:42rem;margin:0 auto;display:flex}.ep-story-hero-intro__mission-steps li.is-current{color:#1d5aa3;background:#e8f2ff;border-color:#2f78d6}.ep-story-hero-intro__mission-steps li.is-done{color:#147a40;background:#e6f8ee;border-color:#20a95b}body.ep-immersive .ep-story-hero-body .ep-story-hero-intro__karaoke-wrap .ep-karaoke-line,.ep-story-hero-intro__karaoke-wrap .ep-karaoke-line--hero{justify-content:center;width:auto;min-width:0;max-width:none;display:flex;overflow:visible}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pairs{justify-content:center;gap:clamp(10px,2.2vw,22px);max-width:none;display:flex;overflow:visible}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair{flex-direction:column;align-items:center;gap:6px;min-width:4.25rem;transition:transform .15s;display:flex}.ep-page--font-medium .ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair .ep-karaoke-char,.ep-page--font-large .ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair .ep-karaoke-char,.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair .ep-karaoke-char{letter-spacing:0;color:#1e3a5f;font-size:clamp(3.4rem,8vw,5.1rem);font-weight:800;line-height:1;transition:color .15s}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair .ep-karaoke-syllable{letter-spacing:.02em;word-spacing:0;color:#7a8ba0;font-family:Nunito,system-ui,sans-serif;font-size:clamp(.85rem,1.8vw,1.02rem);font-weight:700;transition:color .15s}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-tappable{cursor:pointer;border-radius:12px;padding:6px 10px;transition:background .15s,transform .12s}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-tappable:hover{background:#10b9811a}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-tappable:active{background:#10b98138;transform:scale(.93)}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-active{background:#10b98152;border-color:#05966980;border-radius:12px;transform:scale(1.06)}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-active .ep-karaoke-char{color:#065f46;transform:scale(1)}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-active .ep-karaoke-syllable{color:#059669}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-past .ep-karaoke-char{color:#64748b}.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair.is-past .ep-karaoke-syllable{color:#94a3b8}.ep-story-hero-intro.is-just-revealed .ep-story-hero-intro__meaning-body{animation:.45s cubic-bezier(.34,1.4,.64,1) both ep-hero-reveal-pop}.ep-story-hero-intro__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.ep-page .ep-story-hero-intro__actions .ep-ready-btn,.ep-story-hero-intro__actions .ep-ready-btn{min-width:12rem;padding:12px 24px}.ep-story-hero-intro__actions .ep-ready-btn__copy{flex-direction:column;align-items:center;gap:1px;line-height:1.2;display:flex}.ep-story-hero-intro__actions .ep-ready-btn__en{letter-spacing:0;word-spacing:.04em;opacity:.9;font-family:Nunito,system-ui,sans-serif;font-size:.72em;font-weight:650}.ep-story-hero-intro__prompt{text-align:center;justify-content:center;align-items:center;gap:10px;margin:0;display:inline-flex}.ep-story-hero-intro__prompt-zh{color:#24344d;font-size:1.02rem;font-weight:800;line-height:1.35}.ep-story-hero-intro__prompt-en{color:#5a7188;letter-spacing:0;word-spacing:.04em;font-family:Nunito,system-ui,sans-serif;font-size:.86rem;font-weight:600;line-height:1.35}.ep-story-hero-intro__listen{color:#fff;cursor:pointer;background:linear-gradient(#4f9cf0 0%,#2f78d6 55%,#2568c4 100%);border:none;border-radius:999px;justify-content:center;align-items:center;gap:14px;width:min(100%,22rem);min-height:64px;margin:0;padding:14px 28px;font-family:inherit;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex;box-shadow:0 8px 22px #2568c459,inset 0 1px #ffffff47}.ep-story-hero-intro__listen:hover{filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 10px 26px #2568c46b,inset 0 1px #ffffff4d}.ep-story-hero-intro__listen:active{filter:brightness(.98);transform:translateY(0)}.ep-story-hero-intro__listen:focus-visible{outline-offset:3px;outline:3px solid #2f78d673}.ep-story-hero-intro__listen.is-playing{background:linear-gradient(#3f8ae0 0%,#2468b8 55%,#1d5aa3 100%);animation:1.2s ease-in-out infinite ep-hero-listen-pulse}@keyframes ep-hero-listen-pulse{0%,to{box-shadow:0 8px 22px #2568c459}50%{box-shadow:0 10px 30px #2568c48c}}.ep-story-hero-intro__listen-headphones{color:#fff;flex-shrink:0}.ep-story-hero-intro__listen-copy{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.ep-story-hero-intro__listen-title{letter-spacing:.01em;font-size:clamp(1.15rem,2.6vw,1.4rem);font-weight:800;line-height:1.2}.ep-story-hero-intro__listen-title-en{opacity:.95;font-weight:700}@keyframes ep-hero-reveal-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.ep-story-hero-intro__replay.is-playing{background:#c4e6d6}body.ep-immersive .ep-story-hero-body .ep-hero-home__meaning .ep-karaoke-pairs{flex-flow:wrap;justify-content:center}body.ep-immersive .ep-story-hero-body .ep-story-hero-ready{margin-top:clamp(8px,2vw,14px)}body.ep-immersive .ep-story-hero-body .ep-karaoke-line{justify-content:center;width:100%;display:flex}body.ep-immersive .ep-story-hero-body .ep-hero-home__meaning-english{text-align:center}body.ep-immersive .ep-scenes-track>.ep-story-card{height:100%;min-height:0;box-shadow:none;background:#fff;border:none;border-radius:0;margin-top:0;padding:0;overflow:hidden}body.ep-immersive .ep-scene-card-toolbar{border-radius:0;flex-shrink:0}body:has(.ep-page){--ep-green-border:#9ed08e;--ep-green-100:#e3f6dc;--ep-green-shadow:#35782b24;--ep-dock-purple-border:#c7b3efb8;--ep-scene-toolbar-bg:#fffbf2}body:has(.ep-page) .app-brand-bar-inner{gap:8px;width:min(1120px,100% - 16px);min-width:0;padding:6px 0}@media (width<=900px){body:has(.ep-page) .app-brand-bar-inner{gap:4px 8px;padding:4px 0 2px}body:has(.ep-page) .app-brand-bar-inner:not(:has(.app-brand-bar-title)){row-gap:0}}body:has(.ep-page) .app-brand-bar-start{min-width:0;overflow:hidden}body:has(.ep-page) .app-brand-bar-title{text-overflow:ellipsis;overflow:hidden}.ep-page{--ep-section-gap:10px;--ep-touch-min:48px;--ep-play-btn-min-width:12.5rem;--ep-scene-listen-all-btn-min-width:6.5rem;--ep-hero-home-listen-all-btn-min-width:12rem;--ep-speed-bar-clearance:calc(5.75rem + env(safe-area-inset-bottom,0px));--ep-listen-first-chrome-offset:calc(4rem + var(--ep-section-gap) + 3.25rem + .75rem + clamp(10px, 2.5vw, 14px) + 3rem + .5rem + 1.25rem + env(safe-area-inset-top,0px) + env(safe-area-inset-bottom,0px));--ep-dock-purple-border:#c7b3efb8;--ep-dock-purple-shadow:#57439429;box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:var(--ep-section-gap) 8px 20px;margin:0;overflow-x:clip}.ep-shell{width:100%;min-width:0;max-width:100%;box-shadow:none;box-sizing:border-box;background:0 0;border-radius:34px;padding:0 4px 4px}.ep-page .ep-shell{opacity:0}.ep-page.is-entered .ep-shell{animation:.6s cubic-bezier(.22,1,.36,1) 80ms both ep-page-enter}.ep-page.is-entered .ep-panel--home{animation:.55s cubic-bezier(.22,1,.36,1) .18s both ep-page-enter}.ep-page.is-entered .ep-reveal{animation:.55s cubic-bezier(.22,1,.36,1) both ep-page-enter}@keyframes ep-page-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.ep-page .ep-shell{opacity:1}.ep-page.is-entered .ep-shell,.ep-page.is-entered .ep-panel--home,.ep-page.is-entered .ep-reveal{animation:none}.ep-characters-tab.is-pending,.ep-characters-tab.is-revealed,.ep-story-hero-characters.is-pending,.ep-story-hero-characters.is-revealed{opacity:1;visibility:visible;pointer-events:auto;animation:none}.ep-page.is-entered .ep-characters-tab.is-revealed .ep-reveal,.ep-page.is-entered .ep-story-hero-characters.is-revealed .ep-reveal{animation:none}}.ep-page:hover .ep-speed-bar,.ep-speed-bar:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}@media (hover:none){.ep-page{--ep-listen-first-chrome-offset:calc(3.25rem + var(--ep-section-gap) + 2.75rem + .75rem + clamp(10px, 2.5vw, 14px) + 2.75rem + .5rem + 1.25rem + 2.75rem + env(safe-area-inset-top,0px) + env(safe-area-inset-bottom,0px))}.ep-page:hover .ep-speed-bar,.ep-speed-bar:focus-within{transform:translateY(0)}}.ep-speed-btn.is-active .ep-speed-btn__desc{color:#ffffffeb}.ep-speed-btn.is-active{background:linear-gradient(180deg, var(--ep-green-400), var(--ep-green-500));border-color:var(--ep-green-600);color:#fff;box-shadow:0 3px 0 var(--ep-green-700)}.ep-speed-btn:hover:not(.is-active){background:var(--ep-green-200)}@media (orientation:landscape){.ep-page{padding:var(--ep-section-gap) min(12px, 2vw) 16px}.ep-shell{padding:0 2px 2px 4px}:is(body:has(.ep-page) .app-brand-bar-nav a,body:has(.ep-page) .app-brand-bar-nav button){border:2px solid var(--brand-nav-border,var(--ep-green-border));box-shadow:0 4px 12px var(--brand-nav-shadow,var(--ep-green-shadow));-webkit-backdrop-filter:none;color:#24344d;background:#fff;border-radius:999px}:is(body:has(.ep-page) .app-brand-bar-nav a:hover,body:has(.ep-page) .app-brand-bar-nav button:hover){background:var(--brand-nav-bg-hover,var(--ep-green-100));border-color:var(--brand-nav-border,var(--ep-green-border));text-decoration:none;transform:none}.ep-speed-btn:hover:not(.is-active){background:#d9ccff94;border-color:#c7b3efd1}.ep-speed-btn.is-active{-webkit-backdrop-filter:blur(12px)saturate(150%);background:linear-gradient(#a78bfaf0 0%,#8b6fd4eb 100%);border-color:#ffffff7a;box-shadow:0 6px 18px #8b6fd457,inset 0 1px #ffffff61}.ep-panel,.ep-story-card{scroll-margin-top:16px}}.ep-main{gap:var(--ep-section-gap);width:100%;min-width:0;max-width:100%;display:grid}.ep-panel{border:2px solid var(--ep-green-border);box-shadow:0 12px 28px var(--ep-green-shadow);background:#fff;border-radius:22px;min-width:0;max-width:100%;padding:8px;scroll-margin-top:16px;overflow-x:clip}.ep-panel h1,.ep-panel h2,.ep-panel h3{color:#24344d}.ep-panel h1,.ep-panel h2{text-align:center;margin-top:0}.ep-panel>h2,.ep-panel>h3{margin-bottom:6px}.ep-main-tabs__tab.is-active{color:#24344d;box-shadow:0 4px 12px var(--ep-green-shadow), inset 0 0 0 1px #7ed9572e;background:linear-gradient(#f4fff0,#fff);border-color:#4aad2e}.ep-main-tabs__tab.is-disabled{opacity:.45;color:#8a9bb0;cursor:not-allowed;pointer-events:none;box-shadow:none}.ep-main-tabs__tab.is-disabled.is-active{border-color:var(--ep-green-border);box-shadow:none;background:#fff}.ep-main-tabs__tab.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.ep-main-tabs__tab.is-disabled:hover{color:#66788f;transform:none}.ep-main-tabs__panel{gap:var(--ep-section-gap,14px);flex-direction:column;min-width:0;display:flex}.ep-main-tabs__panel[hidden]{display:none}.ep-main-tabs__panel>.ep-panel--home{flex-shrink:0}.ep-characters-tab.is-pending{opacity:0;visibility:hidden;pointer-events:none}.ep-characters-tab.is-revealed{animation:.55s cubic-bezier(.22,1,.36,1) both ep-page-enter}.ep-page.is-entered .ep-characters-tab.is-pending .ep-reveal{opacity:0;animation:none}.ep-page.is-entered .ep-characters-tab.is-revealed .ep-reveal{animation:.55s cubic-bezier(.22,1,.36,1) both ep-page-enter}button.ep-character-card.is-visited:hover{transform:scale(1)}.ep-character-card.is-dimmed{opacity:.58;filter:grayscale(.3)saturate(.82);box-shadow:none;border-color:#d4dae3;transition:opacity .4s,filter .4s,border-color .4s,box-shadow .4s,transform .4s}.ep-character-card.is-visited{z-index:0;opacity:1;filter:none;border-color:#0000;animation:.55s cubic-bezier(.34,1.56,.64,1) both ep-character-card-reveal,2.5s ease-in-out .55s infinite ep-character-glow-pulse;position:relative;overflow:visible}.ep-character-card.is-visited:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;z-index:-1;background:linear-gradient(90deg,#ff6b9d,#ffc857,#4dceb6,#6b9fff,#c77dff,#ff6b9d) 0 0/300% 100%;padding:3px;animation:3s linear infinite ep-character-rainbow-border;position:absolute;inset:-3px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.ep-character-card.is-visited:after{content:"";border-radius:inherit;pointer-events:none;z-index:1;background:linear-gradient(105deg,#0000 35%,#ffffff8c 50%,#0000 65%) 0 0/220% 100%;animation:2.8s ease-in-out .3s infinite ep-character-shimmer;position:absolute;inset:0}.ep-character-card.is-visited>*{z-index:2;position:relative}.ep-character-card.is-visited.is-playing{animation:.55s cubic-bezier(.34,1.56,.64,1) both ep-character-card-reveal,.9s ease-in-out infinite ep-character-glow-pulse}@keyframes ep-character-card-reveal{0%{transform:scale(.9)}55%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes ep-character-glow-pulse{0%,to{box-shadow:0 8px 22px #5b3ea62e}50%{box-shadow:0 10px 28px #4dceb652,0 0 0 3px #4dceb633}}@keyframes ep-character-rainbow-border{0%{background-position:0%}to{background-position:300%}}@keyframes ep-character-shimmer{0%,72%,to{opacity:0;background-position:200% 0}78%{opacity:1}88%{opacity:0;background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.ep-character-card.is-visited{border-color:#c7b3ef;animation:none;box-shadow:0 8px 20px #5b3ea626}.ep-character-card.is-visited:before,.ep-character-card.is-visited:after{animation:none}.ep-character-card.is-visited:before{background:#c7b3ef}.ep-character-card.is-visited:after{display:none}}.ep-panel--hero{background:linear-gradient(135deg,#3f7a34 0%,#4d9638 28%,#3d8f70 58%,#3a6eb5 100%);border-color:#ffffff59;position:relative;overflow:hidden;box-shadow:0 14px 32px #24462047}.ep-panel--hero:after{content:"";border-radius:inherit;pointer-events:none;background:#12241c33;position:absolute;inset:0}.ep-panel--hero>*{z-index:1;position:relative}.ep-panel--home{background:linear-gradient(180deg, #fffffff7 0%, #f7fcf4f0 100%) padding-box, linear-gradient(135deg, var(--ep-green-400) 0%, #5d99c6 22%, #f0c85a 48%, #e8a8c8 72%, var(--ep-green-500) 100%) border-box;border:clamp(3px,.55vw,5px) solid #0000;border-radius:clamp(16px,3vw,24px);justify-content:center;align-items:center;min-height:clamp(88px,14vw,124px);padding:clamp(14px,3vw,22px) clamp(18px,4.5vw,36px);display:flex;box-shadow:0 10px 28px #35782b24,0 4px 14px #5d99c61f,inset 0 1px #ffffffe0,0 0 0 1px #ffffff73}.ep-panel--home:before,.ep-panel--home:after{content:"";opacity:.9;pointer-events:none;background:url(/shared/elegant-corner.svg) 50%/contain no-repeat;border-radius:0;width:clamp(22px,5vw,34px);height:clamp(22px,5vw,34px);position:absolute;inset:auto}.ep-panel--home:before{top:clamp(4px,1vw,8px);left:clamp(4px,1vw,8px)}.ep-panel--home:after{bottom:clamp(4px,1vw,8px);right:clamp(4px,1vw,8px);transform:rotate(180deg)}.ep-story-hero{flex-direction:column;align-items:stretch;gap:0;margin-bottom:clamp(14px,3vw,20px);scroll-margin-top:16px;display:flex}.ep-story-hero>.ep-hero-home{flex-shrink:0}.ep-story-hero-characters.is-pending{opacity:0;visibility:hidden;pointer-events:none}.ep-story-hero-characters.is-revealed{animation:.55s cubic-bezier(.22,1,.36,1) both ep-page-enter}.ep-page.is-entered .ep-story-hero-characters.is-pending .ep-reveal{opacity:0;animation:none}.ep-page.is-entered .ep-story-hero-characters.is-revealed .ep-reveal{animation:.55s cubic-bezier(.22,1,.36,1) both ep-page-enter}.ep-story-hero-characters .ep-character-card.is-visited{background:linear-gradient(#fff8f0 0%,#fff 55%,#f0f8ff 100%)}.ep-story-hero-characters .ep-character-card .ep-karaoke-pairs{justify-content:center}.ep-story-hero-characters .ep-character-card .ep-karaoke-char,.ep-story-hero-characters .ep-character-card .ep-karaoke-punct{font-size:clamp(1rem,3.2vw,1.25rem)}.ep-story-hero-characters .ep-character-card .ep-karaoke-syllable{font-size:clamp(.62rem,2vw,.75rem)}@media (width<=760px){.ep-story-hero-ready .ep-ready-btn{font-size:1.05rem}}.ep-listen-all-btn__main{font-size:inherit;white-space:nowrap;font-weight:900;line-height:1.15}.ep-listen-all-btn__en{opacity:.88;white-space:nowrap;font-size:.72em;font-weight:800;line-height:1.1}.ep-hero-home-listen-all-btn.is-playing .ep-listen-all-btn__en,.ep-scene-listen-all-btn.is-playing .ep-listen-all-btn__en{opacity:.92}.ep-hero-home-listen-all-btn.is-playing{color:#fff;background:linear-gradient(#66788f,#4a5f78);border-color:#364559;box-shadow:0 5px #364559,0 10px 24px #1834242e}.ep-hero-home-listen-all-btn .ep-listen-all-btn__en{font-size:.78em}.ep-panel--hero h1:not(.ep-story-hero-intro__title),.ep-panel--hero h2{color:#fff;text-align:left;text-shadow:0 2px 10px #24344d2e}.ep-panel--hero.ep-panel--home .ep-story-hero-intro__title,.ep-panel--hero.ep-panel--home .ep-story-hero-intro__jyutping,.ep-panel--hero.ep-panel--home .ep-story-hero-intro__meaning,.ep-panel--hero.ep-panel--home .ep-story-hero-intro__meaning-en{text-shadow:none}.ep-panel--hero h1{margin:0 0 8px;font-size:clamp(1.8rem,4vw,2.4rem)}.ep-panel--hero h2{opacity:.95;margin:0;font-size:clamp(1rem,2.4vw,1.2rem);font-weight:800}.ep-panel--hero.ep-panel--home h1.ep-hero-home__title{color:#1a3d2e;text-align:center;text-shadow:0 1px #ffffffa6;width:100%;margin:0;font-size:clamp(2.2rem,6.5vw,3.25rem);font-weight:800;line-height:1.08}.ep-panel--hero.ep-panel--home .ep-hero-home__meaning{color:#3d6b8c;text-shadow:0 1px #ffffff80;opacity:1;font-size:clamp(1.35rem,3.8vw,1.65rem);font-weight:700;line-height:1.15}.ep-panel--home .ep-karaoke-line--hero{margin-top:0}.ep-panel--home .ep-karaoke-pairs{flex-flow:row;justify-content:center;align-items:flex-start;gap:2px 6px;display:flex}.ep-hero-home__title .ep-karaoke-pair{flex:none;gap:2px;min-width:2.8rem;padding:2px 4px 3px}.ep-hero-home__title .ep-karaoke-char,.ep-hero-home__title .ep-karaoke-punct{color:#1a3d2e;text-shadow:0 1px #ffffffa6;font-size:clamp(2.2rem,6.5vw,3.25rem);font-weight:800}.ep-hero-home__title .ep-karaoke-punct{gap:2px;padding:2px 4px 3px}.ep-hero-home__title .ep-karaoke-syllable{color:#2d6b4f;font-size:clamp(.85rem,2.2vw,1.05rem);font-weight:700}.ep-hero-home__meaning .ep-karaoke-pair{gap:1px;min-width:2.3rem;padding:1px 3px 2px}.ep-hero-home__meaning .ep-karaoke-char,.ep-hero-home__meaning .ep-karaoke-punct{color:#3d6b8c;text-shadow:0 1px #ffffff80;font-size:clamp(1.35rem,3.8vw,1.65rem);font-weight:700}.ep-hero-home__meaning .ep-karaoke-punct{gap:1px;padding:1px 3px 2px}.ep-hero-home__meaning .ep-karaoke-syllable{color:#5a8aab;font-size:clamp(.8rem,2vw,.95rem);font-weight:600}.ep-hero-home__meaning.is-playing .ep-karaoke-pair.is-active{box-shadow:none;background:#5d99c62e;transform:none}.ep-hero-home__title.is-playing .ep-karaoke-pair.is-past,.ep-hero-home__meaning.is-playing .ep-karaoke-pair.is-past{opacity:.55}.ep-hero-home__title.is-playing .ep-karaoke-pair.is-active{box-shadow:none;background:#2d6b4f2e;transform:none}.ep-hero-meaning__btn:not(.ep-hero-meaning__btn--plain).is-playing{background:#ffffff5c;border-color:#ffffff9e;box-shadow:0 0 0 3px #ffffff2e}.ep-summary{gap:var(--ep-section-gap);margin-top:var(--ep-section-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.ep-summary>section,.ep-summary-column>section,.ep-summary-column{min-width:0}.ep-sticker-book--loading{color:#66788f;justify-content:center;align-items:center;min-height:200px;font-size:1rem;display:flex}.ep-sticker-book{flex-direction:column;align-items:center;gap:clamp(12px,2.5vw,18px);width:100%;display:flex}.ep-sticker-book--studio{flex:auto;gap:8px;min-height:0}.ep-sticker-book--studio .ep-sticker-book__frame,.ep-sticker-book--studio .ep-sticker-book__pool-wrap{width:min(100%,760px)}.ep-sticker-book--studio .ep-sticker-book__pool-wrap{flex:none}.ep-sticker-book--studio .ep-sticker-book__frame{flex:auto;min-height:min(46dvh,400px);max-height:min(62dvh,520px)}.ep-sticker-book--studio .ep-sticker-book__page{aspect-ratio:5/4;height:100%;min-height:0;max-height:none}.ep-sticker-book--studio .ep-sticker-book__instruction,.ep-sticker-book--studio .ep-sticker-book__instruction-en{font-size:.95rem}.ep-sticker-book--studio .ep-sticker-book__pool{flex-wrap:nowrap;min-height:0;padding:6px;overflow:auto hidden}.ep-sticker-book--studio .ep-sticker-book__sticker,.ep-sticker-book--studio .ep-sticker-book__sticker-wrap{width:52px;min-width:52px;max-width:52px;height:52px;min-height:52px;max-height:52px}.ep-sticker-book-modal-overlay{box-sizing:border-box;justify-content:center;align-items:center;height:100dvh;max-height:100dvh;padding:.5rem;overflow:hidden}.ep-sticker-book-modal{gap:.4rem;width:min(96vw,52rem);height:min(92dvh,56rem);max-height:94dvh;margin:0;padding:.7rem .9rem .75rem;overflow:hidden}.ep-sticker-book-modal__head{flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:6px 12px;min-width:0;display:flex}.ep-sticker-book-modal__title{text-align:center;flex-direction:column;min-width:0;margin:0;line-height:1.2;display:flex}.ep-sticker-book-modal__title-zh{color:#24344d;font-size:1.05rem;font-weight:900}.ep-sticker-book-modal__title-en{color:#66788f;font-size:.72rem;font-weight:700}.ep-sticker-book-modal__head .ep-sticker-book__switcher{flex-flow:row;justify-content:center;align-items:center;gap:4px 8px;display:flex}.ep-sticker-book-modal__head .ep-sticker-book__pager{gap:6px}.ep-sticker-book-modal__head .ep-sticker-book__pager-btn{width:36px;height:36px;font-size:1.35rem}.ep-sticker-book-modal__head .ep-sticker-book__pager-label{min-width:3.5rem}.ep-sticker-book-modal__head .ep-sticker-book__pager-label strong{font-size:.95rem}.ep-sticker-book-modal__foot{flex-shrink:0}.ep-sticker-book-modal__done{width:100%}.ep-sticker-book__instruction{color:var(--ep-green-700);margin:0;font-size:clamp(1.05rem,2.6vw,1.2rem);font-weight:800;line-height:1.45}.ep-sticker-book__instruction-en{color:#66788f;letter-spacing:.02em;margin:-6px 0 0;font-size:clamp(.95rem,2.3vw,1.05rem);font-weight:700;line-height:1.4}.ep-sticker-book__frame{filter:drop-shadow(0 10px 18px #18342424);align-items:stretch;width:min(100%,420px);margin:0 auto;display:flex;position:relative}.ep-sticker-book__cover-edge{z-index:0;background:linear-gradient(135deg,#8b5a2b 0%,#6d4522 48%,#9c6b43 100%);border-radius:0 18px 18px 4px;position:absolute;inset:-3px -6px -3px 10px}.ep-sticker-book__spine{z-index:1;background:linear-gradient(#7a4f2d 0%,#5c391f 52%,#7a4f2d 100%);border-radius:6px 0 0 6px;flex:0 0 clamp(18px,5vw,24px);justify-content:center;align-items:center;margin-top:6px;margin-bottom:6px;display:flex;position:relative;box-shadow:inset -2px 0 4px #0000002e,inset 2px 0 2px #ffffff1f}.ep-sticker-book__page{z-index:1;aspect-ratio:5/4;cursor:default;background:linear-gradient(#ffffff8c,#0000 18%),linear-gradient(90deg,#ffffff59,#0000 28%),#fffef8;border:2px solid #eadfce;border-left:none;border-radius:0 14px 14px 0;flex:auto;min-width:0;max-height:320px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffbf,inset -8px 0 12px #8b5a2b14}.ep-sticker-book__page--placing{border-color:var(--ep-green-400,#6ee7b7);cursor:crosshair;box-shadow:inset 0 0 0 1px #ffffffbf,inset -8px 0 12px #8b5a2b14,0 0 0 3px #6ee7b759}.ep-sticker-book__page-hint{color:#66788fb8;pointer-events:none;justify-content:center;align-items:center;margin:0;padding:0 16px;font-size:clamp(.92rem,2.2vw,1.02rem);font-weight:700;line-height:1.45;display:flex;position:absolute;inset:0}.ep-sticker-book__page-hint--active{color:var(--ep-green-700,#047857);font-weight:800}.ep-sticker-book__sticker{box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;width:clamp(48px,12.5vw,72px);min-width:clamp(48px,12.5vw,72px);max-width:clamp(48px,12.5vw,72px);height:clamp(48px,12.5vw,72px);min-height:clamp(48px,12.5vw,72px);max-height:clamp(48px,12.5vw,72px);transform:rotate(var(--sticker-rotate,0deg));border:1.5px solid #ffffffd9;border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:0;padding:1px;font-family:inherit;line-height:1;transition:transform .15s,box-shadow .15s,outline .15s;display:inline-flex;overflow:hidden;box-shadow:0 3px #35782b47,0 6px 14px #18342429}.ep-sticker-book__sticker--selected{outline:3px solid var(--ep-green-500,#34d399);outline-offset:2px;z-index:3;box-shadow:0 3px #35782b47,0 6px 14px #18342429,0 0 0 4px #34d39947}.ep-sticker-book__sticker-wrap{z-index:2;pointer-events:none;width:clamp(48px,12.5vw,72px);height:clamp(48px,12.5vw,72px);position:absolute;transform:translate(-50%,-50%)}.ep-sticker-book__sticker-wrap .ep-sticker-book__sticker,.ep-sticker-book__sticker-wrap .ep-sticker-book__sticker-remove{pointer-events:auto}.ep-sticker-book__sticker-wrap--selected{z-index:24}.ep-sticker-book__sticker-wrap .ep-sticker-book__sticker--placed{transform:rotate(var(--sticker-rotate,0deg));position:relative;top:auto;left:auto}.ep-sticker-book__sticker-remove{z-index:5;color:#fff;cursor:pointer;background:#111827;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:16px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-8px;right:-8px;box-shadow:0 2px 8px #0f172a59}.ep-sticker-book__sticker-remove:hover{background:#b91c1c}.ep-sticker-book__sticker--placed{z-index:2;transform:translate(-50%, -50%) rotate(var(--sticker-rotate,0deg));position:absolute}.ep-sticker-book__sticker--character{background:linear-gradient(#fff 0%,#f7fff4 100%)}.ep-sticker-book__sticker--mint{border-color:#5fbfae;box-shadow:0 3px #5fbfae73,0 6px 14px #18342429}.ep-sticker-book__sticker--sky{border-color:#5a9ee6;box-shadow:0 3px #5a9ee673,0 6px 14px #18342429}.ep-sticker-book__sticker--sun{border-color:#f0b93f;box-shadow:0 3px #f0b93f73,0 6px 14px #18342429}.ep-sticker-book__sticker--bloom{border-color:#d86eb8;box-shadow:0 3px #d86eb873,0 6px 14px #18342429}.ep-sticker-book__sticker--idiom-char{color:#fff}.ep-sticker-book__sticker--coral{background:linear-gradient(#ffb199,#ff7043);border-color:#ff8a65;box-shadow:0 3px #ff704373,0 6px 14px #18342429}.ep-sticker-book__sticker--leaf{background:linear-gradient(#ef5350,#c62828);border-color:#d32f2f;box-shadow:0 3px #c6282873,0 6px 14px #18342429}.ep-sticker-book__sticker--ocean{background:linear-gradient(#7ec8ff,#3d8fd9);border-color:#4a9ee6;box-shadow:0 3px #3d8fd973,0 6px 14px #18342429}.ep-sticker-book__sticker--grape{background:linear-gradient(#d4a8ff,#9b6bff);border-color:#b07ce8;box-shadow:0 3px #9b6bff73,0 6px 14px #18342429}.ep-sticker-book__sticker-char{pointer-events:none;flex:auto;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;font-size:clamp(1.55rem,4.4vw,2rem);font-weight:900;line-height:1;display:flex}.ep-sticker-book__sticker-img{object-fit:cover;pointer-events:none;border-radius:10px;flex:auto;width:100%;min-width:0;height:100%;min-height:0;display:block}.ep-sticker-book__sticker:hover{transform:rotate(var(--sticker-rotate,0deg)) translateY(-1px)}.ep-sticker-book__sticker--placed:hover{transform:translate(-50%, calc(-50% - 1px)) rotate(var(--sticker-rotate,0deg))}.ep-sticker-book__sticker:active{box-shadow:0 1px #35782b47,0 3px 8px #18342424}.ep-sticker-book__sticker--placed:active{transform:translate(-50%, calc(-50% + 1px)) rotate(var(--sticker-rotate,0deg))}.ep-sticker-book__pool-wrap{flex-direction:column;align-items:center;gap:8px;width:min(100%,420px);margin:0 auto;display:flex}.ep-sticker-book__pool-label{color:#3d5675;margin:0;font-size:clamp(1.05rem,2.5vw,1.15rem);font-weight:800}.ep-sticker-book__pool-label-en{color:#66788f;letter-spacing:.02em;margin:-4px 0 0;font-size:clamp(.92rem,2.2vw,1rem);font-weight:700}.ep-sticker-book__pool{border:2px dashed var(--ep-green-border);background:#ffffffb8;border-radius:18px;flex-flow:wrap;justify-content:center;align-items:center;gap:clamp(3px,.85vw,7px);width:100%;min-height:clamp(120px,30vw,168px);padding:8px 6px;transition:border-color .15s,background .15s;display:flex}.ep-sticker-book__pool--active{border-color:var(--ep-green-500,#34d399);cursor:pointer;background:#ecfdf5d9}.ep-summary .ep-panel--home.ep-summary-section{text-align:center;min-height:auto;display:block}.ep-summary .ep-panel--home.ep-summary-section>h2,.ep-summary .ep-panel--home.ep-summary-section .ep-summary-section__heading h2,.ep-summary .ep-panel--home.ep-summary-section>h3{color:#3d5675;text-align:center;margin-top:0;margin-bottom:clamp(8px,2vw,12px);font-size:clamp(1.2rem,3.2vw,1.4rem);font-weight:800;line-height:1.5}.ep-summary .ep-panel--home.ep-summary-section>p,.ep-summary .ep-panel--home.ep-summary-section>ul{color:#66788f;margin:0 0 8px;font-size:clamp(1.05rem,2.6vw,1.2rem);font-weight:700;line-height:1.45}.ep-summary .ep-panel--home.ep-summary-section>ul{padding-left:0;list-style:none}.ep-summary .ep-panel--home.ep-summary-section strong{color:#3d5675}.ep-summary-section--mini-games .ep-mini-game{width:100%}.ep-mini-game{text-align:center;flex-direction:column;align-items:center;gap:clamp(10px,2.4vw,16px);display:flex}.ep-mini-game--idiom-challenge{gap:clamp(12px,2.6vw,18px)}.ep-mini-game__steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,2vw,12px);width:min(100%,520px);margin:0;padding:0;list-style:none;display:grid}.ep-mini-game__step{color:#3d5675;background:#ffffffc7;border:2px solid #3d56752e;border-radius:14px;align-items:center;gap:8px;min-height:52px;padding:8px 10px;transition:border-color .2s,background-color .2s,box-shadow .2s,transform .15s;display:flex}.ep-mini-game__step.is-current{border-color:var(--ep-green-500);background:#ecfdf5f2;transform:translateY(-1px);box-shadow:0 4px 14px #10b9812e}.ep-mini-game__step.is-cleared{background:#ecfdf5e0;border-color:#10b98173}.ep-mini-game__step.is-locked{opacity:.55}.ep-mini-game__step-num{background:#3d56751a;border-radius:999px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:.9rem;font-weight:900;line-height:1;display:grid}.ep-mini-game__step.is-current .ep-mini-game__step-num,.ep-mini-game__step.is-cleared .ep-mini-game__step-num{background:var(--ep-green-500);color:#fff}.ep-mini-game__step-names{text-align:left;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;display:flex}.ep-mini-game__step-zh{font-size:clamp(.88rem,2.1vw,1rem);font-weight:800;line-height:1.2}.ep-mini-game__step-en{color:#66788f;font-size:clamp(.72rem,1.8vw,.82rem);font-weight:700;line-height:1.2}.ep-mini-game__slots--readonly{opacity:.92;margin-bottom:8px}.ep-mini-game__instruction{color:#3d5675;margin:0;font-size:clamp(1.05rem,2.6vw,1.2rem);font-weight:800;line-height:1.45}.ep-mini-game__instruction-en{color:#66788f;letter-spacing:.02em;margin:0;font-size:clamp(.95rem,2.2vw,1.05rem);font-weight:700;line-height:1.45}.ep-mini-game__title{color:var(--ep-green-700);margin:0;font-size:clamp(1.15rem,2.8vw,1.35rem);font-weight:900;line-height:1.4}.ep-mini-game__title-en{color:var(--ep-green-text-muted);letter-spacing:.02em;margin:-4px 0 0;font-size:clamp(.9rem,2.1vw,1rem);font-weight:700;line-height:1.4}.ep-mini-game__board{width:min(100%,520px)}.ep-mini-game__board--scenes{width:min(100%,560px)}.ep-mini-game__scenes{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2.4vw,14px);display:grid}.ep-mini-game__scene-progress,.ep-mini-game__sequence-progress{color:var(--ep-green-700);text-align:center;min-height:1.4em;font-size:clamp(.9rem,2.2vw,1rem);font-weight:800}.ep-mini-game__scene-slot{border:2px dashed var(--ep-green-border-strong);cursor:pointer;background:#ffffffe0;border-radius:16px;justify-content:center;align-items:center;min-height:clamp(88px,22vw,120px);padding:0;transition:border-color .2s,background-color .2s,transform .15s;display:flex;position:relative;overflow:hidden}.ep-mini-game__scene-slot:not(:disabled):hover{border-color:var(--ep-green-500);transform:scale(1.03)}.ep-mini-game__scene-slot:disabled{cursor:default}.ep-mini-game__scene-slot--filled{border-style:solid}.ep-mini-game__scene-slot--correct{border-color:var(--ep-green-600);background:var(--ep-green-100);box-shadow:0 3px 0 var(--ep-green-shadow)}.ep-mini-game__scene-slot--wrong{background:#fff0f0;border-color:#e07070;animation:.45s ep-mini-game-shake}.ep-mini-game__scene-img{object-fit:cover;pointer-events:none;width:100%;height:100%;min-height:clamp(88px,22vw,120px);display:block}.ep-mini-game__scene-drop-hint,.ep-mini-game__scene-click-hint{color:#fffffff2;text-shadow:0 1px 4px #00000073;pointer-events:none;justify-content:center;align-items:center;font-size:clamp(1.4rem,4vw,1.8rem);font-weight:900;display:flex;position:absolute;inset:0}.ep-mini-game__scene-badge{border:2px solid var(--ep-green-600);color:var(--ep-green-700);box-shadow:0 2px 0 var(--ep-green-shadow);pointer-events:none;background:#fffffff0;border-radius:999px;padding:4px 10px;font-size:clamp(.78rem,2vw,.92rem);font-weight:900;line-height:1.2;position:absolute;bottom:8px;left:8px}.ep-mini-game__slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,2vw,12px);display:grid}.ep-mini-game__slots--jyut{margin-top:2px}.ep-mini-game__slot{border:2px dashed var(--ep-green-border-strong);background:#ffffffe0;border-radius:16px;justify-content:center;align-items:center;min-height:clamp(52px,12vw,64px);transition:border-color .2s,background-color .2s,transform .2s;display:flex}.ep-mini-game__slot--jyut{border-radius:12px;min-height:clamp(44px,10vw,52px)}.ep-mini-game__slot--filled{border-style:solid}.ep-mini-game__slot--correct{border-color:var(--ep-green-600);background:var(--ep-green-100);box-shadow:0 3px 0 var(--ep-green-shadow)}@keyframes ep-mini-game-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.ep-mini-game__slot-hint{color:#9ab0a0;font-size:clamp(1.1rem,3vw,1.35rem);font-weight:800}.ep-mini-game__slot-value{color:var(--ep-green-700);font-size:clamp(1.5rem,4.5vw,2rem);font-weight:900;line-height:1}.ep-mini-game__slot-value--jyut{letter-spacing:.02em;font-size:clamp(.95rem,2.6vw,1.1rem);font-weight:800}.ep-mini-game__meaning-prompt{color:#3d5675;margin:2px 0 0;font-size:clamp(.98rem,2.5vw,1.08rem);font-weight:800;line-height:1.4}.ep-mini-game__meaning-prompt-en{color:#66788f;margin:0;font-size:clamp(.9rem,2.1vw,1rem);font-weight:700;line-height:1.4}.ep-mini-game__meaning-options{flex-direction:column;gap:clamp(8px,2vw,10px);min-width:0;margin-top:6px;display:flex}.ep-mini-game__meaning-option{color:#1d4ed8;text-align:center;cursor:pointer;background:#eff6ff;border:2px solid #93c5fd;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;min-width:0;min-height:56px;padding:10px 12px;font-family:inherit;font-size:clamp(.88rem,2.3vw,1rem);font-weight:800;line-height:1.35;transition:transform .15s,border-color .2s,background-color .2s;display:flex}.ep-mini-game__meaning-option:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.ep-mini-game__meaning-option-zh,.ep-mini-game__meaning-option-en{-webkit-line-clamp:2;color:inherit;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ep-mini-game__meaning-option-zh{font-size:clamp(1.2rem,2.2vh,1.4rem);font-weight:800;line-height:1.3}.ep-mini-game__meaning-option-en{opacity:.82;font-size:clamp(.9rem,1.6vh,1rem);font-weight:700;line-height:1.3}.ep-mini-game__meaning-option:hover:not(:disabled){background:#dbeafe;transform:translateY(-1px)}.ep-mini-game__meaning-option:disabled{cursor:default;opacity:.65}.ep-mini-game__meaning-option--correct{border-color:var(--ep-green-600);background:var(--ep-green-100);color:var(--ep-green-700);box-shadow:0 3px 0 var(--ep-green-shadow)}.ep-mini-game__meaning-option--wrong{color:#a03333;background:#fff0f0;border-color:#e07070;animation:.45s ep-mini-game-shake}.ep-mini-game__pool-row,.ep-mini-game__tile-row{flex-wrap:wrap;justify-content:center;gap:clamp(8px,2vw,12px);min-height:clamp(44px,10vw,52px);display:flex}.ep-mini-game__tile-row{margin-top:8px;margin-bottom:4px}.ep-mini-game__tile{border:2px solid var(--ep-green-600);background:linear-gradient(180deg, var(--ep-green-400), var(--ep-green-500));color:#fff;cursor:pointer;min-width:clamp(52px,12vw,64px);min-height:clamp(44px,10vw,52px);box-shadow:0 3px 0 var(--ep-green-700);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:14px;justify-content:center;align-items:center;padding:8px 14px;font-family:inherit;font-size:clamp(1.25rem,3.5vw,1.6rem);font-weight:900;line-height:1;transition:transform .15s,box-shadow .15s,border-color .2s,background .2s,opacity .2s;display:inline-flex;position:relative}.ep-mini-game__tile *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;pointer-events:none}.ep-mini-game__tile--matched{border-color:var(--ep-green-600);background:var(--ep-green-100);color:var(--ep-green-700);box-shadow:0 2px 0 var(--ep-green-shadow);cursor:default;opacity:.82}.ep-mini-game__tile--wrong{color:#a03333;background:#fff0f0;border-color:#e07070;animation:.45s ep-mini-game-shake}.ep-mini-game__tile-badge{border:2px solid var(--ep-green-600);min-width:1.35rem;height:1.35rem;color:var(--ep-green-700);box-shadow:0 2px 0 var(--ep-green-shadow);pointer-events:none;background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:.72rem;font-weight:900;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-6px}.ep-mini-game__tile--jyut{letter-spacing:.02em;min-width:clamp(64px,14vw,76px);font-size:clamp(.9rem,2.4vw,1rem);font-weight:800}.ep-mini-game__tile:hover{transform:translateY(-1px)}.ep-mini-game__tile:active:not(:disabled){box-shadow:0 1px 0 var(--ep-green-700);transform:translateY(1px)}.ep-mini-game__tile:disabled{cursor:default}.ep-mini-game--complete .ep-mini-game__pool,.ep-mini-game--complete .ep-mini-game__tile-row{opacity:.45;pointer-events:none}.ep-mini-game__complete{background:var(--ep-green-100);border:2px solid var(--ep-green-border-strong);border-radius:16px;flex-direction:column;align-items:center;gap:6px;margin-top:4px;padding:12px 16px;display:flex}.ep-mini-game__complete-text{color:var(--ep-green-700);margin:0;font-size:clamp(1.1rem,2.8vw,1.28rem);font-weight:900;line-height:1.45}.ep-mini-game__complete-text-en{color:var(--ep-green-text-muted);margin:0;font-size:clamp(.95rem,2.2vw,1.05rem);font-weight:700;line-height:1.45}.ep-mini-game__reset{border:2px solid var(--ep-green-600);color:var(--ep-green-700);cursor:pointer;box-shadow:0 2px 0 var(--ep-green-shadow);background:#fff;border-radius:999px;flex-direction:column;align-items:center;gap:2px;margin-top:4px;padding:8px 18px;font-family:inherit;font-size:clamp(.95rem,2.2vw,1.05rem);font-weight:800;display:inline-flex}.ep-mini-game__reset:hover{background:var(--ep-green-50)}.ep-mini-game__reset-en{letter-spacing:.02em;font-size:.82em;font-weight:700}.ep-character-card .ep-karaoke-line{margin-top:0}.ep-character-card .ep-karaoke-pairs{justify-content:center;gap:2px 6px}.ep-character-card .ep-karaoke-pair{gap:2px;min-width:2.4rem;padding:2px 4px 4px}.ep-character-card .ep-karaoke-char,.ep-character-card .ep-karaoke-punct{color:#24344d;font-size:clamp(1.25rem,4.5vw,1.65rem);font-weight:800;line-height:1.15}.ep-character-card .ep-karaoke-punct{gap:2px;padding:2px 4px 4px}.ep-character-card .ep-karaoke-syllable{letter-spacing:.02em;font-size:clamp(.7rem,2.4vw,.85rem)}.ep-ready-section.is-dimmed{opacity:.48;pointer-events:none}.ep-ready-section.is-dimmed .ep-ready-btn{cursor:not-allowed}.ep-ready-btn{min-width:min(100%,22rem);min-height:var(--ep-touch-min);color:#fff;letter-spacing:.01em;cursor:pointer;background:#2ec4a0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:.35em;padding:16px 28px;font-family:inherit;font-size:1.05rem;font-weight:700;line-height:1.3;transition:transform .15s,filter .15s,box-shadow .15s;display:inline-flex;box-shadow:0 8px 22px #2ec4a061}.ep-ready-btn:after{content:"›";font-size:1.2em;font-weight:700;line-height:1}.ep-ready-btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 10px 26px #2ec4a073}.ep-ready-btn:disabled{cursor:not-allowed;opacity:1;color:#4b5563;box-shadow:none;background:#d1d5db}.ep-ready-btn.is-just-unlocked{animation:1.1s ep-ready-unlock-pulse}@keyframes ep-ready-unlock-pulse{0%,to{transform:scale(1)}40%{transform:scale(1.05);box-shadow:0 12px 28px #2ec4a080}}@media (prefers-reduced-motion:reduce){.ep-ready-btn.is-just-unlocked,.ep-story-hero-intro.is-just-revealed .ep-story-hero-intro__meaning-body{animation:none}}.ep-story-workspace__canvas{flex-direction:column;width:100%;min-width:0;min-height:0;display:flex;position:relative;container-type:inline-size}.ep-story-workspace__canvas.is-countdown-open{overflow:hidden}.ep-main-tabs__panel.is-story-entering>#story{animation:.4s cubic-bezier(.22,1,.36,1) both ep-story-tab-enter}@keyframes ep-story-tab-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.ep-main-tabs__panel.is-story-entering>#story,.ep-main-tabs__panel.is-story-entering>#story .ep-story-hero,.ep-main-tabs__panel.is-story-entering>#story>.ep-story-card:first-of-type{animation:none}.ep-ready-btn:hover:not(:disabled){transform:none}}#story.ep-panel{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.ep-main-tabs__panel.is-story-entering>#story .ep-story-hero{animation:.55s cubic-bezier(.22,1,.36,1) both ep-page-enter}.ep-main-tabs__panel.is-story-entering>#story>.ep-story-card:first-of-type{animation:.55s cubic-bezier(.22,1,.36,1) .12s both ep-page-enter}.ep-story-card{border:2px solid var(--ep-green-border);box-shadow:0 8px 22px var(--ep-green-shadow), inset 0 1px 0 #ffffffd9;background:linear-gradient(#fffffff5 0%,#f6fbf3eb 100%);border-radius:20px;min-width:0;max-width:100%;margin-top:12px;padding:clamp(10px,2.5vw,14px);scroll-margin-top:16px;overflow:hidden}#story>.ep-story-card:first-child{margin-top:0}.ep-story-workspace{flex-direction:column;gap:14px;width:100%;min-width:0;margin-top:0;display:flex}.ep-scenes-viewport{border-radius:22px;width:100%;min-width:0;height:100%;position:relative;overflow:hidden}.ep-scenes-track{flex-direction:row;width:100%;height:100%;transition:transform .4s cubic-bezier(.25,1,.5,1);display:flex}.ep-scenes-track>.ep-story-card{flex-direction:column;flex:0 0 100%;width:100%;height:100%;min-height:min(78vh,820px);margin-top:0;display:flex}.ep-scenes-track>.ep-story-hero--slide{box-sizing:border-box;flex:0 0 100%;width:100%;height:100%;min-height:min(72vh,720px);margin-top:0;margin-bottom:0}.ep-scenes-track>.ep-story-hero--slide.ep-panel--home{background:var(--ep-scene-toolbar-bg);box-shadow:none;border:none;min-height:auto;padding:clamp(10px,2vw,16px) clamp(14px,3vw,24px)}body.ep-immersive .ep-scenes-track>.ep-story-hero--slide.ep-panel--home{height:100%;min-height:100%}.ep-scenes-track>.ep-story-hero--slide.ep-panel--hero{background:var(--ep-scene-toolbar-bg);box-shadow:none;border-color:#0000}.ep-scenes-track>.ep-story-hero--slide.ep-panel--home:before,.ep-scenes-track>.ep-story-hero--slide.ep-panel--home:after,.ep-scenes-track>.ep-story-hero--slide.ep-panel--hero:after{display:none}@media (width<=768px){body.ep-immersive .ep-story-workspace,body.ep-immersive .ep-story-workspace__canvas{height:100dvh;min-height:100dvh}body.ep-immersive .ep-scenes-viewport{flex:auto;height:auto;min-height:0}}@media (width>=769px){body.ep-immersive .ep-story-workspace{box-sizing:border-box;justify-content:center;align-items:center;min-height:100dvh;padding:clamp(8px,1.4vh,20px) clamp(8px,1.4vw,18px);display:flex}body.ep-immersive .ep-story-workspace__canvas{-webkit-backdrop-filter:none;width:min(1320px,96vw);height:min(97dvh,980px);max-height:min(97dvh,980px);box-shadow:none;background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;min-height:0;margin:0 auto;display:flex}body.ep-immersive .ep-story-workspace__canvas.is-hero{width:min(1120px,94vw);height:min(92dvh,900px);max-height:min(92dvh,900px)}body.ep-immersive .ep-story-workspace__canvas.is-hero .ep-scenes-viewport,body.ep-immersive .ep-story-workspace__canvas.is-hero .ep-scenes-track{flex:auto;align-items:stretch;height:100%}body.ep-immersive .ep-scenes-viewport{flex:0 auto;height:auto;min-height:0}body.ep-immersive .ep-scenes-track{align-items:flex-start;height:auto}body.ep-immersive .ep-scenes-track>.ep-story-card{align-self:flex-start;height:auto}body.ep-immersive .ep-story-workspace__canvas:has(.ep-scene-stage--theatre) .ep-scenes-viewport{flex:auto;height:100%}body.ep-immersive .ep-story-workspace__canvas:has(.ep-scene-stage--theatre) .ep-scenes-track{align-items:stretch;height:100%}body.ep-immersive .ep-story-workspace__canvas:has(.ep-scene-stage--theatre) .ep-scenes-track>.ep-story-card{align-self:stretch;height:100%}}.ep-story-card--locked{opacity:.72;flex-direction:column;justify-content:center;min-height:min(40vh,360px);display:flex}.ep-story-card__locked-note{text-align:center;color:#66788f;margin:.5rem 0 0;font-size:.88rem;font-weight:700}.ep-scene-nav-toolbar{border:2px solid var(--ep-green-border);box-shadow:0 8px 22px var(--ep-green-shadow);background:#fffffff0;border-radius:18px;grid-template-columns:1fr 1fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.ep-scene-nav-btn{color:#24344d;cursor:pointer;white-space:nowrap;background:#f8fafc;border:2px solid #d4e8d0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:.82rem;font-weight:800;display:inline-flex}.ep-scene-nav-btn:disabled{opacity:1;cursor:not-allowed;color:#6b7280;box-shadow:none;background:#d1d5db;border-color:#d1d5db}.ep-scene-nav-btn--previous:not(:disabled){color:#fff;background:#7c4dcc;border-color:#6b3fbf;box-shadow:0 4px 14px #7c4dcc47}.ep-scene-nav-btn--next:not(:disabled){color:#fff;background:#20a95b;border-color:#1a8f4d;box-shadow:0 4px 14px #20a95b47}.ep-scene-nav-btn--previous:not(:disabled):hover,.ep-scene-nav-btn--next:not(:disabled):hover{filter:brightness(1.05);transform:translateY(-1px)}@media (width<=720px){.ep-scene-nav-toolbar{grid-template-columns:1fr;gap:10px}.ep-scene-nav-btn{width:100%}}.ep-story-card h3{text-align:center;color:#2a5f8f;margin-top:0}.ep-story-card__header{justify-content:center;align-items:center;gap:.75rem;margin-bottom:4px;display:flex}.ep-story-card__header-text{text-align:center;flex:auto;min-width:0}.ep-story-card__header h3{text-align:center;min-width:0;margin:0;line-height:1.35}.ep-story-card__header-title-en{color:#66788f;letter-spacing:.02em;text-align:center;margin:2px 0 0;font-size:.88rem;font-weight:700;line-height:1.35}.ep-story-card>p>a{color:#24344d;background:#ece4ff;border-radius:999px;padding:6px 12px;font-weight:800;text-decoration:none;display:inline-flex}.ep-scene-image-wrap{background:linear-gradient(135deg, #d9f0ff, var(--ep-green-200));border-radius:16px;margin:12px 0;overflow:hidden;box-shadow:inset 0 0 0 1px #35782b14}.ep-scene-image-wrap:after{content:"";z-index:1;position:absolute;inset:0}.ep-scene-image-wrap img{object-fit:contain;object-position:center;background:var(--ep-green-50);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;pointer-events:none;border-radius:16px;width:100%;height:auto;max-height:min(78vh,820px);display:block}.ep-scene-stage{box-shadow:none;opacity:1;background:0 0;border-radius:14px;max-height:4000px;margin:8px 0 0;transition:min-height 1s,max-height .45s,opacity .45s;position:relative;overflow:hidden}.ep-scene-stage.is-collapsed{opacity:0;pointer-events:none;max-height:0;margin-top:0}.ep-scene-stage.is-listen-first .ep-scene-stage__image-area{min-height:calc(100svh - var(--ep-listen-first-chrome-offset));min-height:calc(100dvh - var(--ep-listen-first-chrome-offset))}.ep-scene-stage__image-area>.ep-scene-image-wrap,.ep-scene-stage__image-area>.ep-scene-stage__lines,.ep-scene-stage__image-area>.ep-scene-stage__actions,.ep-scene-stage__image-area>.ep-scene-listen-first-overlay{grid-area:1/1}.ep-scene-stage .ep-scene-image-wrap{z-index:0;min-height:100%;box-shadow:none;background:0 0;border-radius:0;place-self:stretch stretch;margin:0;position:relative}.ep-scene-stage .ep-scene-image-wrap img{object-fit:cover;object-position:center;border-radius:0;width:100%;height:100%;max-height:none;transition:filter 1s,transform 1s,opacity 1s;position:absolute;inset:0}.ep-scene-image-wrap{position:relative}.ep-scene-stage.is-listen-first .ep-scene-listen-first-overlay{min-height:100%}.ep-scene-listen-first-overlay{z-index:3;border-radius:inherit;-webkit-backdrop-filter:blur(10px)saturate(1.1);opacity:1;background:#ecf8f08c;justify-content:center;place-self:stretch stretch;align-items:center;min-height:min(52vh,480px);padding:clamp(16px,4vw,28px);transition:opacity .4s;display:flex;position:relative;overflow:hidden}.ep-scene-listen-first-overlay.is-exiting{opacity:0;pointer-events:none}.ep-scene-listen-all-btn--overlay .ep-listen-all-btn__main{font-size:1.38rem}.ep-scene-listen-all-btn--overlay .ep-listen-all-btn__en{font-size:1.06rem}.ep-scene-stage__lines.is-hidden{opacity:0;pointer-events:none}.ep-scene-stage.is-revealed .ep-scene-stage__lines{visibility:hidden;padding:0;position:absolute;inset:0;overflow:hidden}.ep-scene-stage--split.is-revealed .ep-scene-stage__lines{visibility:visible;opacity:1;pointer-events:auto;position:relative;inset:auto;overflow:visible}.ep-scene-stage .ep-audio-line{-webkit-backdrop-filter:blur(4px);background:#ffffffeb;align-items:center;gap:8px;margin-top:0;padding:8px 10px;display:flex}.ep-scene-stage .ep-audio-line .ep-karaoke-line{flex:1;min-width:0;margin-top:0}.ep-scene-stage .ep-karaoke-pair.is-tappable{cursor:pointer;background:#10b98114;border:1px solid #10b9812e;border-radius:8px;padding:2px 3px;transition:background .15s,transform .12s,box-shadow .15s}.ep-scene-stage .ep-karaoke-pair.is-tappable:hover{background:#10b9812e;box-shadow:0 2px 8px #10b98133}.ep-scene-stage .ep-karaoke-pair.is-tappable:active{background:#10b9814d;transform:scale(.9)}@keyframes ep-char-hint-pulse{0%{background:#10b98114;box-shadow:0 0 #10b98100}30%{background:#10b98138;box-shadow:0 0 0 5px #10b98140}60%{background:#10b98114;box-shadow:0 0 0 2px #10b9811a}to{background:#10b98114;box-shadow:0 0 #10b98100}}.ep-scene-stage .ep-karaoke-pairs>.ep-karaoke-pair.is-tappable:first-child,.ep-scene-stage .ep-karaoke-pairs>.ep-karaoke-unit:first-child>.ep-karaoke-pair.is-tappable{animation:1.2s ease-out 1.5s both ep-char-hint-pulse}.ep-scene-stage .ep-karaoke-pair.is-tappable.is-past{background:#10b98129;border-color:#10b98147}.ep-scene-stage .ep-karaoke-pair.is-tappable.is-active{background:#10b98152;border-color:#05966980;transform:scale(1.08);box-shadow:0 2px 6px #10b98140}.ep-scene-stage .ep-karaoke-pair.is-tappable.is-active .ep-karaoke-char,.ep-scene-stage .ep-karaoke-pair.is-tappable.is-active .ep-karaoke-syllable{color:#065f46}.ep-scene-stage .ep-audio-line.ep-scene-line-reveal{opacity:0;transform:translateY(18px)}.ep-scene-stage__lines.is-entered .ep-audio-line.ep-scene-line-reveal{animation:.5s cubic-bezier(.22,1,.36,1) both ep-page-enter}.ep-scene-stage__lines.is-hidden .ep-audio-line{opacity:0;transition:opacity 1s,transform 1s;transform:translateY(18px)}.ep-scene-stage__lines.is-entered .ep-audio-line.ep-scene-line-reveal.is-playing-line{opacity:1;transform:translateY(0)}.ep-scene-stage .ep-karaoke-pairs{gap:clamp(4px,.75vw,8px)}.ep-scene-stage .ep-karaoke-pair,.ep-scene-stage .ep-karaoke-punct{gap:2px;min-width:0;padding:2px 0 4px}.ep-scene-stage .ep-karaoke-pair .ep-karaoke-char,.ep-scene-stage .ep-karaoke-punct .ep-karaoke-char{font-size:clamp(1.75rem,5vw,2.2rem)}.ep-scene-stage .ep-karaoke-pair .ep-karaoke-syllable{font-size:clamp(.92rem,2.8vw,1.05rem)}.ep-scene-stage.is-revealed .ep-scene-stage__image-area{min-height:auto;display:block}.ep-scene-stage.is-revealed .ep-scene-image-wrap{z-index:auto;min-height:0;position:relative}.ep-scene-stage.is-revealed .ep-scene-image-wrap img{object-fit:contain;filter:blur();opacity:1;width:100%;height:auto;max-height:min(78vh,820px);position:static;inset:auto;transform:scale(1)}.ep-scene-stage.is-revealed .ep-scene-stage__lines{min-height:0}@media (prefers-reduced-motion:reduce){.ep-scene-stage,.ep-scene-stage__image-area,.ep-scene-stage .ep-scene-image-wrap img,.ep-scene-stage .ep-audio-line,.ep-scene-stage__lines,.ep-scene-listen-first-overlay,.ep-scene-listen-all-btn,.ep-hero-home-listen-all-btn{transition:none}.ep-scene-stage .ep-audio-line.ep-scene-line-reveal{opacity:1;transform:none}.ep-scene-stage__lines.is-entered .ep-audio-line.ep-scene-line-reveal{animation:none}.ep-scene-stage__lines.is-hidden .ep-audio-line,.ep-scene-stage:not(.is-revealed) .ep-audio-line{transition-delay:0s}}.ep-scene-listen-all-btn.is-playing{color:#fff;background:linear-gradient(#66788f,#4a5f78);border-color:#364559;box-shadow:0 3px #364559,0 6px 14px #1834242e}.ep-scene-complete-btn.is-locked,.ep-scene-complete-btn:disabled,.ep-scene-next-btn.is-locked,.ep-scene-next-btn:disabled{cursor:not-allowed;opacity:.45;filter:grayscale(.35);box-shadow:0 2px 0 var(--ep-green-700), 0 4px 12px #1834241a}.ep-scene-next-btn.is-locked,.ep-scene-next-btn:disabled{box-shadow:0 2px #1f4d7a,0 4px 12px #1834241a}.ep-scene-stage.is-revealed .ep-scene-complete-btn{background:linear-gradient(180deg, var(--ep-green-400), var(--ep-green-500));color:#fff;border-color:var(--ep-green-600)}.ep-scene-stage.is-revealed .ep-scene-next-btn:not(:disabled){color:#fff;background:linear-gradient(#5a8fc4,#3d72a8);border-color:#2e5e90}.ep-scene-stage.is-revealed .ep-scene-next-btn.is-auto-advancing .ep-scene-next-btn__progress{background:#ffffff47}.ep-story-card:has(.ep-scene-card-toolbar){padding-top:0;padding-left:0;padding-right:0}.ep-scene-card-toolbar{background:var(--ep-scene-toolbar-bg);border-bottom:1px solid #24344d14;justify-content:space-between;align-items:center;gap:8px;padding:4px 10px;display:flex}.ep-scene-card-toolbar__start{flex:auto;align-items:center;gap:8px;min-width:0;display:inline-flex}.ep-scene-card-toolbar__leading{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:inline-flex}.ep-scene-card-toolbar__leading .ep-learning-points-chip{opacity:.42;box-shadow:none;color:#7a8b9c;background:0 0;border-color:#0000;margin:0;padding:2px 8px;font-size:.65rem;font-weight:600}.ep-scene-card-toolbar__home{color:#24344d;white-space:nowrap;background:#fff;border:1px solid #24344d14;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:.95rem;font-weight:800;text-decoration:none;display:inline-flex;box-shadow:0 2px 8px #24344d14}.ep-scene-card-toolbar__home:hover,.ep-scene-card-toolbar__home:focus-visible{color:#1a2d45;background:#f8fbff}.ep-scene-card-toolbar__home-icon{color:#24344d;flex-shrink:0}.ep-scene-card-toolbar__controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ep-scene-card-toolbar__toggle.is-active{color:#1f7f8f;background:#3aa8b82e;border-color:#2a8f9f}@media (width<=640px){.ep-scene-card-toolbar{flex-wrap:wrap;padding:8px 10px}.ep-scene-card-toolbar__controls{justify-content:space-between;width:100%}}.ep-page--hide-jyutping .ep-karaoke-pair .ep-karaoke-syllable,.ep-page--hide-jyutping .ep-summary-jyutping,.ep-page--hide-english .ep-scene-line-en,.ep-page--hide-english .ep-reward-scene__line-en,.ep-page--hide-english .ep-story-hero-intro__kicker-en,.ep-page--hide-english .ep-story-hero-intro__meaning-label-en,.ep-page--hide-english .ep-story-hero-intro__meaning-en,.ep-page--hide-english .ep-story-hero-intro__prompt-en,.ep-page--hide-english .ep-story-hero-intro__listen-title-en,.ep-page--hide-english .ep-story-hero-intro__replay-en,.ep-page--hide-english .ep-story-hero-intro__actions .ep-ready-btn__en{display:none}.ep-audio-line__text{flex:1;min-width:0}.ep-scene-line-en{color:#1565c0;margin:6px 0 0;padding:0;font-size:clamp(.82rem,2.2vw,.95rem);font-weight:600;line-height:1.35}.ep-scene-stage .ep-audio-line .ep-audio-line__text .ep-karaoke-line{margin-top:0}.ep-story-hero--slide>.ep-scene-card-toolbar{border-bottom:none;border-radius:0;margin:0;padding-top:8px;padding-bottom:6px}.ep-story-card:not(.ep-story-card--locked){background:var(--ep-scene-toolbar-bg);border-color:#b8d4f0}.ep-story-card__header--scene-card{border-bottom:none;flex-direction:column;align-items:center;gap:2px;padding:2px 12px 0}.ep-story-card__header-text--scene-card h3{text-align:center;color:#24344d;flex-direction:column;align-items:center;margin:0;font-size:clamp(.95rem,2.2vmin,1.28rem);font-weight:800;line-height:1.15;display:flex}.ep-story-card__header-text--scene-card .ep-story-card__header-title-en{color:#66788f;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin:0;font-size:.68rem;font-weight:600;line-height:1.2;display:block;overflow:hidden}.ep-scenes-track>.ep-story-card>.ep-scene-stage--split .ep-scene-stage__split{flex:auto;min-height:0;overflow:hidden}.ep-scenes-track>.ep-story-card>.ep-scene-stage--split .ep-scene-stage__footer{z-index:2;background:#fff;flex-shrink:0;margin-top:auto;padding-block:clamp(4px,1vmin,10px);position:relative}.ep-scenes-track>.ep-story-card>.ep-scene-card-toolbar,.ep-scenes-track>.ep-story-card>.ep-story-card__header{z-index:3;background:var(--ep-scene-toolbar-bg,#fffbf2);flex-shrink:0;position:relative}.ep-scene-stage--split .ep-audio-line{-webkit-backdrop-filter:none;background:#fff;border:1px solid #24344d14;border-radius:clamp(10px,1.6vmin,14px);flex:none;grid-template-columns:auto 1fr;align-items:center;gap:clamp(6px,1.2vmin,10px);min-height:min-content;margin:0;padding:clamp(3px,.9vmin,10px) clamp(6px,1.2vmin,12px);display:grid;overflow:visible;box-shadow:0 4px 14px #24344d0f}.ep-scene-stage--split .ep-audio-line__text{min-height:min-content;overflow:visible}.ep-scene-stage--split .ep-play-btn--icon{color:#fff;background:linear-gradient(#5ec6d4,#3aa8b8);border:none;border-radius:999px;width:clamp(26px,4.6vmin,40px);min-width:clamp(26px,4.6vmin,40px);height:clamp(26px,4.6vmin,40px);min-height:clamp(26px,4.6vmin,40px);font-size:clamp(.68rem,2vmin,.9rem);box-shadow:0 4px 10px #3aa8b859}.ep-scene-stage--split .ep-karaoke-syllable{color:#9aa8b8;font-size:clamp(.52rem,1.6vmin,.78rem);line-height:1.1}.ep-scene-stage--split .ep-karaoke-char{color:#24344d;font-size:clamp(.78rem,2.4vmin,1.05rem);font-weight:700;line-height:1.1}.ep-scene-stage--split .ep-scene-line-en{margin-top:clamp(1px,.4vmin,6px);font-size:clamp(.62rem,1.7vmin,.92rem);line-height:1.15}.ep-scene-stage--split .ep-quest-listening-badge{margin-bottom:clamp(1px,.4vmin,4px);padding:1px 6px;font-size:clamp(.55rem,1.5vmin,.68rem)}.ep-scene-stage__media-col .ep-scene-image-wrap{z-index:0;min-height:100%;position:absolute;inset:0}.ep-scene-stage__media-col .ep-scene-image-wrap img{object-fit:cover;width:100%;height:100%;max-height:none;position:absolute;inset:0}.ep-scene-stage--split.is-revealed .ep-scene-stage__media-col .ep-scene-image-wrap{z-index:0;min-height:100%;position:absolute;inset:0}.ep-scene-stage--split.is-revealed .ep-scene-stage__media-col .ep-scene-image-wrap img{object-fit:cover;filter:none;opacity:1;width:100%;height:100%;max-height:none;position:absolute;inset:0;transform:none}.ep-scene-stage--split .ep-scene-listen-first-overlay{z-index:2;-webkit-backdrop-filter:blur(2px);background:#ffffff1f;padding:20px;inset:0}.ep-scene-listen-all-btn--circle .ep-listen-all-btn__main{color:#24344d;font-size:1.1rem}.ep-scene-listen-all-btn--circle .ep-listen-all-btn__en{color:#66788f;font-size:.88rem}.ep-scene-nav-toolbar--embedded{width:100%;box-shadow:none;background:#f8fafc;border:1px solid #24344d1a;border-radius:14px}.ep-scene-stage__footer{border-top:1px solid #24344d14;flex-direction:column;align-items:stretch;gap:12px;padding:12px 14px 16px;display:flex}.ep-scene-stage__footer--carousel-only{border-top:none;padding-top:0}.ep-scene-stage__footer-nav{width:100%}.ep-scene-stage__footer-nav .ep-scene-nav-btn--previous:not(:disabled){color:#24344d;box-shadow:none;background:#fff;border-color:#24344d2e}.ep-scene-stage__speed-btn.is-active{color:#24344d;background:#5ec6d42e;border-color:#5ec6d4}.ep-scene-stage.is-revealed .ep-scene-stage__media-col .ep-scene-image-wrap img{filter:none;opacity:1;transform:none}@media (width<=900px){.ep-scene-stage--split .ep-audio-line{flex:none}}@media (width<=640px){.ep-scene-stage__footer{flex-direction:column;align-items:stretch}}.ep-story-card.is-lazy{min-height:12rem}.ep-story-card.is-dimmed{opacity:.52;transition:opacity .45s}.ep-story-card:not(.is-dimmed){opacity:1;transition:opacity .45s}.ep-story-card.is-collapsed{padding-bottom:clamp(8px,2vw,10px)}.ep-story-card.is-collapsed .ep-story-card__header{margin-bottom:0}.ep-story-card.is-collapsed.is-dimmed .ep-story-card__header h3{color:#5a7f9f}.ep-story-card.is-completed.is-collapsed{background:linear-gradient(#fbfff9fa 0%,#f2faeef2 100%);border-color:#5cb84880}.ep-story-card.is-completed.is-collapsed .ep-story-card__header h3{color:#3a7a52}.ep-story-card.is-completed.is-collapsed .ep-story-card__header-title-en{color:#5a8a6a}.ep-story-card__header--activatable{cursor:pointer;text-align:center;width:100%;font:inherit;color:inherit;background:0 0;border:none;margin:0;padding:0}.ep-story-card__header--activatable:hover .ep-story-card__header-text h3,.ep-story-card__header--activatable:focus-visible .ep-story-card__header-text h3{color:var(--ep-green-700)}.ep-story-card.is-scene-arrived{animation:.72s cubic-bezier(.34,1.56,.64,1) both ep-scene-arrive-bounce,1.35s ease-out both ep-scene-arrive-glow}@keyframes ep-scene-arrive-bounce{0%{transform:scale(.97)translateY(6px)}50%{transform:scale(1.025)translateY(-2px)}to{transform:scale(1)translateY(0)}}@keyframes ep-scene-arrive-glow{0%{border-color:var(--ep-green-border);box-shadow:0 8px 22px var(--ep-green-shadow), inset 0 1px 0 #ffffffd9, 0 0 0 0 #7fcb6800}35%{border-color:var(--ep-green-500);box-shadow:0 14px 34px #5cb84852,inset 0 1px #ffffffeb,0 0 0 5px #7fcb6847}to{border-color:var(--ep-green-border);box-shadow:0 8px 22px var(--ep-green-shadow), inset 0 1px 0 #ffffffd9, 0 0 0 0 #7fcb6800}}@media (prefers-reduced-motion:reduce){.ep-story-card.is-scene-arrived{border-color:var(--ep-green-500);box-shadow:0 8px 22px var(--ep-green-shadow), 0 0 0 3px #7fcb6838;animation:none}}.ep-scene-placeholder{min-height:min(42vh,360px);box-shadow:none;background:0 0;border-radius:14px;margin:8px 0 0;position:relative;overflow:hidden}.ep-scene-placeholder__shimmer{background:linear-gradient(90deg,#fff0 0%,#ffffff8c 50%,#fff0 100%);animation:1.4s ease-in-out infinite ep-scene-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes ep-scene-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.ep-scene-placeholder__shimmer{opacity:.35;animation:none}}.ep-audio-line{background:#fff;border:2px solid #a8cce8;border-radius:16px;align-items:center;gap:10px;min-width:0;max-width:100%;margin-top:8px;padding:10px;display:flex;overflow-x:clip}.ep-audio-line .ep-karaoke-line{flex:1;min-width:0;margin-top:0}.ep-karaoke-line{min-width:0;max-width:100%;margin-top:10px;overflow-x:clip}.ep-karaoke-line:first-child{margin-top:0}.ep-karaoke-pairs{flex-wrap:wrap;align-items:flex-start;gap:8px 12px;max-width:100%;display:flex}.ep-karaoke-pair{border-radius:10px;flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;min-width:3.4rem;padding:6px 8px 8px;transition:background-color .1s,transform .1s;display:inline-flex}.ep-karaoke-pair .ep-karaoke-char{color:#24344d;margin:0;padding:0;font-size:2rem;font-weight:800;line-height:1.1;display:block}.ep-karaoke-pair .ep-karaoke-syllable{text-align:center;color:#66788f;white-space:nowrap;min-width:100%;margin:0;padding:0;font-size:.88rem;font-weight:600;line-height:1.2;display:block}.ep-karaoke-punct{color:#24344d;flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;min-width:0;padding:6px 2px 8px;font-size:2rem;font-weight:800;line-height:1.1;display:inline-flex}.ep-karaoke-punct .ep-karaoke-char{min-height:1.1em;font-size:inherit;line-height:1.1;font-weight:inherit;color:inherit;margin:0;padding:0;display:block}.ep-karaoke-punct .ep-karaoke-syllable{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.ep-karaoke-pair.is-active{background:#10b98152;transform:scale(1.03);box-shadow:0 3px #05966966}.ep-karaoke-pair.is-past{background:#10b9811f}.ep-karaoke-pair.is-active .ep-karaoke-char,.ep-karaoke-pair.is-active .ep-karaoke-syllable{color:#065f46}.ep-play-btn{min-width:var(--ep-play-btn-min-width);background:linear-gradient(180deg, var(--ep-green-400), var(--ep-green-500));color:#fff;letter-spacing:0;white-space:nowrap;cursor:pointer;min-height:52px;box-shadow:0 5px 0 var(--ep-green-700);-webkit-user-select:none;user-select:none;touch-action:manipulation;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0 24px;font-family:inherit;font-size:1.35rem;font-weight:900;line-height:1.1;display:inline-flex}.ep-play-btn.is-playing{background:linear-gradient(#66788f,#4a5f78);box-shadow:0 5px #364559}.ep-play-btn.is-locked,.ep-play-btn:disabled{cursor:wait;opacity:.82}.ep-play-btn--icon{width:2.5rem;min-width:0;height:2.5rem;box-shadow:0 3px 0 var(--ep-green-700);border-radius:50%;flex-shrink:0;align-self:center;padding:0;font-size:1.05rem;line-height:1}.ep-play-btn--icon.is-playing{box-shadow:0 3px #364559}.ep-play-btn--icon>span[aria-hidden=true]{justify-content:center;align-items:center;line-height:1;display:flex;transform:translateY(1px)}.ep-play-btn--icon.is-locked,.ep-play-btn--icon:disabled{cursor:pointer}.ep-scene-stage .ep-play-btn--icon{-webkit-backdrop-filter:blur(16px);width:clamp(2.25rem,6vw,2.75rem);height:clamp(2.25rem,6vw,2.75rem);color:var(--ep-green-700);background:#ffffff47;border:1px solid #ffffff73;font-size:clamp(.95rem,2.6vw,1.15rem);box-shadow:0 4px 16px #0000001a,inset 0 0 0 1px #ffffff1f}.ep-scene-stage .ep-play-btn--icon.is-playing{color:#fff;text-shadow:0 1px 2px #00000080,0 2px 6px #0000004d;background:#4a5f786b;border-color:#ffffff59;box-shadow:0 4px 16px #00000026,inset 0 0 0 1px #ffffff1a}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.ep-scene-stage .ep-play-btn--icon{background:#ffffffe0}.ep-scene-stage .ep-play-btn--icon.is-playing{background:#4a5f78d1}}@media (width>=761px){.ep-page{--ep-hero-home-listen-all-btn-min-width:12rem}}@media (width<=760px){.ep-page{--ep-speed-bar-clearance:calc(7.25rem + env(safe-area-inset-bottom,0px))}.ep-summary{grid-template-columns:1fr}.ep-panel--home{padding:12px 14px}.ep-panel--hero.ep-panel--home h1.ep-hero-home__title,.ep-hero-home__title .ep-karaoke-char,.ep-hero-home__title .ep-karaoke-punct{font-size:clamp(2rem,6vw,2.65rem)}.ep-hero-home__title .ep-karaoke-syllable{font-size:clamp(.82rem,2.4vw,1rem)}.ep-hero-home__title .ep-karaoke-pair{min-width:2.6rem;padding:3px 5px 5px}.ep-panel--hero.ep-panel--home .ep-hero-home__meaning,.ep-hero-home__meaning .ep-karaoke-char,.ep-hero-home__meaning .ep-karaoke-punct{font-size:clamp(1.2rem,3.5vw,1.45rem)}.ep-hero-home__meaning .ep-karaoke-syllable{font-size:clamp(.76rem,2.2vw,.92rem)}.ep-hero-home__meaning .ep-karaoke-pair,.ep-character-card .ep-karaoke-pair{min-width:2rem;padding:2px 3px 3px}.ep-character-card .ep-karaoke-char,.ep-character-card .ep-karaoke-punct{font-size:clamp(1.15rem,4.2vw,1.4rem)}.ep-character-card .ep-karaoke-syllable{font-size:clamp(.62rem,2.1vw,.75rem)}.ep-scene-stage .ep-play-btn--icon{width:2.1rem;height:2.1rem;font-size:.88rem;box-shadow:0 3px 12px #0000001a,inset 0 0 0 1px #ffffff1f}.ep-scene-stage .ep-play-btn--icon.is-playing{box-shadow:0 3px 12px #00000024,inset 0 0 0 1px #ffffff1a}.ep-scene-complete-btn.is-locked,.ep-scene-complete-btn:disabled,.ep-scene-next-btn.is-locked,.ep-scene-next-btn:disabled{box-shadow:0 2px 0 var(--ep-green-700), 0 4px 10px #1834241a}.ep-scene-next-btn.is-locked,.ep-scene-next-btn:disabled{box-shadow:0 2px #1f4d7a,0 4px 10px #1834241a}.ep-panel--hero.ep-panel--home h1,.ep-hero-brand .ep-hero-jyutping,.ep-hero-meaning p,.ep-hero-meaning__btn:not(.ep-hero-meaning__btn--plain){text-align:center}}@media (width<=480px){.ep-panel--home{padding:10px 10px 12px}.ep-story-card__header h3{font-size:clamp(.95rem,4.2vw,1.1rem)}.ep-story-card__header-title-en{font-size:.78rem}.ep-scene-complete-btn.is-locked,.ep-scene-complete-btn:disabled,.ep-scene-next-btn.is-locked,.ep-scene-next-btn:disabled{box-shadow:0 2px 0 var(--ep-green-700), 0 3px 8px #1834241a}.ep-scene-next-btn.is-locked,.ep-scene-next-btn:disabled{box-shadow:0 2px #1f4d7a,0 3px 8px #1834241a}.ep-panel--hero.ep-panel--home h1.ep-hero-home__title,.ep-hero-home__title .ep-karaoke-char,.ep-hero-home__title .ep-karaoke-punct{font-size:clamp(1.85rem,7.5vw,2.35rem)}.ep-hero-home__title .ep-karaoke-syllable{font-size:clamp(.78rem,2.8vw,.95rem)}.ep-hero-home__title .ep-karaoke-pair{gap:3px;min-width:2.4rem;padding:2px 4px 4px}.ep-panel--hero.ep-panel--home .ep-hero-home__meaning,.ep-hero-home__meaning .ep-karaoke-char,.ep-hero-home__meaning .ep-karaoke-punct{font-size:clamp(1.12rem,4vw,1.35rem)}.ep-hero-home__meaning .ep-karaoke-syllable{font-size:clamp(.72rem,2.4vw,.88rem)}.ep-hero-home__meaning .ep-karaoke-pair{min-width:2rem;padding:1px 3px 3px}}.ep-story-congrats{padding:6px 2px var(--ep-speed-bar-clearance);scroll-margin-top:16px;scroll-margin-bottom:var(--ep-speed-bar-clearance);margin-top:18px;position:relative;overflow:visible}.ep-story-congrats__confetti{pointer-events:none;z-index:3;height:140px;position:absolute;inset:-8px 0 auto;overflow:visible}.ep-story-congrats__confetti-piece{opacity:0;border-radius:2px;width:9px;height:13px;animation:2.8s ease-out infinite ep-congrats-confetti-fall;position:absolute;top:0}.ep-story-congrats__confetti-piece:first-child{background:#ff6b9d;animation-delay:0s;left:4%}.ep-story-congrats__confetti-piece:nth-child(2){background:#ffc857;width:7px;height:11px;animation-delay:.12s;left:9%}.ep-story-congrats__confetti-piece:nth-child(3){background:#4dceb6;animation-delay:.24s;left:14%}.ep-story-congrats__confetti-piece:nth-child(4){background:#6b9fff;width:6px;height:10px;animation-delay:80ms;left:19%}.ep-story-congrats__confetti-piece:nth-child(5){background:#c77dff;animation-delay:.36s;left:24%}.ep-story-congrats__confetti-piece:nth-child(6){background:#ff8f6b;animation-delay:.18s;left:29%}.ep-story-congrats__confetti-piece:nth-child(7){background:#ffd857;width:8px;height:12px;animation-delay:.44s;left:34%}.ep-story-congrats__confetti-piece:nth-child(8){background:#5be0c8;animation-delay:60ms;left:39%}.ep-story-congrats__confetti-piece:nth-child(9){background:#8bb5ff;animation-delay:.28s;left:44%}.ep-story-congrats__confetti-piece:nth-child(10){background:#e09dff;width:7px;height:11px;animation-delay:.52s;left:49%}.ep-story-congrats__confetti-piece:nth-child(11){background:#ff6b9d;animation-delay:.14s;left:54%}.ep-story-congrats__confetti-piece:nth-child(12){background:#ffc857;animation-delay:.4s;left:59%}.ep-story-congrats__confetti-piece:nth-child(13){background:#4dceb6;width:6px;height:10px;animation-delay:.22s;left:64%}.ep-story-congrats__confetti-piece:nth-child(14){background:#6b9fff;animation-delay:.48s;left:69%}.ep-story-congrats__confetti-piece:nth-child(15){background:#c77dff;animation-delay:.1s;left:74%}.ep-story-congrats__confetti-piece:nth-child(16){background:#ff8f6b;animation-delay:.32s;left:79%}.ep-story-congrats__confetti-piece:nth-child(17){background:#ffd857;width:8px;height:12px;animation-delay:.56s;left:84%}.ep-story-congrats__confetti-piece:nth-child(18){background:#5be0c8;animation-delay:.2s;left:89%}.ep-story-congrats__confetti-piece:nth-child(19){background:#8bb5ff;animation-delay:.38s;left:94%}.ep-story-congrats__confetti-piece:nth-child(20){background:#e09dff;width:7px;height:11px;animation-delay:.62s;left:7%}.ep-story-congrats__confetti-piece:nth-child(21){background:#ff6b9d;animation-delay:.68s;left:17%}.ep-story-congrats__confetti-piece:nth-child(22){background:#ffc857;animation-delay:.74s;left:27%}.ep-story-congrats__confetti-piece:nth-child(23){background:#4dceb6;width:6px;height:10px;animation-delay:.8s;left:37%}.ep-story-congrats__confetti-piece:nth-child(24){background:#6b9fff;animation-delay:.86s;left:47%}.ep-story-congrats__confetti-piece:nth-child(25){background:#c77dff;animation-delay:.92s;left:57%}.ep-story-congrats__confetti-piece:nth-child(26){background:#ff8f6b;animation-delay:.98s;left:67%}.ep-story-congrats__confetti-piece:nth-child(27){background:#ffd857;width:8px;height:12px;animation-delay:1.04s;left:77%}.ep-story-congrats__confetti-piece:nth-child(28){background:#5be0c8;animation-delay:1.1s;left:87%}@keyframes ep-congrats-confetti-fall{0%{opacity:0;transform:translateY(-16px)rotate(0)scale(.6)}12%{opacity:1}to{opacity:0;transform:translateY(130px)rotate(540deg)scale(1)}}@media (prefers-reduced-motion:reduce){.ep-story-congrats__confetti-piece,.ep-story-congrats__sparkle{display:none}}.handwriting-game-container.is-step-success .handwriting-game-container__workspace{animation:.7s handwriting-step-success}@keyframes handwriting-step-success{0%,to{box-shadow:0 0 #2e7d3200}40%{box-shadow:0 0 0 6px #2e7d3247}}@keyframes handwriting-flash-fade{0%{opacity:0;transform:scale(.85)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}.ep-story-card--handwriting{min-height:0;overflow:hidden}.ep-story-card--handwriting>.ep-story-card__header,.ep-story-card--handwriting>.ep-scene-card-toolbar,.ep-story-card--handwriting>.ep-scene-stage__footer{flex-shrink:0}.ep-story-card--handwriting>.ep-scene-stage__footer{z-index:2;background:#fff;margin-top:auto;position:relative}.ep-scene-stage--handwriting{flex-direction:column;flex:auto;min-height:0;margin-top:0;display:flex;overflow:hidden}.ep-story-card--idiom-challenge{min-height:0;overflow:auto}.ep-story-card--idiom-challenge>.ep-story-card__header,.ep-story-card--idiom-challenge>.ep-scene-stage__footer{flex-shrink:0}.ep-story-card--idiom-challenge>.ep-scene-stage__footer{z-index:2;background:#fff;margin-top:auto;position:relative}.ep-scene-stage--idiom-challenge{flex-direction:column;flex:auto;min-height:0;margin-top:0;padding:8px 4px 12px;display:flex;overflow:auto}.ep-scene-stage--idiom-challenge>.ep-mini-game{flex:auto;min-height:0}.ep-scene-stage--handwriting>.stroke-workshop-game,.ep-scene-stage--handwriting>.stroke-workshop-flow{flex:auto;height:100%;min-height:0}.stroke-workshop-flow{flex-direction:column;gap:.45rem;height:100%;min-height:0;display:flex}.stroke-workshop-flow>.stroke-workshop-game{flex:auto;min-height:0}.stroke-workshop-flow__play-header{flex-shrink:0;align-items:center;gap:.55rem;padding:0 .15rem;display:flex}.stroke-workshop-flow__back{border:1px solid color-mix(in srgb, var(--ep-green,#0d9488) 35%, transparent);background:color-mix(in srgb, var(--ep-green,#0d9488) 10%, #fff);color:#0f766e;cursor:pointer;border-radius:999px;padding:.28rem .7rem;font-size:.78rem;font-weight:700}.stroke-workshop-flow__play-title{flex-direction:column;gap:.05rem;min-width:0;margin:0;display:flex}.stroke-workshop-flow__play-zh{color:#0f766e;font-size:.92rem;font-weight:800}.stroke-workshop-flow__play-en{color:#64748b;font-size:.72rem}.stroke-workshop-flow--map,.stroke-workshop-flow--celebrate{justify-content:center;align-items:stretch;padding:.35rem .2rem .55rem;overflow:auto}.stroke-workshop-map__subtitle{color:#475569;margin:.35rem 0 0;font-size:.78rem}.stroke-workshop-map__ladder{flex-direction:column;gap:.45rem;width:100%;max-width:22rem;margin:0 auto;display:flex}.stroke-workshop-map__level{text-align:left;border:1.5px solid color-mix(in srgb, var(--ep-green,#0d9488) 28%, #cbd5e1);cursor:pointer;background:linear-gradient(135deg,#eefdf6,#f5fefc);border-radius:.9rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;width:100%;padding:.55rem .75rem;transition:transform .15s,border-color .15s,box-shadow .15s;display:grid}.stroke-workshop-map__level.is-unlocked:hover{border-color:#0d9488;transform:translateY(-1px);box-shadow:0 6px 16px #0d948829}.stroke-workshop-map__level.is-locked,.stroke-workshop-map__level.is-secret{opacity:.55;cursor:not-allowed;background:#f8fafc;border-color:#cbd5e1}.stroke-workshop-map__level.is-cleared{border-color:#14b8a6}.stroke-workshop-map__level.is-next{border-color:#0d9488;animation:1.6s ease-in-out infinite stroke-workshop-map-pulse;box-shadow:0 0 0 2px #0d948838}.stroke-workshop-map__level.is-tease{opacity:1;border-style:dashed;border-color:#0d9488}@keyframes stroke-workshop-map-pulse{0%,to{box-shadow:0 0 0 2px #0d94882e}50%{box-shadow:0 0 0 4px #0d948847}}.stroke-workshop-map__level-names{flex-direction:column;gap:.05rem;min-width:0;display:flex}.stroke-workshop-map__level-zh{color:#134e4a;font-size:.95rem;font-weight:800}.stroke-workshop-map__level-en{color:#64748b;font-size:.72rem}.stroke-workshop-map__level-reward{color:#0d9488;font-size:.78rem;font-weight:800}.stroke-workshop-flow--celebrate{text-align:center;gap:.35rem}.stroke-workshop-celebrate__badge{margin:0;font-size:2rem;animation:.55s cubic-bezier(.22,1,.36,1) stroke-workshop-badge-unlock}.stroke-workshop-celebrate__zh{color:#0f766e;margin:0;font-size:1.2rem;font-weight:800}.stroke-workshop-celebrate__en{color:#64748b;margin:0;font-size:.88rem}.stroke-workshop-celebrate__reward{color:#ea580c;margin:.35rem 0 0;font-size:1.05rem;font-weight:800}.stroke-workshop-celebrate__reward--replay{color:#64748b;font-size:.88rem;font-weight:600}.stroke-workshop-celebrate__tease{color:#7c3aed;flex-direction:column;gap:.1rem;margin:.45rem 0 0;font-size:.95rem;font-weight:700;display:flex}.stroke-workshop-celebrate__tease-en{color:#8b5cf6;font-size:.78rem;font-weight:600}.stroke-workshop-celebrate__actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.75rem;display:flex}.stroke-workshop-celebrate__next,.stroke-workshop-celebrate__map{cursor:pointer;border-radius:999px;padding:.45rem 1rem;font-size:.88rem;font-weight:800}.stroke-workshop-celebrate__next{color:#fff;background:#0d9488;border:none}.stroke-workshop-celebrate__next:hover{background:#0f766e}.stroke-workshop-celebrate__map{color:#0f766e;background:#fff;border:1.5px solid #0d948866}.stroke-workshop-game--hologram{box-sizing:border-box;touch-action:none;background:linear-gradient(145deg,#f0fdf9 0%,#ecfdf5 45%,#f0f9ff 100%);border:1.5px solid #10b9812e;border-radius:22px;flex-direction:column;gap:clamp(6px,1vw,10px);width:100%;max-width:920px;margin:0 auto;padding:clamp(8px,1.2vw,14px);display:flex;box-shadow:inset 0 1px #ffffffe6,0 8px 32px #0d94881f,0 2px 8px #0000000f}.stroke-workshop-game__prompt{text-align:center;-webkit-backdrop-filter:blur(12px);background:#ffffffbf;border:1px solid #10b98138;border-radius:14px;flex-shrink:0;width:100%;padding:clamp(6px,1vw,10px) clamp(10px,1.5vw,16px);box-shadow:0 4px 16px #0d948814}.stroke-workshop-game__prompt-zh{color:#134e4a;margin:0 0 4px;font-size:clamp(1.25rem,2.4vw,1.65rem);font-weight:800;line-height:1.35}.stroke-workshop-game__prompt-en{color:#0d9488;margin:0 0 6px;font-size:clamp(.95rem,1.6vw,1.05rem);font-weight:600}.stroke-workshop-game__main{flex-direction:row;flex:auto;align-items:stretch;gap:12px;min-height:0;display:flex}.stroke-workshop-game__assembly-column{flex-direction:column;flex:none;justify-content:center;align-items:center;gap:8px;display:flex}.stroke-workshop-game__hint{color:#b45309;cursor:pointer;background:#fffbebf2;border:1.5px solid #f59e0b73;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;min-height:48px;padding:8px 16px;font-size:.88rem;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex;box-shadow:0 2px 10px #f59e0b26}.stroke-workshop-game__hint:hover{background:#fffbeb;transform:translateY(-1px);box-shadow:0 4px 14px #f59e0b38}.stroke-workshop-game__hint.is-active{background:#fef3c7;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}.stroke-workshop-game__hint-en{opacity:.85;font-size:.78rem;font-weight:600}.stroke-workshop-game__grid{aspect-ratio:1;-webkit-backdrop-filter:blur(16px);transform-origin:50%;background:#ffffffe0;border:2px solid #0d948840;border-radius:18px;flex:none;width:clamp(160px,30vw,260px);margin:0;transition:transform .35s;position:relative;overflow:hidden;box-shadow:0 0 0 4px #10b98114,0 4px 24px #0d948824}.stroke-workshop-game--hologram.is-char-success .stroke-workshop-game__grid{animation:.65s cubic-bezier(.22,1,.36,1) forwards stroke-workshop-grid-shrink}@keyframes stroke-workshop-grid-shrink{0%{transform:scale(1)}40%{transform:scale(.88)}to{transform:scale(.92)}}.stroke-workshop-game__grid.is-snap-flash{animation:.32s stroke-workshop-snap-flash}@keyframes stroke-workshop-snap-flash{0%,to{box-shadow:0 0 0 4px #10b98114,0 4px 24px #0d948824}50%{box-shadow:0 0 0 6px #fbbf2459,0 0 28px #fbbf2480,inset 0 0 20px #fbbf241f}}.stroke-workshop-game__guide-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.stroke-workshop-game__stroke-line.is-locked{stroke:#f59e0b;filter:drop-shadow(0 0 4px #f59e0b8c)}.stroke-workshop-game__stroke-line.is-hinted{animation:.9s ease-in-out infinite stroke-workshop-hint-pulse}@keyframes stroke-workshop-hint-pulse{0%,to{stroke-opacity:.85}50%{stroke-opacity:1}}.stroke-workshop-game__char-flash{color:#f59e0b;pointer-events:none;text-shadow:0 0 20px #fbbf2499;background:#ffffff8c;justify-content:center;align-items:center;font-size:clamp(3rem,12vw,5rem);animation:.85s forwards handwriting-flash-fade;display:flex;position:absolute;inset:0}.stroke-workshop-game__dock{grid-template-columns:repeat(var(--dock-cols,3), var(--piece-size,72px));grid-auto-rows:var(--piece-size,72px);place-content:center;gap:var(--dock-gap,8px);-webkit-backdrop-filter:blur(10px);background:#ffffffb3;border:1.5px solid #0d94882e;border-radius:16px;flex:1 1 0;min-width:0;min-height:0;padding:10px 12px;display:grid;overflow:visible;box-shadow:0 2px 12px #0d948814}.stroke-workshop-game__dock.is-empty{grid-template-columns:none;grid-auto-rows:auto;justify-content:center;align-items:center;display:flex}.stroke-workshop-game__dock-msg{text-align:center;color:#0f766e;text-shadow:0 0 12px #0d948840;max-width:100%;margin:0;padding:4px 8px;font-size:clamp(.95rem,2.2vw,1.15rem);font-weight:800;line-height:1.3}.stroke-workshop-game__dock-msg-en{color:#0d9488;margin-top:2px;font-size:clamp(.78rem,1.6vw,.9rem);font-weight:600;line-height:1.25;display:block}.stroke-workshop-game__piece{width:var(--piece-size,72px);height:var(--piece-size,72px);cursor:pointer;background:#ffffffe6;border:2px solid #94a3b84d;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:clamp(4px,8%,10px);transition:transform .15s,box-shadow .15s;display:flex;box-shadow:inset 0 1px #fff,0 3px 10px #00000012}.stroke-workshop-game__piece:hover{transform:scale(1.06);box-shadow:inset 0 1px #fff,0 6px 18px #0000001f}.stroke-workshop-game__piece:active{transform:scale(.94)}.stroke-workshop-game__piece.is-shaking{animation:.45s stroke-workshop-shake}@keyframes stroke-workshop-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}.stroke-workshop-game__piece.is-hinted{box-shadow:0 0 0 3px color-mix(in srgb, var(--stroke-color) 35%, transparent), 0 0 18px color-mix(in srgb, var(--stroke-color) 45%, transparent);z-index:1;animation:.85s ease-in-out infinite stroke-workshop-piece-hint;transform:scale(1.04);border-color:var(--stroke-color)!important;background:color-mix(in srgb, var(--stroke-color) 18%, transparent)!important}@keyframes stroke-workshop-piece-hint{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--stroke-color) 28%, transparent), 0 0 14px color-mix(in srgb, var(--stroke-color) 35%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--stroke-color) 42%, transparent), 0 0 22px color-mix(in srgb, var(--stroke-color) 55%, transparent)}}.stroke-workshop-game__piece-svg{flex-shrink:0;width:80%;height:80%}.stroke-workshop-game__next{cursor:pointer;color:#fff;background:linear-gradient(135deg,#0d9488,#10b981);border:none;border-radius:999px;align-items:center;gap:6px;padding:8px 24px;font-size:.95rem;font-weight:700;transition:transform .15s,box-shadow .15s;animation:.3s cubic-bezier(.34,1.56,.64,1) next-btn-pop;display:inline-flex;box-shadow:0 4px 14px #0d948859}.stroke-workshop-game__next:hover{transform:scale(1.05);box-shadow:0 6px 20px #0d948873}@keyframes next-btn-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.stroke-workshop-game__complete{text-align:center;color:#0f766e;flex-shrink:0;grid-column:1/-1;margin:0;font-size:1.05rem;font-weight:700}.stroke-workshop-game__complete-en{color:#0d9488;margin-top:4px;font-size:.92rem;font-weight:600;display:block}.stroke-workshop-game__collection{flex-shrink:0;grid-column:1/-1;justify-content:center;align-items:center;gap:clamp(8px,2vw,14px);padding:2px 0 4px;display:flex}.stroke-workshop-game__badge-slot{border-radius:14px;justify-content:center;align-items:center;width:clamp(56px,9vw,72px);height:clamp(56px,9vw,72px);padding:0;transition:background .3s,border-color .3s,box-shadow .3s;display:flex;position:relative}.stroke-workshop-game__badge-slot.is-empty{background:#f0fdfa99;border:1.5px dashed #0d948873;box-shadow:inset 0 1px 2px #0000000a}.stroke-workshop-game__badge-slot.is-flying{border-color:#fbbf2499;box-shadow:0 0 16px #fbbf2473}.stroke-workshop-game__badge-slot.is-replay{cursor:pointer}.stroke-workshop-game__badge-slot.is-replay:hover{transform:scale(1.1);box-shadow:0 0 0 3px #fbbf2459,0 0 16px #fbbf244d}.stroke-workshop-game__badge-slot.is-active{box-shadow:0 0 0 2px #0d948880,0 0 12px #0d948840}.stroke-workshop-game__badge-slot.is-complete{background:#ccfbf1;border:1.5px solid #0f766e;animation:.55s cubic-bezier(.22,1,.36,1) stroke-workshop-badge-unlock;box-shadow:0 0 0 2px #0f766e2e,0 0 16px #0f766e38}.stroke-workshop-game__badge-slot.is-complete:before{content:"";pointer-events:none;border:2px solid #0f766e47;border-radius:16px;animation:2.4s ease-in-out infinite stroke-workshop-star-ring;position:absolute;inset:-4px;box-shadow:0 0 12px #0f766e47,inset 0 0 8px #0f766e1a}@keyframes stroke-workshop-badge-unlock{0%{opacity:.4;transform:scale(.6)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes stroke-workshop-star-ring{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.stroke-workshop-game__badge-char{z-index:1;color:#0f766e;font-family:KaiTi,STKaiti,楷体,serif;font-size:clamp(33.6px,5.4vw,43.2px);font-weight:700;line-height:1;position:relative}.stroke-workshop-game__badge-char.is-placeholder{color:#3f5c54;opacity:1}.stroke-workshop-game__fly-clone{z-index:1300;pointer-events:none;background:#fffffff2;border:2px solid #fbbf2499;border-radius:16px;justify-content:center;align-items:center;width:clamp(64px,14vw,88px);height:clamp(64px,14vw,88px);animation:.65s cubic-bezier(.22,1,.36,1) forwards stroke-workshop-fly-to-badge;display:flex;position:fixed;box-shadow:0 0 24px #fbbf2466}.stroke-workshop-game__fly-clone-char{color:#92400e;text-shadow:0 0 12px #fbbf2480;font-family:KaiTi,STKaiti,楷体,serif;font-size:clamp(2rem,6vw,2.75rem)}@keyframes stroke-workshop-fly-to-badge{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}70%{opacity:.95}to{transform:translate(calc(-50% + var(--fly-dx,0px)), calc(-50% + var(--fly-dy,0px))) scale(.35);opacity:0}}@media (width<=720px){.stroke-workshop-game__main{flex-direction:column;align-items:center;width:100%}.stroke-workshop-game__assembly-column{flex:none}.stroke-workshop-game__grid{width:min(260px,72vw)}.stroke-workshop-game__dock{flex:auto;align-self:stretch;width:100%;min-height:0}}.ep-scene-stage--handwriting .ep-scene-stage__body{padding:clamp(12px,2vw,20px)}.ep-story-card--reward{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.ep-story-card--reward>.ep-story-card__header,.ep-story-card--reward>.ep-scene-stage__footer{flex-shrink:0}.ep-reward-scene{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-behavior:smooth;flex:auto;min-height:0;margin-top:0;padding:clamp(8px,1.5vw,16px);overflow:hidden auto}.ep-reward-scene.is-collapsed{display:none}.ep-scene-next-btn:disabled,.ep-scene-next-btn.is-locked{animation:none}.ep-page .ep-scene-complete-btn,.ep-page .ep-story-hero-intro__replay{min-width:12rem}.ep-page .ep-ready-btn,.ep-page .ep-scene-listen-all-btn,.ep-page .ep-hero-home-listen-all-btn,.ep-page .ep-handwriting__clear,.ep-page .ep-mini-game__reset,.ep-page .ep-story-congrats__summary-btn,.ep-page .ep-speed-btn{min-width:var(--ep-touch-min);min-height:var(--ep-touch-min)}.ep-story-card__header:has(.ep-scene-node-tracker){flex-direction:column;align-items:stretch;gap:.5rem}.ep-scene-node-tracker{justify-content:center;align-items:center;gap:clamp(.45rem,2vw,.75rem);padding:.35rem .5rem .15rem;display:flex}.ep-scene-node-tracker__node{border-radius:50%;width:clamp(14px,3vw,18px);height:clamp(14px,3vw,18px);position:relative}.ep-scene-node-tracker__core{background:#2a5f8f40;border:2px solid #2a5f8f59;border-radius:50%;transition:background .25s,border-color .25s,transform .25s;position:absolute;inset:3px}.ep-scene-node-tracker__glow{opacity:0;background:radial-gradient(circle,#4caf508c 0%,#0000 70%);border-radius:50%;transition:opacity .25s;position:absolute;inset:0}.ep-scene-node-tracker__node.is-current .ep-scene-node-tracker__core{background:#fff;border-color:#4caf50;transform:scale(1.08);box-shadow:0 0 0 2px #4caf5040}.ep-scene-node-tracker__node.is-current .ep-scene-node-tracker__glow{opacity:1;animation:1.8s ease-in-out infinite ep-scene-node-pulse}.ep-scene-node-tracker__node.is-complete .ep-scene-node-tracker__core{background:#4caf50;border-color:#388e3c}.ep-scene-node-tracker__node.is-complete .ep-scene-node-tracker__glow{opacity:.45}@keyframes ep-scene-node-pulse{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}.ep-idiom-check__btn.is-listening{color:#1565c0;background:#e3f2fd;border-color:#1565c0;animation:1.2s ease-in-out infinite ep-idiom-listen-pulse}.ep-idiom-check__message.is-success{color:#2e7d32}@keyframes ep-idiom-listen-pulse{0%,to{box-shadow:0 0 #1565c040}50%{box-shadow:0 0 0 6px #1565c014}}@media (prefers-reduced-motion:reduce){.ep-scene-node-tracker__node.is-current .ep-scene-node-tracker__glow,.ep-idiom-check__btn.is-listening{animation:none}}.ep-page img,.ep-page .ep-reward-scene__image,.ep-page .ep-character-portrait{pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.ep-story-card.is-first-listen-locked .ep-karaoke-char,.ep-scene-stage.is-first-listen-locked .ep-karaoke-char,.ep-story-card.is-first-listen-locked .ep-karaoke-punct,.ep-scene-stage.is-first-listen-locked .ep-karaoke-punct{visibility:visible}.ep-story-card.is-first-listen-locked .ep-karaoke-syllable,.ep-scene-stage.is-first-listen-locked .ep-karaoke-syllable,.ep-story-card.is-first-listen-locked .ep-scene-line-en,.ep-scene-stage.is-first-listen-locked .ep-scene-line-en{visibility:hidden}.ep-scene-card-toolbar__toggle.is-disabled{opacity:.45;cursor:not-allowed}.ep-scene-card-toolbar__helpers-toggle{color:#24344d;cursor:pointer;background:#ffffffe0;border:1px solid #24344d24;border-radius:999px;padding:6px 12px;font-size:.72rem;font-weight:800}.ep-scene-card-toolbar__helpers-toggle.is-open{color:#1565c0;background:#2196f31f;border-color:#2196f359}.ep-scene-card-toolbar__helpers-panel{flex-wrap:wrap;gap:8px;display:flex}.ep-audio-line.is-disabled{opacity:.55}.ep-audio-line.is-first-listen-active{background:#2196f31f;border:2px solid #2196f3d9;border-radius:14px;animation:1.4s ease-in-out infinite ep-quest-line-glow;box-shadow:0 0 0 3px #42a5f538,0 8px 22px #1565c02e}.ep-audio-line.is-first-listen-active .ep-karaoke-char,.ep-audio-line.is-first-listen-active .ep-karaoke-punct{color:#1565c0}.ep-audio-line.is-quest-done{background:#2eb26e1a;border:2px solid #2eb26e59;border-radius:14px}.ep-play-btn.is-quest-check{color:#fff;background:linear-gradient(#6ed69a,#2eb26e);box-shadow:0 4px 12px #2eb26e59}.ep-quest-listening-badge{color:#1565c0;letter-spacing:.01em;background:#2196f324;border-radius:999px;margin-bottom:4px;padding:2px 8px;font-size:.68rem;font-weight:800;display:inline-block}.ep-learning-points-chip{text-align:center;color:#1e3a5f;background:#ffffffeb;border:1px solid #1e3a5f24;border-radius:999px;max-width:min(720px,100%);margin:0;padding:6px 12px;font-size:.82rem;font-weight:800;box-shadow:0 1px 4px #1e3a5f0f}.ep-scene-quest-star.is-filled{opacity:1;transform:scale(1.08)}.ep-scene-unlock-sparkles{pointer-events:none;z-index:2;position:absolute;inset:0}.ep-scene-unlock-sparkle{color:#ffd54f;text-shadow:0 0 8px #ffd54fb3;font-size:1.1rem;animation:1.6s ease-in-out infinite ep-quest-sparkle;position:absolute}.ep-scene-unlock-sparkle--1{animation-delay:0s;top:12%;left:10%}.ep-scene-unlock-sparkle--2{animation-delay:.25s;top:18%;right:12%}.ep-scene-unlock-sparkle--3{animation-delay:.5s;top:42%;left:6%}.ep-scene-unlock-sparkle--4{animation-delay:.75s;top:55%;right:8%}.ep-scene-unlock-sparkle--5{font-size:1.35rem;animation-delay:1s;top:8%;left:48%}.ep-scene-stage.is-unlock-animating .ep-scene-nav-btn--next:not(:disabled),.ep-scene-stage.is-line-quest-done .ep-scene-nav-btn--next:not(:disabled){animation:1.15s ease-in-out infinite ep-theatre-next-cue}@keyframes ep-quest-line-glow{0%,to{box-shadow:0 0 0 3px #42a5f52e,0 8px 22px #1565c024}50%{box-shadow:0 0 0 5px #42a5f547,0 10px 26px #1565c038}}@keyframes ep-quest-sparkle{0%,to{opacity:.25;transform:scale(.7)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(12deg)}}@keyframes ep-theatre-next-cue{0%,to{transform:scale(1);box-shadow:0 4px 14px #20a95b47,0 0 #20a95b66}50%{transform:scale(1.08);box-shadow:0 6px 18px #20a95b66,0 0 0 8px #20a95b38}}.ep-scene-listen-all-btn--rect .ep-listen-all-btn__label{flex-direction:column;justify-content:center;align-items:center;min-width:0;display:inline-flex}.ep-first-listen-panel__error{color:#b42318;margin:0;font-size:.82rem;font-weight:700}.ep-first-listen-unlock-toast{z-index:6;color:#fff;background:#20a95bf2;border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;font-weight:800;animation:1.75s forwards ep-first-listen-unlock-pop;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #20a95b59}.ep-first-listen-unlock-toast__en{opacity:.92;font-size:.82rem;font-weight:700}@keyframes ep-first-listen-unlock-pop{0%{opacity:0;transform:translate(-50%)translateY(8px)scale(.92)}12%,72%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-6px)scale(.98)}}.ep-scene-stage.is-unlock-animating .ep-scene-image-wrap img{filter:blur();opacity:1;transform:scale(1)}.ep-scene-stage--split .ep-scene-listen-first-overlay{min-height:100%;position:absolute;inset:0}.ep-scene-stage--theatre{background:0 0;border-radius:0 0 18px 18px;flex-direction:column;flex:auto;min-height:0;margin:0;display:flex;position:relative;overflow:hidden}.ep-scenes-track>.ep-story-card>.ep-scene-stage--theatre{min-height:0}.ep-scene-theatre{background:#fffbf2;border-radius:0;flex-direction:column;flex:auto;min-height:0;margin-inline:calc(-1*clamp(10px,2.5vw,14px));display:flex;position:relative;overflow:hidden}.ep-scene-theatre__art{background:#fffbf2;flex:auto;min-height:0;position:relative;overflow:hidden}.ep-scene-stage--theatre .ep-scene-theatre__art>.ep-scene-image-wrap,.ep-scene-stage--theatre.is-revealed .ep-scene-theatre__art>.ep-scene-image-wrap{z-index:0;min-height:0;box-shadow:none;background:0 0;border-radius:0;margin:0;position:absolute;inset:0}.ep-scene-stage--theatre .ep-scene-theatre__art>.ep-scene-image-wrap img,.ep-scene-stage--theatre.is-revealed .ep-scene-theatre__art>.ep-scene-image-wrap img{z-index:1;object-fit:contain;object-position:center;background:0 0;border-radius:0;width:100%;height:100%;max-height:none;position:absolute;inset:0}.ep-scene-theatre__art>.ep-scene-listen-first-overlay{z-index:3;-webkit-backdrop-filter:none;background:0 0;place-items:center;min-height:0;display:grid;position:absolute;inset:0}.ep-scene-theatre__dock{z-index:4;color:#24344d;background:#fffbf2;border-top:none;flex-direction:column;flex:none;justify-content:center;gap:clamp(4px,1vmin,8px);max-height:100%;padding:clamp(8px,1.6vmin,14px) clamp(12px,2.4vmin,20px) clamp(10px,2vmin,16px);display:flex;position:relative;overflow:hidden}.ep-scene-subtitle-band{z-index:1;color:#24344d;background:0 0;border-top:none;flex:none;padding:0;position:relative}.ep-scene-subtitle-band.is-tappable{cursor:pointer}.ep-scene-subtitle-band.is-tappable:focus-visible{outline-offset:-3px;outline:3px solid #3aa8b8}.ep-scene-subtitle-band__content{z-index:1;flex-direction:column;justify-content:center;gap:4px;min-height:clamp(5.2rem,13vmin,6.6rem);display:flex;position:relative}.ep-scene-subtitle-band__row{justify-content:space-between;align-items:center;gap:10px;display:flex}.ep-scene-subtitle-band__row .ep-karaoke-line{flex:auto;min-width:0}.ep-scene-subtitle-band .ep-karaoke-pairs{flex-wrap:nowrap;justify-content:center;align-items:flex-start;min-width:0}.ep-scene-subtitle-band .ep-karaoke-pair,.ep-scene-subtitle-band .ep-karaoke-punct{flex-shrink:1;gap:0;min-width:0;padding:2px 1px 1.25em;position:relative}.ep-karaoke-trail{color:#7d8ea6;font-size:1em;line-height:1.1}.ep-scene-subtitle-band .ep-karaoke-pair.is-tappable{cursor:pointer;min-width:min(44px, calc(92cqw / var(--kl,12)));border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:4px 2px 1.25em;display:inline-flex}.ep-scene-subtitle-band .ep-karaoke-pair.is-tappable:focus-visible{outline-offset:1px;outline:3px solid #3aa8b8}.ep-scene-subtitle-band .ep-karaoke-line{color:#24344d;padding-inline:.5em}.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair.is-tappable.is-active{box-shadow:none;transform:none}.ep-scene-subtitle-band .ep-karaoke-pairs>.ep-karaoke-pair:first-child.is-active .ep-karaoke-char,.ep-scene-subtitle-band .ep-karaoke-pairs>.ep-karaoke-unit:first-child .ep-karaoke-pair.is-active .ep-karaoke-char{transform-origin:0 100%}.ep-scene-subtitle-band .ep-karaoke-pairs>.ep-karaoke-pair:last-child.is-active .ep-karaoke-char,.ep-scene-subtitle-band .ep-karaoke-pairs>.ep-karaoke-unit:last-child .ep-karaoke-pair.is-active .ep-karaoke-char{transform-origin:100% 100%}.ep-scene-subtitle-band .ep-karaoke-char{color:#24344d;font-size:min(clamp(1.5rem, 4.4vmin, 2.4rem), calc(80cqw / var(--kl,12)));text-shadow:none;font-weight:700;line-height:1.1;transition:color 80ms linear,transform 80ms linear;display:inline-block}.ep-scene-subtitle-band .ep-karaoke-punct{color:#24344d;font-size:min(clamp(1.5rem, 4.4vmin, 2.4rem), calc(80cqw / var(--kl,12)));text-shadow:none;gap:2px;padding:4px 2px;font-weight:700;line-height:1.1}.ep-scene-subtitle-band .ep-karaoke-syllable{color:#66788f;width:max-content;min-width:0;font-size:min(clamp(.66rem, 1.9vmin, .9rem), calc(26cqw / var(--kl,12)));white-space:nowrap;text-shadow:none;pointer-events:none;font-weight:600;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.ep-scene-subtitle-band .ep-karaoke-pair.is-past .ep-karaoke-char{color:#7d8ea6}.ep-scene-subtitle-band .ep-karaoke-pair.is-active .ep-karaoke-char,.ep-scene-subtitle-band .ep-karaoke-char.is-active,.ep-scene-subtitle-band .ep-karaoke-punct.is-active{color:#0d9488;transform-origin:bottom;text-shadow:none;background:0 0;border-bottom:none;padding-bottom:0;font-weight:800;transform:scale(1.08);box-shadow:0 3px #ffc857}.ep-scene-subtitle-band .ep-karaoke-pair.is-active .ep-karaoke-syllable{color:#0f766e}.ep-scene-subtitle-band__en{color:#4a5d73;text-align:center;margin:4px 0 0;font-size:clamp(.78rem,2vmin,1rem);font-weight:700}@media (prefers-reduced-motion:reduce){.ep-scene-subtitle-band .ep-karaoke-char,.ep-scene-subtitle-band .ep-karaoke-punct{transition:none}}.ep-scene-theatre__controls{flex:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:clamp(8px,1.6vmin,14px);min-height:clamp(44px,7vmin,60px);display:grid}.ep-scene-theatre__listen-controls,.ep-scene-theatre__practice-controls,.ep-scene-theatre__replay-controls{flex-wrap:wrap;grid-area:1/2;justify-content:center;justify-self:center;align-items:center;gap:clamp(8px,1.6vmin,14px);width:auto;max-width:100%;display:flex}.ep-scene-theatre__practice-controls{flex-flow:column;gap:4px;width:auto}.ep-scene-theatre__practice-row{flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(8px,1.6vmin,14px);display:flex}.ep-scene-theatre__play-btn{cursor:pointer;color:#fff;background:linear-gradient(#5ec6d4,#3aa8b8);border:none;font-weight:800;box-shadow:0 4px 12px #3aa8b859}.ep-scene-theatre__play-btn:focus-visible,.ep-scene-theatre__secondary-btn:focus-visible,.ep-scene-theatre__dot:focus-visible{outline-offset:2px;outline:3px solid #24344d}.ep-scene-theatre__play-btn{border-radius:999px;justify-content:center;align-items:center;width:clamp(48px,8vmin,64px);height:clamp(48px,8vmin,64px);font-size:clamp(1.1rem,3vmin,1.5rem);display:inline-flex}.ep-scene-theatre__play-btn:not(.ep-scene-theatre__play-btn--labeled){padding:0;line-height:0}.ep-scene-theatre__play-btn:not(.ep-scene-theatre__play-btn--labeled)>span{justify-content:center;align-items:center;line-height:0;display:flex}.ep-scene-theatre__play-btn:not(.ep-scene-theatre__play-btn--labeled) [data-icon=play]{transform:translate(1px)}.ep-scene-theatre__play-slot{flex:none;width:clamp(48px,8vmin,64px);height:clamp(48px,8vmin,64px)}.ep-scene-theatre__play-btn--labeled{border-radius:999px;align-items:center;gap:8px;width:auto;min-height:clamp(44px,7vmin,56px);padding:0 clamp(14px,2.5vmin,22px);font-size:clamp(.85rem,2.2vmin,1.05rem);display:inline-flex}.ep-scene-theatre__play-btn--labeled .ep-listen-all-btn__label{flex-direction:column;align-items:flex-start;line-height:1.15;display:flex}.ep-scene-theatre__play-btn:disabled{opacity:.45;cursor:not-allowed}.ep-scene-theatre__play-btn--cue{animation:1.15s ease-in-out infinite ep-theatre-play-cue}@keyframes ep-theatre-play-cue{0%,to{transform:scale(1);box-shadow:0 4px 12px #3aa8b859,inset 0 0 #fff0}50%{transform:scale(.9);box-shadow:0 3px 9px #3aa8b873,inset 0 0 0 4px #fff6}}.ep-scene-theatre__dots{align-items:center;gap:8px;padding:4px 6px;display:inline-flex}.ep-scene-theatre__dot{color:#66788f;cursor:pointer;background:#24344d14;border:none;border-radius:999px;place-items:center;width:44px;height:44px;padding:0;font-size:clamp(.9rem,2.4vmin,1.05rem);font-weight:900;display:grid;position:relative}.ep-scene-theatre__dot.is-upcoming{opacity:.55}.ep-scene-theatre__dot:disabled{cursor:not-allowed}.ep-scene-theatre__dot.is-done{color:#fff;opacity:1;background:#20a95b}.ep-scene-theatre__dot.is-current{color:#fff;opacity:1;background:#0d9488;box-shadow:0 0 0 4px #0d948833}.ep-scene-theatre__dot.is-next{color:#0d9488;opacity:1;background:#fff;animation:1.2s ease-in-out infinite ep-theatre-dot-next-pulse;box-shadow:inset 0 0 0 2px #0d9488}@keyframes ep-theatre-dot-next-pulse{0%,to{transform:scale(1);box-shadow:inset 0 0 0 2px #0d9488,0 0 #0d948866}50%{transform:scale(1.12);box-shadow:inset 0 0 0 2px #0d9488,0 0 0 8px #0d948838}}.ep-scene-theatre__play-btn--quiet{color:#0f766e;box-shadow:none;background:#fff;border:2px solid #3aa8b8}.ep-scene-theatre__page-nav{display:contents}.ep-scene-theatre__page-nav>.ep-scene-nav-toolbar{box-shadow:none;background:0 0;border:none;padding:0;display:contents}.ep-scene-theatre__page-nav .ep-scene-nav-btn{min-height:48px;padding:0 clamp(12px,2.2vmin,20px);font-size:clamp(.76rem,1.9vmin,.9rem)}.ep-scene-theatre__page-nav .ep-scene-nav-btn--previous{grid-area:1/1;justify-self:start}.ep-scene-theatre__page-nav .ep-scene-nav-btn--next{grid-area:1/3;justify-self:end}.ep-scene-theatre__page-nav .ep-scene-nav-btn--previous:not(:disabled){color:#24344d;box-shadow:none;background:#fff;border-color:#24344d2e}.ep-scene-stage--theatre.is-celebrating .ep-first-listen-unlock-toast{opacity:1;animation:none}@media (prefers-reduced-motion:reduce){.ep-scene-theatre__dot.is-current,.ep-scene-theatre__dot.is-next,.ep-scene-theatre__play-btn--cue,.ep-scene-stage.is-line-quest-done .ep-scene-nav-btn--next:not(:disabled),.ep-scene-stage.is-unlock-animating .ep-scene-nav-btn--next:not(:disabled),.ep-first-listen-unlock-toast{transition:none;animation:none}.ep-scene-stage.is-line-quest-done .ep-scene-nav-btn--next:not(:disabled),.ep-scene-stage.is-unlock-animating .ep-scene-nav-btn--next:not(:disabled){box-shadow:0 4px 14px #20a95b47,0 0 0 4px #20a95b59}.ep-scene-theatre__play-btn--cue{box-shadow:0 4px 12px #3aa8b859,inset 0 0 0 4px #fff6}.ep-scene-stage--theatre.is-celebrating .ep-first-listen-unlock-toast{opacity:1;transform:translate(-50%)}}.ep-story-card:has(.ep-scene-stage--theatre) .ep-story-card__header-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ep-scene-stage--theatre.is-replay-nudge .ep-scene-theatre__play-btn:not(.ep-scene-theatre__play-btn--labeled){animation:1.8s ease-in-out infinite ep-replay-nudge}@keyframes ep-replay-nudge{0%,to{box-shadow:0 0 #20a95b73}50%{box-shadow:0 0 0 12px #20a95b00}}@media (prefers-reduced-motion:reduce){.ep-scene-stage--theatre.is-replay-nudge .ep-scene-theatre__play-btn{animation:none}}.ep-scene-card-toolbar{--ep-pill-h:44px;--ep-pill-bg:#fff;--ep-pill-border:#e2e8e0}.ep-scene-card-toolbar .ep-scene-card-toolbar__start,.ep-scene-card-toolbar .ep-scene-card-toolbar__leading,.ep-scene-card-toolbar .ep-scene-card-toolbar__controls{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.ep-scene-card-toolbar .ep-scene-card-toolbar__home,.ep-scene-card-toolbar .ep-scene-card-toolbar__speed,.ep-scene-card-toolbar .ep-scene-card-toolbar__helpers-toggle,.ep-scene-card-toolbar .ep-learning-points-chip,.ep-scene-card-toolbar .ep-replay-badge{box-sizing:border-box;height:var(--ep-pill-h);min-width:var(--ep-pill-h);border:2px solid var(--ep-pill-border);background:var(--ep-pill-bg);color:#24344d;white-space:nowrap;opacity:1;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;margin:0;padding:0 14px;font-size:.95rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 2px 6px #24344d0f}.ep-scene-card-toolbar .ep-scene-card-toolbar__speed,.ep-scene-card-toolbar .ep-scene-card-toolbar__helpers-toggle{height:var(--ep-pill-h);min-height:var(--ep-pill-h);max-height:var(--ep-pill-h);border:2px solid var(--ep-pill-border);min-width:7.5rem;padding:0 14px}.ep-scene-card-toolbar .ep-scene-card-toolbar__speed-icon,.ep-scene-card-toolbar .ep-learning-points-chip__star,.ep-scene-card-toolbar .ep-scene-card-toolbar__subtitles-icon{letter-spacing:-.02em;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:1.05rem;font-weight:900;line-height:1;display:inline-flex}.ep-scene-card-toolbar .ep-scene-card-toolbar__pill-label{align-items:center;line-height:1;display:inline-flex}.ep-scene-card-toolbar .ep-scene-card-toolbar__helpers-toggle.is-open{background:#eafaf0;border-color:#20a95b}.ep-scene-card-toolbar .ep-learning-points-chip{cursor:default;color:#7a4b00;background:linear-gradient(#fff8dc,#ffefb0);border-color:#f5c542;position:relative}.ep-scene-card-toolbar .ep-learning-points-chip__total{font-variant-numeric:tabular-nums;font-size:1.05rem}.ep-scene-card-toolbar .ep-learning-points-chip__level{color:#fff;background:#7c4dcc;border-radius:999px;padding:3px 7px;font-size:.72rem}.ep-learning-points-chip.is-gaining{animation:.5s ease-out ep-points-bump}.ep-learning-points-chip__gain{color:#20a95b;pointer-events:none;font-weight:900;animation:1.4s ease-out forwards ep-points-float;position:absolute;top:-4px;right:10px}.ep-learning-points-chip__reason{z-index:5;color:#1a7f45;white-space:nowrap;pointer-events:none;background:#fff;border-radius:12px;padding:4px 10px;font-size:.8rem;font-weight:900;animation:2.4s ease-out forwards ep-points-reason;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #1a233226}.ep-learning-points-chip__reason span{color:#4f6276;font-size:.7rem;font-weight:700;display:block}@keyframes ep-points-reason{0%{opacity:0;transform:translateY(-4px)}12%,80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}@keyframes ep-points-bump{40%{transform:scale(1.12)}}@keyframes ep-points-float{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-26px)}}.ep-scene-card-toolbar .ep-replay-badge{cursor:default;color:#1a7f45;background:#eafaf0;border-color:#b9e4c9}@media (width<=900px){.ep-scene-card-toolbar .ep-scene-card-toolbar__pill-label{display:none}.ep-scene-card-toolbar .ep-scene-card-toolbar__home,.ep-scene-card-toolbar .ep-scene-card-toolbar__speed,.ep-scene-card-toolbar .ep-scene-card-toolbar__helpers-toggle{width:var(--ep-pill-h);min-width:var(--ep-pill-h);max-width:var(--ep-pill-h);padding:0}.ep-scene-card-toolbar .ep-learning-points-chip,.ep-scene-card-toolbar .ep-replay-badge{padding:0 10px}}.ep-replay-toast{z-index:60;text-align:center;background:#fff;border:2px solid #b9e4c9;border-radius:20px;width:min(420px,100vw - 32px);padding:14px 18px;animation:.35s ease-out ep-toast-in;position:fixed;top:96px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #24344d2e}.ep-replay-toast p{margin:0}.ep-replay-toast__zh{color:#1a7f45;font-size:1.15rem;font-weight:900}.ep-replay-toast__en,.ep-replay-toast__surprise{color:#66788f;font-size:.85rem;font-weight:700;margin-top:4px!important}.ep-replay-toast__btn{color:#fff;cursor:pointer;background:#20a95b;border:2px solid #20a95b;border-radius:999px;min-height:44px;margin-top:10px;padding:0 18px;font-weight:800}@keyframes ep-toast-in{0%{opacity:0;transform:translate(-50%,-12px)}}@media (prefers-reduced-motion:reduce){.ep-learning-points-chip.is-gaining,.ep-learning-points-chip__gain,.ep-learning-points-chip__reason,.ep-replay-toast{animation:none}}.ep-scene-card-toolbar:has(>.ep-scene-card-toolbar__center){grid-template-columns:1fr auto 1fr;grid-template-areas:"start center end";align-items:center;display:grid}.ep-scene-card-toolbar>.ep-scene-card-toolbar__start{grid-area:start}.ep-scene-card-toolbar>.ep-scene-card-toolbar__controls{grid-area:end;justify-self:end}.ep-scene-card-toolbar>.ep-scene-card-toolbar__center{grid-area:center;justify-content:center;display:flex}.ep-scene-card-toolbar__center .ep-scene-node-tracker{margin:0}@media (width<=600px){.ep-scene-card-toolbar:has(>.ep-scene-card-toolbar__center){grid-template-columns:1fr auto;grid-template-areas:"start end""center center";row-gap:6px}}.ep-learning-points-chip.is-leveling-up{animation:1.6s ease-out ep-level-glow}.ep-learning-points-chip.is-leveling-up .ep-learning-points-chip__level{animation:.6s ease-out ep-level-flip}@keyframes ep-level-glow{0%{box-shadow:0 0 #f5c542e6}40%{transform:scale(1.08);box-shadow:0 0 0 10px #f5c54259}to{box-shadow:0 0 #f5c54200}}@keyframes ep-level-flip{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@media (prefers-reduced-motion:reduce){.ep-learning-points-chip.is-leveling-up,.ep-learning-points-chip.is-leveling-up .ep-learning-points-chip__level{animation:none}}.ep-story-hero-intro--cover{justify-content:flex-start;gap:0;max-width:980px}.ep-story-hero-intro__cover{background:linear-gradient(160deg,#e6f6ec,#fff1d6);border-radius:24px;flex:auto;width:100%;min-height:clamp(180px,34vh,520px);position:relative;overflow:hidden;box-shadow:0 10px 28px #24344d1f}.ep-story-hero-intro__cover-img{object-fit:cover;object-position:center 35%;width:100%;height:100%;position:absolute;inset:0}@keyframes ep-bubble-pop{0%{opacity:0;transform:scale(.6)}}.ep-story-hero-intro__tiles{z-index:2;justify-content:center;align-items:center;gap:10px;margin-top:clamp(-56px,-6vh,-32px);display:flex;position:relative}.ep-story-hero-intro__tiles .ep-karaoke-line{justify-content:center;width:auto;max-width:none;display:flex}.ep-story-hero-intro__tiles .ep-karaoke-pairs{flex-wrap:nowrap;gap:clamp(6px,1.6vw,14px);display:flex}.ep-story-hero-intro__tiles .ep-karaoke-pair{background:#fff;border:3px solid #d9ead3;border-radius:20px;flex-direction:column;align-items:center;gap:4px;min-width:clamp(3.6rem,13vw,5.6rem);padding:10px 8px 8px;transition:transform .15s,border-color .15s,background .15s;display:flex}.ep-story-hero-intro__tiles .ep-karaoke-pair .ep-karaoke-char{color:#1e3a5f;font-size:clamp(2.4rem,7vw,4.2rem);font-weight:900;line-height:1}.ep-story-hero-intro__tiles .ep-karaoke-pair .ep-karaoke-syllable{color:#4f8a5b;font-family:Nunito,system-ui,sans-serif;font-size:clamp(.8rem,1.8vw,1rem);font-weight:800}.ep-story-hero-intro__tiles .ep-karaoke-pair.is-active{background:#fff6d6;border-color:#f5c542;transform:translateY(-8px)scale(1.06)}.ep-story-hero-intro__tiles .ep-karaoke-pair.is-tappable{cursor:pointer}.ep-story-hero-intro__tiles .ep-karaoke-pair.is-tappable:active{transform:translateY(3px);box-shadow:0 3px #d9ead3}.ep-story-hero-intro--cover .ep-story-hero-intro__prompt{flex-direction:column;margin:14px 0 0;display:flex}.ep-story-hero-intro--cover .ep-story-hero-intro__actions{justify-content:center;margin-top:12px;display:flex}.ep-story-hero-intro--cover .ep-story-hero-intro__actions>*{min-width:min(320px,80vw);min-height:60px;font-size:1.15rem}.ep-ready-btn:after{align-self:center;font-size:1.6em;line-height:.8}.ep-story-hero-intro__tiles .ep-karaoke-line,.ep-story-hero-intro__tiles .ep-karaoke-line.is-line-active{box-shadow:none;background:0 0;border:none;padding:0}.ep-story-hero-intro__tiles .ep-karaoke-pair{box-shadow:0 6px #d9ead3,0 10px 12px -8px #24344d59}.ep-story-hero-intro__tiles .ep-karaoke-pair.is-active{box-shadow:0 6px #f5c542,0 12px 14px -8px #f5a00080}.ep-ready-actions{flex-direction:column;align-items:center;gap:8px;display:flex}.ep-ready-restart-link{text-underline-offset:3px;cursor:pointer;background:0 0;border:none;min-height:44px;padding:0 14px;font-family:inherit;font-size:.85rem;font-weight:700;text-decoration:underline}.ep-ready-restart-link:disabled{cursor:not-allowed;opacity:.5}@keyframes ep-buddy-nod{0%,70%,to{transform:rotate(0)}80%{transform:rotate(-8deg)}90%{transform:rotate(6deg)}}.ep-episode-label{color:#4f6276;white-space:nowrap;background:0 0;border:1.5px solid #e2e8e0;border-radius:999px;align-items:center;height:36px;margin:0;padding:0 14px;font-size:.9rem;font-weight:800;display:inline-flex}.ep-story-hero-intro__hint-row{justify-content:center;align-items:center;gap:12px;margin-top:14px;display:flex}.ep-story-hero-intro__hint-row .ep-story-hero-intro__prompt{text-align:left;margin:0}.ep-story-hero-intro__hint-row .ep-story-hero-intro__prompt:only-child{text-align:center}.ep-story-hero-intro__replay-pill{color:#1a7f45;white-space:nowrap;cursor:pointer;background:#eafaf0;border:2px solid #b9e4c9;border-radius:999px;align-items:center;gap:6px;height:44px;padding:0 16px 0 12px;font-family:inherit;font-size:.95rem;font-weight:800;transition:transform .12s,box-shadow .12s;display:inline-flex;box-shadow:0 3px #b9e4c9}.ep-story-hero-intro__replay-pill:active{transform:translateY(2px);box-shadow:0 1px #b9e4c9}.ep-story-hero-intro__replay-pill.is-playing{color:#b35c00;background:#fff6d6;border-color:#f5c542;box-shadow:0 3px #f5c542}.ep-scene-card-toolbar__subtitles{position:relative}.ep-scene-card-toolbar__subtitles-icon{font-weight:900}.ep-scene-card-toolbar .ep-scene-card-toolbar__helpers-panel{z-index:40;background:#fff;border:2px solid #e2e8e0;border-radius:18px;flex-direction:column;gap:4px;min-width:220px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #24344d2e}.ep-subtitle-switch{color:#24344d;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:6px 10px;font-family:inherit;display:flex}.ep-subtitle-switch:hover:not(:disabled){background:#f4f8f2}.ep-subtitle-switch:disabled{opacity:.45;cursor:not-allowed}.ep-subtitle-switch__label{flex-direction:column;font-size:1rem;font-weight:800;display:flex}.ep-subtitle-switch__label-en{color:#66788f;font-size:.75rem;font-weight:700}.ep-subtitle-switch__track{background:#d1d5db;border-radius:999px;flex:none;width:46px;height:26px;transition:background .15s;position:relative}.ep-subtitle-switch__thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.ep-subtitle-switch.is-on .ep-subtitle-switch__track{background:#20a95b}.ep-subtitle-switch.is-on .ep-subtitle-switch__thumb{transform:translate(20px)}.ep-page--hide-jyutping .ep-story-hero-intro__tiles .ep-karaoke-pair .ep-karaoke-syllable{visibility:hidden;opacity:0;display:block}.ep-story-hero-intro__tiles .ep-karaoke-pair .ep-karaoke-syllable{transition:opacity .4s,visibility .4s}.ep-scene-card-toolbar{position:relative}.ep-scene-card-toolbar .ep-replay-toast{position:absolute;top:calc(100% + 10px);left:50%}.ep-scene-card-toolbar__helpers-toggle{position:relative}.ep-scene-card-toolbar__challenge-badge{background:#fff6d6;border:1.5px solid #f5c542;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.75rem;display:grid;position:absolute;top:-8px;right:-6px}.ep-subtitle-switch__note{color:#7a4b00;background:#fff6d6;border-radius:10px;margin:0 10px 6px;padding:6px 10px;font-size:.75rem;font-weight:700;line-height:1.4}.ep-scene-stage--handwriting,.ep-story-card--handwriting,.ep-story-card--handwriting>.ep-scene-stage__footer,.ep-story-card--idiom-challenge>.ep-scene-stage__footer{background:#fffbf2}.stroke-workshop-flow.stroke-workshop-flow--map{grid-template-columns:minmax(0,1fr) minmax(0,1fr);place-items:center;gap:clamp(16px,4vw,56px);padding:clamp(12px,3vh,32px) clamp(12px,3vw,40px);display:grid}.stroke-workshop-map__target{text-align:center;background:#fff;border:3px solid #d9ead3;border-radius:28px;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:440px;padding:clamp(18px,3vh,32px) 16px;display:flex;box-shadow:0 8px #d9ead3,0 16px 28px -14px #24344d4d}.stroke-workshop-map__target-chars{flex-wrap:wrap;justify-content:center;gap:clamp(4px,1vw,12px);margin:0;display:flex}.stroke-workshop-map__target-char{aspect-ratio:1;color:#1e3a5f;background:linear-gradient(#e7efe4,#e7efe4) 50%/100% 1px no-repeat,linear-gradient(#e7efe4,#e7efe4) 50%/1px 100% no-repeat,#fbfdf9;border:2px dashed #c9dcc2;border-radius:14px;place-items:center;width:clamp(64px,9vw,96px);font-size:clamp(2.6rem,6vw,4rem);font-weight:900;line-height:1;display:grid}.stroke-workshop-map__target-label{color:#1a7f45;margin:4px 0 0;font-size:.95rem;font-weight:800}.stroke-workshop-map__target .stroke-workshop-map__subtitle{color:#66788f;margin:0;font-size:.82rem;font-weight:700}.stroke-workshop-flow--map .stroke-workshop-map__ladder{flex-direction:column;gap:clamp(2px,1vh,10px);width:min(100%,320px);display:flex;position:relative}.stroke-workshop-flow--map .stroke-workshop-map__ladder:before{content:"";border-left:4px dashed #d9ead3;position:absolute;top:40px;bottom:40px;left:50%;transform:translate(-2px)}.stroke-workshop-flow--map .stroke-workshop-map__level{width:auto;min-height:0;box-shadow:none;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:0;animation:none;display:flex;position:relative}.stroke-workshop-flow--map .stroke-workshop-map__level:nth-child(odd){align-self:flex-start}.stroke-workshop-flow--map .stroke-workshop-map__level:nth-child(2n){text-align:right;flex-direction:row-reverse;align-self:flex-end}.stroke-workshop-map__stone{z-index:1;aspect-ratio:1;color:#1a7f45;background:#fff;border:3px solid #b9e4c9;border-radius:50%;flex:none;place-items:center;width:clamp(58px,8vh,74px);font-size:1.6rem;font-weight:900;transition:transform .15s,box-shadow .15s;display:grid;position:relative;box-shadow:0 6px #b9e4c9}.stroke-workshop-flow--map .stroke-workshop-map__level-reward{color:#7a4b00;white-space:nowrap;background:#fff6d6;border:1.5px solid #f5c542;border-radius:999px;padding:2px 7px;font-size:.72rem;font-weight:900;position:absolute;top:-8px;right:-14px}.stroke-workshop-flow--map .stroke-workshop-map__level-zh{color:#24344d;font-size:1rem;font-weight:800}.stroke-workshop-flow--map .stroke-workshop-map__level-en{color:#66788f;font-size:.75rem}.stroke-workshop-flow--map .stroke-workshop-map__level-names{flex-direction:column;display:flex}.stroke-workshop-flow--map .stroke-workshop-map__level.is-cleared .stroke-workshop-map__stone{color:#fff;background:#20a95b;border-color:#20a95b;box-shadow:0 6px #178a49}.stroke-workshop-flow--map .stroke-workshop-map__level.is-next .stroke-workshop-map__stone{color:#b35c00;background:#fff6d6;border-color:#f5c542;animation:1.6s ease-in-out infinite stroke-workshop-stone-bounce;box-shadow:0 6px #f5c542}.stroke-workshop-flow--map .stroke-workshop-map__level.is-locked .stroke-workshop-map__stone,.stroke-workshop-flow--map .stroke-workshop-map__level.is-secret .stroke-workshop-map__stone{color:#9aa7b4;background:#f4f6f3;border-color:#e2e8e0;font-size:1.3rem;box-shadow:0 6px #e2e8e0}.stroke-workshop-flow--map .stroke-workshop-map__level.is-unlocked:active .stroke-workshop-map__stone{transform:translateY(4px);box-shadow:0 2px #b9e4c9}@keyframes stroke-workshop-stone-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (width<=700px){.stroke-workshop-flow.stroke-workshop-flow--map{grid-template-columns:1fr;align-content:start;overflow:auto}}@media (prefers-reduced-motion:reduce){.stroke-workshop-flow--map .stroke-workshop-map__level.is-next .stroke-workshop-map__stone{animation:none}}.ep-scene-stage__footer--carousel-only .ep-scene-nav-toolbar{box-shadow:none;background:0 0;border:none;justify-content:space-between;padding:0;display:flex}.ep-scene-stage__footer--carousel-only .ep-scene-nav-btn{width:auto;min-height:48px;padding:0 clamp(12px,2.2vmin,20px);font-size:clamp(.76rem,1.9vmin,.9rem)}.stroke-workshop-flow.stroke-workshop-flow--map{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.stroke-workshop-map__target{max-width:560px}.stroke-workshop-map__target-chars{flex-wrap:nowrap;width:100%}.stroke-workshop-map__target-char{flex:1 1 0;width:auto;max-width:clamp(72px,14vh,128px);font-size:clamp(2.6rem,9vh,5rem)}.stroke-workshop-flow--map .stroke-workshop-map__ladder{gap:clamp(6px,2vh,18px);width:min(100%,360px)}.stroke-workshop-flow--map .stroke-workshop-map__ladder:before{top:30px;bottom:30px}.stroke-workshop-flow--map .stroke-workshop-map__level,.stroke-workshop-flow--map .stroke-workshop-map__level:nth-child(odd),.stroke-workshop-flow--map .stroke-workshop-map__level:nth-child(2n){flex-direction:initial;grid-template-columns:1fr auto 1fr;align-self:stretch;align-items:center;column-gap:14px;display:grid}.stroke-workshop-flow--map .stroke-workshop-map__level .stroke-workshop-map__stone{grid-area:1/2;width:clamp(60px,10vh,84px);font-size:clamp(1.4rem,3.4vh,2rem)}.stroke-workshop-flow--map .stroke-workshop-map__level:nth-child(odd) .stroke-workshop-map__level-names{text-align:left;grid-area:1/3}.stroke-workshop-flow--map .stroke-workshop-map__level:nth-child(2n) .stroke-workshop-map__level-names{text-align:right;grid-area:1/1}.stroke-workshop-flow--map .stroke-workshop-map__level-zh{font-size:clamp(.95rem,2.2vh,1.15rem)}.stroke-workshop-flow--map .stroke-workshop-map__level.is-locked,.stroke-workshop-flow--map .stroke-workshop-map__level.is-secret{opacity:1}.stroke-workshop-flow--map .stroke-workshop-map__level.is-locked .stroke-workshop-map__level-names,.stroke-workshop-flow--map .stroke-workshop-map__level.is-secret .stroke-workshop-map__level-names{opacity:.7}.stroke-workshop-flow--map .stroke-workshop-map__level.is-locked .stroke-workshop-map__stone,.stroke-workshop-flow--map .stroke-workshop-map__level.is-secret .stroke-workshop-map__stone{color:#66788f}.ep-scenes-track>.ep-story-card--handwriting,.ep-scenes-track>.ep-story-card--idiom-challenge,.ep-scenes-track>.ep-story-card--reward{background:#fffbf2}.ep-scenes-track>.ep-story-card--handwriting>.ep-story-card__header,.ep-scenes-track>.ep-story-card--idiom-challenge>.ep-story-card__header,.ep-scenes-track>.ep-story-card--reward>.ep-story-card__header{margin-bottom:0}.ep-scenes-track>.ep-story-card--handwriting.is-level-active>.ep-story-card__header{display:none}.stroke-workshop-flow>.stroke-workshop-flow__play-header{grid-template-columns:1fr auto 1fr;align-items:center;padding:6px 12px;display:grid}.stroke-workshop-flow__play-header .stroke-workshop-flow__back{color:#24344d;background:#fff;border:2px solid #e2e8e0;border-radius:999px;justify-self:start;align-items:center;gap:6px;height:44px;padding:0 14px;font-size:.95rem;font-weight:800;display:inline-flex;box-shadow:0 2px 6px #24344d0f}.stroke-workshop-flow__play-header .stroke-workshop-flow__play-title{text-align:center;align-items:center}.stroke-workshop-flow__play-header .stroke-workshop-flow__play-zh{color:#24344d;font-size:clamp(1.05rem,2.2vh,1.3rem);font-weight:900}.stroke-workshop-flow__play-header .stroke-workshop-flow__play-en{color:#66788f;font-size:.8rem;font-weight:700}.stroke-workshop-game.stroke-workshop-game--hologram{max-width:1100px;height:100%;min-height:0;box-shadow:none;background:0 0;border:none;border-radius:0;gap:4px;padding:0 clamp(8px,2vw,24px) 4px}.stroke-workshop-game--hologram .stroke-workshop-game__prompt{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none;padding:0}.stroke-workshop-game--hologram .stroke-workshop-game__prompt-zh{color:#1a7f45;margin:0;font-size:clamp(1rem,2vh,1.2rem)}.stroke-workshop-game--hologram .stroke-workshop-game__prompt-en{color:#66788f;margin:0;font-size:.8rem}.stroke-workshop-game--hologram .stroke-workshop-game__collection{gap:clamp(8px,1.6vw,12px);padding:0}.stroke-workshop-game--hologram .stroke-workshop-game__main{flex-direction:row;justify-content:center;align-items:center;gap:clamp(16px,3vw,32px);width:100%;min-height:0;display:flex;container-type:size}.stroke-workshop-game--hologram .stroke-workshop-game__assembly-column{flex:none;min-width:0;min-height:0}.stroke-workshop-game--hologram .stroke-workshop-game__grid{-webkit-backdrop-filter:none;background:linear-gradient(#e7efe4,#e7efe4) 50%/100% 1px no-repeat,linear-gradient(#e7efe4,#e7efe4) 50%/1px 100% no-repeat,#fff;border:3px solid #d9ead3;width:min(100%,640px,max(220px,70cqh));min-width:220px;box-shadow:0 8px #d9ead3,0 16px 28px -14px #24344d4d}.stroke-workshop-game__dock-column{flex-direction:column;flex:none;justify-content:center;align-items:center;width:max-content;max-width:100%;min-height:0;max-height:100%;display:flex}.stroke-workshop-game__tray{box-sizing:border-box;background:#fff;border:2px dashed #d9ead3;border-radius:20px;flex-direction:column;align-items:center;gap:10px;width:max-content;max-width:100%;max-height:100%;padding:10px 12px;display:flex}.stroke-workshop-game--hologram .stroke-workshop-game__dock{width:max-content;max-width:100%;height:auto;min-height:0;box-shadow:none;background:0 0;border:none;border-radius:0;flex:none;padding:0}.stroke-workshop-game__tray>.stroke-workshop-game__hint{align-self:center;height:auto;min-height:48px;padding:8px 16px}@media (width>=701px){.stroke-workshop-game--hologram .stroke-workshop-game__piece{width:max(72px, var(--piece-size,72px));height:max(72px, var(--piece-size,72px))}}.stroke-workshop-game--hologram .stroke-workshop-game__dock-msg{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.stroke-workshop-game__dock-msg .stroke-workshop-game__next{color:#fff;cursor:pointer;background:#20a95b;border:none;border-radius:999px;min-height:52px;margin-top:12px;padding:0 22px;font-family:inherit;font-size:1.05rem;font-weight:900;animation:1.6s ease-in-out infinite stroke-workshop-stone-bounce;box-shadow:0 5px #178a49}.stroke-workshop-game--hologram .stroke-workshop-game__toolbar{justify-content:center}@media (width<=700px){.stroke-workshop-game--hologram .stroke-workshop-game__main{flex-direction:column;justify-content:center;gap:12px}.stroke-workshop-game--hologram .stroke-workshop-game__grid{width:min(100%,max(220px,55cqh))}.stroke-workshop-game__dock-column,.stroke-workshop-game__tray{width:100%;max-width:min(100%,420px)}.stroke-workshop-game--hologram .stroke-workshop-game__dock{width:100%}}@media (prefers-reduced-motion:reduce){.stroke-workshop-game__dock-msg .stroke-workshop-game__next{animation:none}}.stroke-workshop-flow.stroke-workshop-flow--celebrate{place-items:center;display:grid}.stroke-workshop-celebrate__card{text-align:center;background:radial-gradient(circle at 50% 0,#fff6d6 0%,#fff 60%);border:3px solid #f5c542;border-radius:28px;flex-direction:column;align-items:center;gap:6px;width:min(100%,620px);padding:clamp(20px,4vh,40px) clamp(16px,3vw,36px);display:flex;box-shadow:0 8px #f5c542,0 18px 32px -14px #f5a00073}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__badge{margin:0;font-size:clamp(3.5rem,9vh,5rem);line-height:1;animation:.8s cubic-bezier(.34,1.56,.64,1) both lol-level-up-grow}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__zh{color:#24344d;margin:4px 0 0;font-size:clamp(1.4rem,3.2vh,1.8rem);font-weight:900}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__en{color:#66788f;margin:0;font-size:.9rem;font-weight:700}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__reward{color:#7a4b00;background:#fff6d6;border:2px solid #f5c542;border-radius:999px;margin:8px 0 4px;padding:6px 16px;font-size:1.2rem;font-weight:900;animation:1.2s ease-out .4s both stroke-workshop-reward-float}@keyframes stroke-workshop-reward-float{0%{opacity:0;transform:translateY(16px)scale(.8)}60%{opacity:1;transform:translateY(-6px)scale(1.08)}to{opacity:1;transform:translateY(0)scale(1)}}.stroke-workshop-map__ladder.stroke-workshop-map__ladder--row{flex-direction:row;justify-content:center;gap:clamp(8px,2vw,18px);width:100%;margin:14px 0 6px;display:flex;position:relative}.stroke-workshop-map__ladder--row:before{content:"";border-top:4px dashed #d9ead3;position:absolute;top:30px;left:10%;right:10%}.stroke-workshop-map__ladder--row .stroke-workshop-map__level{box-shadow:none;background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;padding:0;animation:none;display:flex;position:relative}.stroke-workshop-map__ladder--row .stroke-workshop-map__stone{width:60px;font-size:1.4rem}.stroke-workshop-map__ladder--row .stroke-workshop-map__level-names{flex-direction:column;max-width:80px;display:flex}.stroke-workshop-map__ladder--row .stroke-workshop-map__level-zh{color:#24344d;font-size:.78rem;font-weight:800}.stroke-workshop-map__ladder--row .stroke-workshop-map__level-en{display:none}.stroke-workshop-map__ladder--row .stroke-workshop-map__level-reward{color:#7a4b00;background:#fff6d6;border:1.5px solid #f5c542;border-radius:999px;padding:1px 6px;font-size:.65rem;font-weight:900;position:absolute;top:-10px;right:-12px}.stroke-workshop-map__ladder--row .stroke-workshop-map__level.is-cleared .stroke-workshop-map__stone{color:#fff;background:#20a95b;border-color:#20a95b;box-shadow:0 5px #178a49}.stroke-workshop-map__ladder--row .stroke-workshop-map__level.is-next .stroke-workshop-map__stone{color:#b35c00;background:#fff6d6;border-color:#f5c542;animation:1.6s ease-in-out infinite stroke-workshop-stone-bounce;box-shadow:0 5px #f5c542}.stroke-workshop-map__ladder--row .stroke-workshop-map__level.is-locked .stroke-workshop-map__stone,.stroke-workshop-map__ladder--row .stroke-workshop-map__level.is-secret .stroke-workshop-map__stone{color:#66788f;background:#f4f6f3;border-color:#e2e8e0;font-size:1.1rem;box-shadow:0 5px #e2e8e0}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__actions{flex-direction:column;align-items:center;gap:6px;margin-top:10px;display:flex}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__exits{flex-wrap:wrap;justify-content:center;align-items:center;gap:0 8px;display:flex}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__exit-en{margin-left:.35em;font-weight:700}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__next{color:#fff;cursor:pointer;background:#20a95b;border:none;border-radius:999px;min-height:56px;padding:0 28px;font-family:inherit;font-size:1.15rem;font-weight:900;box-shadow:0 5px #178a49}.stroke-workshop-celebrate__card .stroke-workshop-celebrate__map{color:#66788f;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;min-height:44px;padding:0 14px;font-family:inherit;font-size:.9rem;font-weight:800;text-decoration:underline}@media (prefers-reduced-motion:reduce){.stroke-workshop-celebrate__card .stroke-workshop-celebrate__badge,.stroke-workshop-celebrate__card .stroke-workshop-celebrate__reward,.stroke-workshop-map__ladder--row .stroke-workshop-map__level.is-next .stroke-workshop-map__stone{animation:none}}.ep-scene-stage--idiom-challenge,.ep-mini-game.ep-mini-game--idiom-challenge{background:#fffbf2}.ep-mini-game--idiom-challenge{width:min(100%,760px);box-shadow:none;border:none;flex-direction:column;align-items:center;gap:clamp(10px,2vh,18px);margin:0 auto;padding:clamp(10px,2vh,20px) 12px;display:flex}.ep-mini-game--idiom-challenge.ep-mini-game--meaning{width:min(100%,980px);height:100%;min-height:0}.ep-mini-game--idiom-challenge .ep-mini-game__steps{justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ep-mini-game--idiom-challenge .ep-mini-game__step{height:44px;box-shadow:none;background:#fff;border:2px solid #e2e8e0;border-radius:999px;align-items:center;gap:8px;padding:0 14px 0 6px;display:inline-flex}.ep-mini-game--idiom-challenge .ep-mini-game__step-num{color:#66788f;background:#eef2ee;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:900;display:grid}.ep-mini-game--idiom-challenge .ep-mini-game__step-zh{font-size:.95rem;font-weight:800}.ep-mini-game--idiom-challenge .ep-mini-game__step-en{color:#66788f;font-size:.7rem}.ep-mini-game--idiom-challenge .ep-mini-game__step.is-current{background:#fff6d6;border-color:#f5c542}.ep-mini-game--idiom-challenge .ep-mini-game__step.is-current .ep-mini-game__step-num{color:#7a4b00;background:#f5c542}.ep-mini-game--idiom-challenge .ep-mini-game__step.is-cleared .ep-mini-game__step-num{color:#fff;background:#20a95b}.ep-mini-game--idiom-challenge .ep-mini-game__step.is-locked{opacity:.6}.ep-mini-game--idiom-challenge .ep-mini-game__instruction,.ep-mini-game--idiom-challenge .ep-mini-game__meaning-prompt{color:#24344d;text-align:center;margin:0;font-size:clamp(1.15rem,2.6vh,1.45rem);font-weight:900}.ep-mini-game--idiom-challenge .ep-mini-game__instruction-en,.ep-mini-game--idiom-challenge .ep-mini-game__meaning-prompt-en{color:#66788f;text-align:center;margin:-6px 0 0;font-size:.85rem;font-weight:700}.ep-mini-game--idiom-challenge .ep-mini-game__tile,.ep-mini-game--idiom-challenge .ep-mini-game__meaning-option{color:#1e3a5f;background:#fff;border:3px solid #d9ead3;border-radius:20px;font-weight:900;transition:transform .12s,box-shadow .12s,border-color .15s,background .15s;box-shadow:0 6px #d9ead3}.ep-mini-game--idiom-challenge .ep-mini-game__tile:active:not(:disabled),.ep-mini-game--idiom-challenge .ep-mini-game__meaning-option:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px #d9ead3}.ep-mini-game--idiom-challenge .ep-mini-game__board--meaning{flex:auto;width:100%;min-height:0;display:flex}.ep-mini-game__meaning-shell{flex:auto;grid-template-columns:minmax(0,1fr);justify-content:center;justify-items:center;gap:16px;width:100%;min-width:0;min-height:0;display:grid}.ep-mini-game__meaning-context{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:min(100%,420px);min-width:0;display:flex}.ep-mini-game__meaning-scene{object-fit:cover;border-radius:18px;width:100%;max-height:22dvh}.ep-mini-game__meaning-idiom{color:#1e3a5f;margin:0;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:900;line-height:1.2}.ep-mini-game__meaning-jyut{color:#66788f;letter-spacing:.02em;margin:0;font-size:clamp(.9rem,2vw,1.05rem);font-weight:700}.ep-mini-game__meaning-choices{flex-direction:column;align-items:center;gap:8px;width:100%;min-width:0;min-height:0;display:flex}.ep-mini-game--idiom-challenge .ep-mini-game__meaning-options{flex:auto;grid-auto-rows:minmax(56px,auto);gap:12px;width:100%;min-width:0;display:grid}.ep-mini-game--idiom-challenge .ep-mini-game__meaning-option{text-align:center;min-height:56px;max-height:96px;padding:8px 16px;font-size:clamp(.95rem,2vh,1.1rem)}.ep-mini-game--idiom-challenge .ep-mini-game__tile--matched,.ep-mini-game--idiom-challenge .ep-mini-game__meaning-option--correct{color:#1a7f45;background:#eafaf0;border-color:#20a95b;box-shadow:0 6px #20a95b}.ep-mini-game--idiom-challenge .ep-mini-game__meaning-option--correct .ep-mini-game__meaning-option-zh:before{content:"✓ "}@media (width>=900px) and (height>=700px){.ep-mini-game__meaning-shell{grid-template-columns:minmax(0,4fr) minmax(0,6fr);align-items:stretch}.ep-mini-game__meaning-context{width:100%}.ep-mini-game__meaning-scene{flex:auto;min-height:0;max-height:none}.ep-mini-game--idiom-challenge .ep-mini-game__meaning-options{grid-auto-rows:minmax(64px,1fr);height:100%}}@media (width<=760px){.ep-mini-game--idiom-challenge.ep-mini-game--meaning{gap:8px;padding:6px 8px}.ep-mini-game__meaning-scene{max-height:22dvh}}@media (height<=699px){.ep-mini-game__meaning-scene{display:none}}.ep-mini-game--idiom-challenge .ep-mini-game__tile--wrong,.ep-mini-game--idiom-challenge .ep-mini-game__meaning-option--wrong{background:#fff1f0;border-color:#f2a7a0;animation:.4s ep-challenge-shake;box-shadow:0 6px #f2a7a0}@keyframes ep-challenge-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.ep-mini-game--idiom-challenge .ep-mini-game__slot{background:#fbfdf9;border:2px dashed #c9dcc2;border-radius:16px}.ep-mini-game--idiom-challenge .ep-mini-game__slot--correct{background:#eafaf0;border-style:solid;border-color:#20a95b}.ep-mini-game--idiom-challenge .ep-mini-game__complete{text-align:center;background:#eafaf0;border:2px solid #b9e4c9;border-radius:20px;flex-direction:column;align-items:center;gap:4px;padding:14px 22px;display:flex}.ep-mini-game--idiom-challenge .ep-mini-game__complete-text{color:#1a7f45;margin:0;font-size:1.3rem;font-weight:900}.ep-mini-game--idiom-challenge .ep-mini-game__complete-text-en{color:#4f8a5b;margin:0;font-weight:700}.ep-mini-game__complete-next{color:#24344d;flex-direction:column;margin:6px 0 0;font-weight:800;display:flex}.ep-mini-game__complete-next-en{color:#66788f;font-size:.8rem}.ep-mini-game--idiom-challenge .ep-mini-game__reset{min-height:44px;box-shadow:none;color:#66788f;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0 12px;font-family:inherit;font-size:.85rem;font-weight:700;text-decoration:underline}@media (prefers-reduced-motion:reduce){.ep-mini-game--idiom-challenge .ep-mini-game__tile--wrong,.ep-mini-game--idiom-challenge .ep-mini-game__meaning-option--wrong{animation:none}}.ep-scenes-track>.ep-story-card--reward .ep-story-congrats.ep-reward-scene{min-height:0;box-shadow:none;background:0 0;border:none;flex-direction:column;flex:auto;padding:0;display:flex;overflow:hidden}.ep-finale{flex-direction:column;flex:auto;align-items:center;gap:10px;width:min(100%,1000px);height:100%;min-height:0;margin:0 auto;padding:clamp(8px,1.5vh,16px) 16px 8px;display:flex;position:relative;overflow:hidden}@media (height<=699px){.ep-scenes-track>.ep-story-card--reward .ep-story-congrats.ep-reward-scene,.ep-finale{overflow:auto}}.ep-finale .ep-story-congrats__confetti{pointer-events:none;height:120px;position:absolute;inset:0 0 auto}.ep-finale__bubble{background:#fff;border-radius:999px 24px 24px 999px;align-items:center;gap:12px;min-width:0;max-width:min(100%,28rem);padding:8px 20px 8px 8px;animation:.5s cubic-bezier(.34,1.56,.64,1) .2s both ep-bubble-pop;display:flex;box-shadow:0 8px 20px #24344d24}.ep-finale__avatar{object-fit:cover;border:3px solid #f5c542;border-radius:50%;width:clamp(52px,8vh,68px);height:clamp(52px,8vh,68px);animation:2.4s ease-in-out 1s infinite ep-buddy-nod}.ep-finale__bubble-text{flex-direction:column;min-width:0;margin:0;display:flex}.ep-finale__bubble-zh{color:#24344d;font-size:clamp(1.05rem,2.2vh,1.3rem);font-weight:900}.ep-finale__bubble-en{color:#66788f;font-size:.85rem;font-weight:700}.ep-finale__tiles{margin-top:0}.ep-finale__tiles .ep-karaoke-pair{animation:.5s cubic-bezier(.34,1.56,.64,1) both ep-finale-tile-in}.ep-finale__tiles .ep-karaoke-pair:first-child{animation-delay:.4s}.ep-finale__tiles .ep-karaoke-pair:nth-child(2){animation-delay:.55s}.ep-finale__tiles .ep-karaoke-pair:nth-child(3){animation-delay:.7s}.ep-finale__tiles .ep-karaoke-pair:nth-child(4){animation-delay:.85s}@keyframes ep-finale-tile-in{0%{opacity:0;transform:translateY(-24px)scale(.7)}}.ep-finale__speak{cursor:pointer;background:#eafaf0;border:2px solid #b9e4c9;border-radius:50%;width:44px;height:44px;font-size:1.1rem;position:absolute;top:8px;right:8px}.ep-finale__tree-grow{inset-inline:0;z-index:40;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;bottom:18%}.ep-finale__tree-stars{font-size:1.4rem;animation:.9s both ep-finale-star-fly}.ep-finale__tree-icon{font-size:2.4rem}.ep-finale__tree-grow.is-level .ep-finale__tree-icon{animation:.7s cubic-bezier(.34,1.56,.64,1) .4s both ep-finale-tree-step}.ep-finale__tree-icon img{object-fit:contain;width:56px;height:56px}@keyframes ep-finale-star-fly{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes ep-finale-tree-step{0%{transform:scale(.8)}to{transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.ep-finale__tree-stars,.ep-finale__tree-grow.is-level .ep-finale__tree-icon{animation:none}}.ep-finale__collect{color:#5a3500;cursor:pointer;background:linear-gradient(#ffd54f,#ffb300);border:none;border-radius:999px;flex-direction:column;align-items:center;min-height:64px;margin-top:6px;padding:8px 36px;font-family:inherit;font-size:1.3rem;font-weight:900;animation:1.8s ease-in-out infinite stroke-workshop-stone-bounce;display:flex;box-shadow:0 6px #d18f00,0 14px 24px -10px #f5a00099}.ep-finale__collect-en{font-size:.8rem;font-weight:700}.ep-finale__collected-wrap{flex-direction:column;flex:none;align-items:center;gap:8px;width:100%;margin:0;display:flex}.ep-finale__collected-row{justify-content:center;align-items:center;gap:10px;width:100%;min-width:0;display:flex}.ep-finale__collected-sticker-wrap{flex:none;width:48px;height:48px;position:relative}.ep-finale__collected-sticker{object-fit:contain;flex-shrink:0;width:48px;height:48px}.ep-finale__collected-sticker-wrap.is-replay:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 30%,#fffc 50%,#0000 70%);border-radius:50%;animation:.7s both ep-finale-replay-sparkle;position:absolute;inset:8%}@keyframes ep-finale-replay-sparkle{0%{opacity:0;transform:translate(-40%)rotate(12deg)}40%{opacity:.9}to{opacity:0;transform:translate(40%)rotate(12deg)}}.ep-finale__collected-sticker.ep-sticker-moment__fallback{color:#1a7f45;text-align:center;background:#fff;border:3px solid #2f8f4e;border-radius:50%;place-items:center;font-size:.72rem;font-weight:900;line-height:1.15;display:grid}.ep-finale__collected{color:#1a7f45;background:#eafaf0;border-radius:16px;flex-direction:column;flex:auto;align-items:flex-start;min-width:0;margin:0;padding:8px 12px;font-weight:900;display:flex}.ep-finale__star-chip{color:#b35c00;white-space:nowrap;background:#fff8e1;border-radius:999px;flex:none;align-items:center;gap:4px;margin-inline-start:auto;padding:6px 12px;font-size:1rem;font-weight:900;display:inline-flex}.ep-finale__collected-en{color:#4f8a5b;font-size:.8rem;font-weight:700}.ep-finale__season-cta{color:#1a7f45;text-align:center;flex-direction:column;align-items:center;gap:2px;margin:0;font-weight:900;display:flex}.ep-finale__season-cta-en{color:#4f8a5b;font-size:.8rem;font-weight:700}.ep-finale__season-cta-link{color:#24703c;margin-top:4px;font-size:.95rem;font-weight:800}.ep-sticker-moment{z-index:80;pointer-events:none;position:fixed;inset:0}.ep-sticker-moment__sticker{opacity:0;width:176px;height:176px;position:fixed;top:46%;left:50%;transform:translate(-50%,-50%)scale(.4)}.ep-sticker-moment__sticker.is-pop{animation:.45s cubic-bezier(.34,1.56,.64,1) forwards ep-sticker-moment-pop}.ep-sticker-moment__sticker.is-fly{animation:.75s cubic-bezier(.4,0,.2,1) forwards ep-sticker-moment-fly}.ep-sticker-moment__art{object-fit:contain;width:100%;height:100%;display:block}.ep-sticker-moment__fallback{color:#1a7f45;text-align:center;background:#eafaf0;border:6px solid #2f8f4e;border-radius:50%;place-items:center;width:100%;height:100%;font-size:1.35rem;font-weight:900;line-height:1.2;display:grid}.ep-sticker-moment__shine{pointer-events:none;opacity:0;background:linear-gradient(115deg,#0000 30%,#ffffffbf 50%,#0000 70%);border-radius:50%;animation:.7s .12s forwards ep-sticker-moment-shine;position:absolute;inset:12%}.ep-sticker-moment__book{font-size:2.4rem;line-height:1;position:fixed;bottom:36px;left:50%;transform:translate(-50%)}.ep-sticker-moment__book.is-land{animation:.4s cubic-bezier(.34,1.56,.64,1) ep-sticker-moment-book}.ep-sticker-moment--reduced .ep-sticker-moment__sticker{width:56px;height:56px;animation:.4s forwards ep-sticker-moment-fade;top:auto;bottom:48px}@keyframes ep-sticker-moment-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}70%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes ep-sticker-moment-fly{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:1;transform:translate(-50%,42vh)scale(.22)}}@keyframes ep-sticker-moment-shine{0%{opacity:0;transform:translate(-40%)rotate(12deg)}35%{opacity:.85}to{opacity:0;transform:translate(40%)rotate(12deg)}}@keyframes ep-sticker-moment-book{0%,to{transform:translate(-50%)scale(1)}40%{transform:translate(-50%)scale(1.28)}}@keyframes ep-sticker-moment-fade{0%{opacity:0;transform:translate(-50%)}to{opacity:1;transform:translate(-50%)}}.ep-finale__stars{flex-direction:column;align-items:center;gap:6px;width:100%;min-height:0;margin:0;display:flex}.ep-finale__stars-total{color:#b35c00;text-align:center;margin:0;font-size:1.15rem;font-weight:900}.ep-finale__stars-total span,.ep-finale__stars-lines li span,.ep-finale__challenges li span{opacity:.8;font-size:.75rem;font-weight:700;display:block}.ep-finale__stars-lines,.ep-finale__challenges{flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ep-finale__stars-lines{flex:0 auto;min-height:0;max-height:4.5rem;overflow:hidden}@media (height<=859px){.ep-finale__stars-lines{display:none}}.ep-finale__stars-lines li{color:#7a3e00;text-align:center;background:#fff8e1;border-radius:16px;padding:4px 12px 6px;font-size:.82rem;font-weight:800}.ep-finale__challenges li{color:#5a7390;text-align:center;border:2px dashed #cfd8e3;border-radius:14px;padding:4px 12px;font-size:.85rem;font-weight:800}.ep-finale__challenges li.is-done{color:#1a7f45;background:#eafaf0;border-style:solid;border-color:#9ad5ae}.ep-story-card--reward.is-awaiting-collect .ep-scene-nav-btn--next{visibility:hidden}@media (prefers-reduced-motion:reduce){.ep-finale__bubble,.ep-finale__avatar,.ep-finale__tiles .ep-karaoke-pair,.ep-finale__collect,.ep-sticker-moment__sticker.is-pop,.ep-sticker-moment__sticker.is-fly,.ep-sticker-moment__shine,.ep-sticker-moment__book.is-land{animation:none}.ep-finale__collected-sticker{animation:.4s both ep-sticker-moment-fade}.ep-finale__collected-sticker-wrap.is-replay:after{animation:none}}.ep-album{flex-direction:column;gap:12px;min-width:0;display:flex}.ep-album__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;margin:0;padding:2px 0 14px;display:flex}.ep-album__head-title{min-width:0;margin:0}.ep-album__head-tools{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;display:flex}.ep-album__head .nf-episodes__season-meter{flex:0 auto;min-width:0}.ep-album__head .nf-episodes__season-meter-text{white-space:nowrap}.ep-album__count{color:#1a7f45;background:#eafaf0;border:3px solid #b9e4c9;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-weight:900;display:inline-flex}.ep-album__count.is-gold{color:#7a4b00;background:#fff8e0;border-color:#f5c542}.ep-album__count.is-pop{animation:.55s cubic-bezier(.34,1.56,.64,1) ep-album-count-pop}@keyframes ep-album-count-pop{0%{transform:scale(.7)}to{transform:scale(1)}}.ep-album__count-num{letter-spacing:.02em;font-size:1.25rem}.ep-album__count-ribbon{color:#fff;background:#20a95b;border-radius:999px;padding:2px 8px;font-size:.68rem}.ep-album__book-cluster{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.ep-album__book{cursor:pointer;min-width:48px;min-height:48px;font:inherit;color:inherit;background:#eaf6e4;border:none;border-radius:16px;flex-direction:row;justify-content:center;align-items:center;gap:6px;margin:0;padding:4px 10px 4px 4px;display:inline-flex;position:relative;box-shadow:0 3px 8px #24344d29}.ep-album__book:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.ep-album__book-cover{width:48px;height:48px;color:inherit;box-shadow:none;background:0 0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.ep-album__book-label{color:#24344d;flex-direction:column;align-items:flex-start;min-width:0;font-size:.8rem;font-weight:800;line-height:1.15;display:flex}.ep-album__book-label span{color:#66788f;font-size:.8rem}.ep-album__book-badge{top:2px;z-index:1;color:#fff;text-align:center;background:#e53935;border-radius:999px;min-width:1.15rem;padding:1px 4px;font-size:.62rem;font-weight:900;line-height:1.2;position:absolute;inset-inline-end:2px}.ep-album__book.is-wiggle{box-shadow:0 3px 8px #24344d29,0 0 0 3px #20a95b61}.ep-album__book.is-wiggle .ep-album__book-cover{animation:2.8s ease-in-out infinite ep-album-book-wiggle}.ep-album__stick-pill{color:#7a4b00;white-space:nowrap;background:#fff6d6;border-radius:999px;flex-direction:row;align-items:baseline;gap:4px;padding:4px 10px;font-size:.8rem;font-weight:800;line-height:1.2;display:inline-flex}.ep-album__stick-pill span{font-size:.8rem;font-weight:700}@keyframes ep-album-book-wiggle{0%,82%,to{transform:rotate(0)}86%{transform:rotate(-8deg)}90%{transform:rotate(7deg)}94%{transform:rotate(-5deg)}}@media (prefers-reduced-motion:reduce){.ep-album__count.is-pop,.ep-album__book.is-wiggle .ep-album__book-cover{animation:none}}@media (width<=600px){.ep-album__head-title{flex:100%}.ep-album__head-title .nf-episodes__season-title-en{margin-inline-start:0;display:block}.ep-album__head-tools{flex:100%;justify-content:flex-start;align-items:center}.ep-album__book-cluster{flex-direction:column;flex:100%;align-items:center}.ep-album__book{flex-direction:column;align-items:center;padding:4px 8px}.ep-album__book-label{align-items:center}.ep-album__head .nf-episodes__season-meter{flex-direction:column;align-items:flex-start;gap:4px}.ep-album__head .nf-episodes__season-meter-bar{flex-shrink:0;width:88px}}.ep-album__grid{grid-template-columns:repeat(auto-fill,minmax(0,1fr));gap:14px 10px;padding-inline:8px;display:grid}.ep-album__sticker,.ep-album__slot{box-sizing:border-box;background:0 0;border:none;flex-direction:column;align-items:center;width:100%;min-width:0;max-width:100%;height:100%;padding:0;font-family:inherit;display:flex;position:relative}.ep-album__sticker{cursor:pointer;transition:transform .15s}.ep-album__sticker:active{transform:scale(.95)}.ep-album__art{aspect-ratio:1;background:linear-gradient(160deg,#e6f6ec,#fff1d6);border:4px solid #fff;border-radius:50%;width:100%;display:block;overflow:hidden;box-shadow:0 0 0 3px #b9e4c9,0 8px 14px -6px #24344d59}.ep-album__art img{object-fit:cover;width:100%;height:100%}.ep-album__ribbon{z-index:1;box-sizing:border-box;-webkit-line-clamp:2;color:#fff;letter-spacing:0;text-align:center;text-wrap:balance;overflow-wrap:anywhere;background:#20a95b;border-radius:8px;-webkit-box-orient:vertical;width:100%;max-width:100%;min-height:2.45em;margin-top:-14px;padding:3px 2px;font-size:clamp(.62rem,14cqi,.8rem);font-weight:900;line-height:1.15;display:-webkit-box;position:relative;overflow:hidden;box-shadow:0 3px #178a49}.ep-album__sticker.is-shiny .ep-album__art{position:relative;box-shadow:0 0 0 3px #f5c542,0 0 16px #f5c542b3}.ep-album__sticker.is-shiny .ep-album__art:after{content:"";background:linear-gradient(115deg,#0000 35%,#ffffffb3 50%,#0000 65%) 0 0/250% 100%;border-radius:50%;animation:2.8s ease-in-out infinite ep-album-shimmer;position:absolute;inset:0}.ep-album__sticker.is-shiny .ep-album__ribbon{color:#5a3500;background:linear-gradient(#ffd54f,#ffb300);box-shadow:0 3px #d18f00}@keyframes ep-album-shimmer{0%{background-position:150% 0}to{background-position:-100% 0}}.ep-album__sticker.is-new{animation:.9s cubic-bezier(.34,1.56,.64,1) both ep-album-arrive}@keyframes ep-album-arrive{0%{opacity:0;transform:translateY(-40px)scale(.3)rotate(-20deg)}to{opacity:1;transform:none}}.ep-album__new{top:4px;z-index:2;color:#fff;background:#e53935;border-radius:999px;padding:2px 6px;font-size:.62rem;font-weight:900;position:absolute;inset-inline-end:4px}.ep-album__slot{justify-content:flex-start;justify-self:stretch}.ep-album__slot:before{content:"";aspect-ratio:1;background:#f7f9f6;border:3px dashed #d4ddd2;border-radius:50%;width:100%}.ep-album__slot-sil{top:0;aspect-ratio:1;filter:brightness(0)opacity(.12);pointer-events:none;border-radius:50%;position:absolute;inset-inline:0;overflow:hidden}.ep-album__slot-sil img{object-fit:cover;width:100%;height:100%}.ep-album__invite{flex-direction:column;align-items:center;gap:10px;padding:8px 0 4px;display:flex}.ep-album__invite .ep-album__slot{width:min(92px,40%)}.ep-album__invite-copy{text-align:center;color:#1e3a5f;max-width:18rem;margin:0;font-size:.92rem;font-weight:800;line-height:1.35}.ep-album__invite-copy span{color:#66788f;margin-top:2px;font-size:.78rem;font-weight:700;display:block}.ep-album__slot-q{top:0;aspect-ratio:1;color:#9aa7b4;place-items:center;font-size:2rem;font-weight:900;display:grid;position:absolute;inset-inline:0}.ep-album__slot-lock{top:0;z-index:1;aspect-ratio:1;pointer-events:none;position:absolute;inset-inline:0}.ep-album__slot-lock>.dl-icon{position:absolute;inset-block-end:4px;inset-inline-end:4px}.ep-album__slot-num{z-index:1;box-sizing:border-box;color:#9aa7b4;text-align:center;justify-content:center;align-items:center;width:100%;max-width:100%;min-height:2.45em;margin-top:-14px;padding:3px 2px;font-size:clamp(.62rem,14cqi,.8rem);font-weight:800;line-height:1.15;display:flex;position:relative}.ep-album-back__card{text-align:center;background:#fffbf2;border:3px solid #b9e4c9;border-radius:28px;flex-direction:column;align-items:center;gap:4px;width:min(92vw,380px);padding:22px 22px 18px;animation:.5s ease-out ep-album-flip;display:flex;position:relative;box-shadow:0 20px 40px #24344d4d}.ep-album-back__card.is-shiny{border-color:#f5c542}@keyframes ep-album-flip{0%{opacity:.4;transform:perspective(800px)rotateY(90deg)}to{opacity:1;transform:perspective(800px)rotateY(0)}}.ep-album-back__img{object-fit:cover;border:4px solid #fff;border-radius:50%;width:120px;height:120px;box-shadow:0 0 0 3px #b9e4c9}.ep-album-back__ep{color:#66788f;margin:8px 0 0;font-size:.8rem;font-weight:800}.ep-album-back__idiom{color:#1e3a5f;letter-spacing:.08em;margin:0;font-size:2.4rem;font-weight:900}.ep-album-back__jyutping{color:#4f8a5b;margin:0;font-weight:800}.ep-album-back__meaning{color:#24344d;margin:8px 0 0;font-size:1.1rem;font-weight:800}.ep-album-back__meaning-en{color:#66788f;margin:0;font-size:.85rem}.ep-album-back__actions{flex-direction:column;align-items:stretch;gap:10px;width:100%;margin-top:14px;display:flex}.ep-album-back__action-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ep-album-back__action-row:has(:only-child){grid-template-columns:1fr}.ep-album-back__action-row .ep-story-hero-intro__replay-pill{white-space:normal;justify-content:center;width:100%;height:auto;min-height:56px;padding:8px 10px}.ep-album-back__stick-book{color:#3d2a00;cursor:pointer;background:#f5c542;border:none;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:56px;padding:6px 10px 8px;font-family:inherit;font-weight:900;display:inline-flex;box-shadow:0 4px #d18f00}.ep-album-back__stick-book-en{font-size:.72rem;font-weight:700}.ep-album-back__close{color:#fff;cursor:pointer;background:#20a95b;border:none;border-radius:999px;width:100%;min-height:48px;padding:0 22px;font-family:inherit;font-weight:900;box-shadow:0 4px #178a49}.ep-album-back__shiny,.ep-album-back__hint{color:#7a4b00;background:#fff6d6;border-radius:12px;margin:12px 0 0;padding:8px 12px;font-size:.78rem;font-weight:700}.ep-album-back__hint span{color:#66788f;font-weight:600;display:block}@media (prefers-reduced-motion:reduce){.ep-album__sticker.is-shiny .ep-album__art:after,.ep-album__sticker.is-new,.ep-album-back__card,.ep-sticker-book__sticker--art.is-shiny:after{animation:none}}.ep-album__item{min-width:0;max-width:100%;display:flex;container-type:inline-size}.ep-album__grid>.ep-album__slot{container-type:inline-size}.ep-album__item>.ep-album__sticker{width:100%}.nf-episodes__season .ep-card-grid{grid-template-columns:repeat(6,minmax(0,1fr))}@media (width<=1000px){.nf-episodes__season .ep-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=601px){.nf-episodes__season .ep-card-grid{align-items:stretch}.nf-episodes__season .ep-card-grid>.ep-card{height:100%}.nf-episodes__season .ep-card-grid>.ep-card .ep-card__open{flex:1;height:100%}.nf-episodes__season .ep-card-grid>.ep-card .ep-card__chip{margin-top:auto}}@media (width<=600px){.nf-episodes__season .ep-card-grid{flex-direction:column;grid-template-columns:none;gap:10px;display:flex}.nf-episodes__season .ep-card-grid>.ep-card{text-align:start;flex-direction:row;height:auto}.nf-episodes__season .ep-card-grid>.ep-card.ep-card--locked,.nf-episodes__season .ep-card-grid>.ep-card .ep-card__open{text-align:start;grid-template-rows:auto auto auto auto;grid-template-columns:40% minmax(0,1fr);gap:4px 12px;display:grid}.nf-episodes__season .ep-card-grid>.ep-card .ep-card__art{grid-row:1/5;min-width:0}.nf-episodes__season .ep-card-grid>.ep-card.is-current{transform:none}}.nf-episodes__season .nf-episodes__season-head{align-items:stretch}.ep-card-grid>.ep-card.is-completed{border-color:#20a95b;box-shadow:inset 0 0 0 2px #20a95b,0 4px #b9e4c9}.ep-card-grid>.ep-card.is-current{z-index:1;background:#fffbea;border-color:#f5c542;animation:2.2s ease-in-out infinite ep-card-next-bob;position:relative;transform:scale(1.04);box-shadow:0 0 0 3px #f5c542,0 10px 22px -10px #f5a00099}@keyframes ep-card-next-bob{0%,to{transform:scale(1.04)translateY(0)}50%{transform:scale(1.04)translateY(-4px)}}@media (prefers-reduced-motion:reduce){.ep-card-grid>.ep-card.is-current{animation:none}}.my-tree{position:relative}.my-tree__badge{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative;overflow:visible}.my-tree__face{place-items:center;width:56px;height:56px;display:grid;position:relative}.my-tree__ring{pointer-events:none;width:56px;height:56px;position:absolute;inset:0}.my-tree__ring-fill{stroke:#20a95b}.my-tree__ring-fill.is-top{stroke:#f5c542}.my-tree__level{z-index:1;color:#fff;background:#20a95b;border-radius:50%;place-items:center;width:18px;height:18px;font-size:.62rem;font-weight:900;line-height:1;display:grid;position:absolute;bottom:0;right:0}.my-tree__emoji,.my-tree__img{background:#eafaf0;border:3px solid #20a95b;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.4rem;display:flex}.my-tree__img{box-sizing:border-box;object-fit:contain;padding:2px}.my-tree__badge .my-tree__face .my-tree__emoji,.my-tree__badge .my-tree__face .my-tree__img{background:#e3f6ea;border:none;width:46px;height:46px;font-size:2rem}.my-tree-panel{box-sizing:border-box;overscroll-behavior:contain;background:#fff;border-radius:20px;flex-direction:column;gap:10px;width:min(24rem,100vw - 32px);max-height:calc(100dvh - 48px);padding:16px 18px;display:flex;overflow-y:auto}@media (width>=768px){.my-tree-panel .my-tree-panel__ladder{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;display:grid}}.my-tree-panel__title{margin:0;font-size:1.1rem}.my-tree-panel__title span,.my-tree-panel__now span span,.my-tree-panel__next span,.my-tree-panel__ladder span span{color:#66788f;font-size:.78rem;font-weight:600;display:block}.my-tree-panel__now,.my-tree-panel__ladder li{align-items:center;gap:10px;display:flex}.my-tree-panel__stars{margin:0;font-weight:900}.my-tree-panel__bar{background:#e2e8e0;border-radius:999px;height:8px;overflow:hidden}.my-tree-panel__bar>span{background:#20a95b;height:100%;display:block}.my-tree-panel__ladder{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.my-tree-panel__ladder li.is-future{opacity:.45;filter:grayscale()}.my-tree-panel__ladder li.is-current{font-weight:900}.my-tree-panel__next{margin:0;font-size:.85rem;font-weight:700}.ep-hero .ep-hero__art .roadmap-glass-node__visual{aspect-ratio:auto;height:clamp(220px,42vh,440px)}.ep-hero .ep-hero__art img{object-fit:cover;height:100%}.ep-unlock-teaser{background:linear-gradient(135deg,#f5f0ff,#fffbf2);border:3px solid #c7b3ef;border-radius:26px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(14px,3vw,28px);margin:18px 0;padding:clamp(14px,2.5vw,22px);display:grid;box-shadow:0 8px #c7b3ef,0 18px 30px -16px #5b3fa873}.ep-unlock-teaser__art{aspect-ratio:16/10;background:#e9e1fb;border-radius:18px;position:relative;overflow:hidden}.ep-unlock-teaser__art img{object-fit:cover;filter:saturate(.85)brightness(.92);width:100%;height:100%}.ep-unlock-teaser__lock{text-shadow:0 4px 12px #00000059;place-items:center;font-size:clamp(2.6rem,7vw,4rem);animation:2.6s ease-in-out infinite ep-unlock-wiggle;display:grid;position:absolute;inset:0}@keyframes ep-unlock-wiggle{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-10deg)}90%{transform:rotate(8deg)}95%{transform:rotate(-4deg)}}.ep-unlock-teaser__ep{color:#5b3fa8;background:#ffffffeb;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:900;position:absolute;top:10px;left:10px}.ep-unlock-teaser__body{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.ep-unlock-teaser__body p,.ep-unlock-teaser__body h2{margin:0}.ep-unlock-teaser__kicker{color:#5b3fa8;font-size:.85rem;font-weight:900}.ep-unlock-teaser__idiom{color:#1e3a5f;letter-spacing:.06em;flex-direction:column;font-size:clamp(2rem,5vw,2.8rem);font-weight:900;line-height:1.1;display:flex}.ep-unlock-teaser__idiom-en{color:#66788f;letter-spacing:0;font-size:.9rem;font-weight:700}.ep-unlock-teaser__line{color:#24344d;flex-direction:column;font-weight:800;display:flex}.ep-unlock-teaser__line span{color:#66788f;font-size:.8rem;font-weight:600}.ep-unlock-teaser__btn{color:#fff;cursor:pointer;background:#7c4dcc;border:none;border-radius:999px;flex-direction:column;align-items:flex-start;min-height:56px;margin-top:8px;padding:8px 22px;font-family:inherit;font-size:1.1rem;font-weight:900;display:flex;box-shadow:0 5px #5b3fa8}.ep-unlock-teaser__btn span{opacity:.9;font-size:.75rem;font-weight:700}.ep-unlock-teaser__btn:active{transform:translateY(3px);box-shadow:0 2px #5b3fa8}.ep-page--locked{flex-direction:column;align-items:center;width:min(100%,860px);margin:0 auto;padding:clamp(16px,4vh,40px) 16px;display:flex}@media (width<=640px){.ep-unlock-teaser{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.ep-unlock-teaser__lock{animation:none}}.ep-album .ep-album__grid{grid-template-columns:repeat(6,minmax(0,120px));justify-content:center;column-gap:10px;padding-inline:8px}@media (width<=700px){.ep-album .ep-album__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=420px){.ep-album .ep-album__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.ep-unlock-teaser h2.ep-unlock-teaser__idiom{font-size:clamp(2rem,5vw,2.8rem)}.dashboard-signup-banner__note{opacity:.85;margin-top:4px;font-size:.85em;display:block}.trial-complete{background:linear-gradient(#fff8dc,#fffbf2 40%);border:3px solid #f5c542;border-radius:28px;margin:18px 0;padding:clamp(14px,2.5vw,22px);box-shadow:0 8px #f5c542,0 18px 30px -16px #f5a00073}.trial-complete__title{color:#24344d;flex-direction:column;margin:0 0 12px;font-size:clamp(1.3rem,3vw,1.7rem);font-weight:900;display:flex}.trial-complete__title span{color:#66788f;font-size:.85rem;font-weight:700}.trial-complete__stickers{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.trial-complete__sticker{flex-direction:column;align-items:center;animation:.9s cubic-bezier(.34,1.56,.64,1) both ep-album-arrive;display:flex}.trial-complete__sticker-art{background:#e6f6ec;border:4px solid #fff;border-radius:50%;width:84px;height:84px;display:block;overflow:hidden;box-shadow:0 0 0 3px #20a95b,0 8px 14px -6px #24344d59}.trial-complete__sticker-art img{object-fit:cover;width:100%;height:100%}.trial-complete__sticker-ribbon{color:#fff;background:#20a95b;border-radius:8px;margin-top:-12px;padding:2px 10px;font-size:.8rem;font-weight:900;box-shadow:0 3px #178a49}.trial-complete__slot{color:#b8c3bd;background:#f7f9f6;border:3px dashed #d4ddd2;border-radius:50%;place-items:center;width:52px;height:52px;font-size:1.3rem;font-weight:900;display:grid}.trial-complete__more{color:#24344d;flex-direction:column;margin-left:4px;font-weight:900;display:flex}.trial-complete__more span{color:#66788f;font-size:.75rem;font-weight:700}.trial-complete .ep-unlock-teaser{box-shadow:none;border-width:2px;margin:16px 0 0}@media (prefers-reduced-motion:reduce){.trial-complete__sticker{animation:none}}.trial-complete h2.trial-complete__title{font-size:clamp(1.3rem,3vw,1.7rem)}.stroke-workshop-map__level.is-trial-locked .stroke-workshop-map__stone{color:#5b3fa8;background:#f5f0ff;border-color:#c7b3ef;box-shadow:0 6px #c7b3ef}.trial-complete-overlay{place-items:center;padding:16px;display:grid}.trial-complete-overlay__panel{flex-direction:column;align-items:center;width:min(100%,860px);max-height:100%;display:flex;overflow:auto}.trial-complete-overlay .trial-complete{background:#fffbf2;width:100%;margin:0}.trial-complete-overlay .ep-ready-restart-link{color:#fff}.trial-complete__levels{color:#1a7f45;flex-direction:column;margin:12px 0 0;font-weight:900;display:flex}.trial-complete__levels span{color:#66788f;font-size:.78rem;font-weight:700}.ep-scene-stage--theatre .ep-scene-theatre__play-btn.ep-scene-theatre__play-btn--labeled{color:#fff;background:linear-gradient(#34c472,#20a95b);border:none;gap:12px;min-height:clamp(60px,9vmin,76px);padding:0 clamp(26px,4vmin,40px);font-size:clamp(1.05rem,2.8vmin,1.35rem);animation:1.8s ease-in-out infinite ep-listen-all-bob;position:relative;box-shadow:0 6px #178a49,0 14px 26px -10px #20a95bb3}.ep-scene-theatre__play-btn--labeled .ep-listen-all-btn__main{font-size:1.15em;font-weight:900}.ep-scene-theatre__play-btn--labeled .ep-listen-all-btn__en{opacity:.95;font-size:.75em;font-weight:700}.ep-scene-stage--theatre .ep-scene-theatre__play-btn.ep-scene-theatre__play-btn--labeled:after{content:"";border-radius:inherit;pointer-events:none;border:3px solid #20a95b8c;animation:1.8s ease-out infinite ep-listen-all-ring;position:absolute;inset:-6px}.ep-scene-stage--theatre .ep-scene-theatre__play-btn.ep-scene-theatre__play-btn--labeled:active{animation:none;transform:translateY(4px);box-shadow:0 2px #178a49}@keyframes ep-listen-all-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes ep-listen-all-ring{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.18,1.35)}}@media (prefers-reduced-motion:reduce){.ep-scene-stage--theatre .ep-scene-theatre__play-btn.ep-scene-theatre__play-btn--labeled,.ep-scene-stage--theatre .ep-scene-theatre__play-btn.ep-scene-theatre__play-btn--labeled:after{animation:none}}.ep-scenes-track>.ep-story-card:has(.ep-scene-stage--theatre){background:#fffbf2}.ep-scenes-track>.ep-story-card:has(.ep-scene-stage--theatre)>.ep-story-card__header{height:0;min-height:0;margin:0;padding:0;overflow:hidden}body.ep-immersive .ep-scenes-track>.ep-story-card:has(.ep-scene-stage--theatre){background:#fffbf2}.ep-scenes-track>.ep-story-card:has(.ep-scene-stage--theatre)>.ep-scene-card-toolbar{border-bottom:none}.stroke-workshop-map__play{color:#fff;cursor:pointer;background:linear-gradient(#34c472,#20a95b);border:none;border-radius:999px;flex-direction:column;align-items:center;width:100%;min-height:64px;margin-top:6px;padding:10px 20px;font-family:inherit;font-size:clamp(1.1rem,2.6vh,1.35rem);font-weight:900;animation:1.8s ease-in-out infinite ep-listen-all-bob;display:flex;box-shadow:0 6px #178a49,0 14px 24px -10px #20a95bb3}.stroke-workshop-map__play-en{opacity:.95;font-size:.72em;font-weight:700}.stroke-workshop-map__play:active{animation:none;transform:translateY(4px);box-shadow:0 2px #178a49}.stroke-workshop-flow--map .stroke-workshop-map__level.is-trial-locked{cursor:pointer}@media (prefers-reduced-motion:reduce){.stroke-workshop-map__play{animation:none}}.stroke-workshop-game__rebuild{color:#66788f;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;min-height:44px;margin-top:4px;padding:0 12px;font-family:inherit;font-size:.85rem;font-weight:700;text-decoration:underline}.ep-scene-subtitle-band.is-ghost .ep-karaoke-char,.ep-scene-subtitle-band.is-ghost .ep-karaoke-trail{color:#b8c3bd}.ep-scene-subtitle-band.is-ghost .ep-karaoke-pair{box-shadow:none;background:0 0}.ep-scene-stage.is-first-listen-locked .ep-scene-subtitle-band__content{min-height:clamp(3rem,7.5vmin,4.2rem)}.ep-scene-subtitle-band .ep-karaoke-trail{font-size:min(clamp(1.5rem, 4.4vmin, 2.4rem), calc(80cqw / var(--kl,12)));font-feature-settings:"halt" 1;color:#24344d;font-weight:700;line-height:1}.ep-scene-subtitle-band .ep-karaoke-pair.is-active .ep-karaoke-trail{color:#24344d;box-shadow:none;font-weight:700;transform:none}.ep-scene-subtitle-band .ep-karaoke-pair.is-past .ep-karaoke-trail{color:#7d8ea6}.ep-scene-subtitle-band.is-ghost .ep-karaoke-trail{color:#b8c3bd}.ep-karaoke-unit{flex:0 auto;align-items:baseline;min-width:0;display:inline-flex}.ep-scene-subtitle-band .ep-karaoke-unit:has(>.ep-karaoke-pair.is-past)>.ep-karaoke-trail{color:#7d8ea6}.ep-scene-node-tracker__gap{background:#d4ddd2;border-radius:2px;width:8px;height:2px;margin:0 2px}.ep-scene-node-tracker .ep-scene-node-tracker__game{width:24px;height:24px;box-shadow:none;color:#8a9aa8;opacity:1;filter:none;background:#fff;border:2px solid #d4ddd2;border-radius:50%;place-items:center;margin-left:2px;transition:border-color .2s,background-color .2s,color .2s,box-shadow .2s;display:grid}.ep-scene-node-tracker .ep-scene-node-tracker__game .dl-icon,.ep-scene-node-tracker .ep-scene-node-tracker__game .dl-icon svg{width:16px;height:16px;display:block}.ep-scene-node-tracker .ep-scene-node-tracker__game.is-complete{color:#1f6b42;background:#eafaf0;border-color:#b9e4c9}.ep-scene-node-tracker .ep-scene-node-tracker__game.is-current{color:#8a5a00;background:#fff6d6;border-color:#f5c542;width:30px;height:30px;box-shadow:0 0 0 4px #f5c54240}.ep-scene-node-tracker .ep-scene-node-tracker__game.is-current .dl-icon,.ep-scene-node-tracker .ep-scene-node-tracker__game.is-current .dl-icon svg{width:18px;height:18px}@media (prefers-reduced-motion:reduce){.ep-scene-node-tracker .ep-scene-node-tracker__game{transition:none}}@media (width>=769px){body.ep-immersive .ep-story-workspace__canvas.is-story-scene{--scene-chrome:270px;width:clamp(640px, calc((min(97dvh, 980px) - var(--scene-chrome)) * 4 / 3), min(1320px, 96vw));transition:width .3s}}@media (prefers-reduced-motion:reduce){body.ep-immersive .ep-story-workspace__canvas.is-story-scene{transition:none}}.ep-scenes-track>.ep-story-card--handwriting>.ep-story-card__header,.ep-scenes-track>.ep-story-card--idiom-challenge>.ep-story-card__header,.ep-scenes-track>.ep-story-card--reward>.ep-story-card__header{border:none;height:0;min-height:0;margin:0;padding:0;overflow:hidden}.ep-scene-card-toolbar .ep-episode-label{text-align:center;flex-direction:column;justify-content:center;height:44px;padding:0 16px;line-height:1.15}.ep-episode-label__zh{color:#24344d;font-size:.9rem;font-weight:900}.ep-episode-label__en{color:#66788f;font-size:.68rem;font-weight:700}.ep-finale .ep-finale__tiles{margin-top:10px}.ep-finale__tiles .ep-karaoke-pair.is-active{transform:none}.ep-finale__section{background:#fff;border:3px solid #d9ead3;border-radius:22px;flex-direction:column;gap:12px;width:100%;padding:16px 18px 18px;display:flex;box-shadow:0 6px #d9ead3}.ep-finale__section-title{color:#1a7f45;align-items:baseline;gap:8px;margin:0;font-size:1.05rem;font-weight:900;display:flex}.ep-finale__section-title span{color:#66788f;font-size:.78rem;font-weight:700}.ep-finale__gloss{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.ep-finale__gloss-item{cursor:pointer;background:#fbfdf9;border:2px solid #e2e8e0;border-radius:16px;flex-direction:column;align-items:center;min-width:76px;padding:8px 10px;font-family:inherit;transition:transform .12s;display:flex}.ep-finale__gloss-item:active{transform:translateY(2px)}.ep-finale__gloss-char{color:#1e3a5f;font-size:1.9rem;font-weight:900;line-height:1.1}.ep-finale__gloss-en{color:#4f8a5b;font-size:.8rem;font-weight:800}.ep-finale__meaning-zh{color:#24344d;font-size:1.1rem;font-weight:800}.ep-finale__meaning-en{color:#66788f;font-size:.85rem;font-weight:600}.ep-finale__meaning .ep-finale__speak,.ep-finale__recap-step .ep-finale__speak{top:50%;transform:translateY(-50%)}.ep-finale__recap{grid-template-columns:1fr;gap:18px;margin:0;padding:0;list-style:none;display:grid}.ep-finale__recap-step{flex-direction:column;gap:6px;display:flex;position:relative}.ep-finale__recap-step:not(:last-child):after{content:"→";color:#b9c9b3;font-size:1.1rem;font-weight:900;position:absolute;top:28%;right:-16px}.ep-finale__recap-step img{aspect-ratio:4/3;object-fit:cover;border-radius:12px;width:100%}.ep-finale__recap-num{color:#fff;background:#20a95b;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.8rem;font-weight:900;display:grid;position:absolute;top:6px;left:6px}.ep-finale__recap-step p{flex-direction:column;margin:0;padding-right:48px;display:flex}.ep-finale__recap-step .ep-finale__speak{top:auto;bottom:-2px;transform:none}.ep-finale__recap-zh{color:#24344d;font-size:.95rem;font-weight:800}@media (width<=640px){.ep-finale__recap{grid-template-columns:1fr}.ep-finale__recap-step:not(:last-child):after{content:"↓";inset:auto auto -18px 50%}}.ep-finale__gloss{margin:0;padding:0;list-style:none}.stroke-workshop-celebrate__next{flex-direction:column;align-items:center;display:inline-flex}.stroke-workshop-celebrate__next-en{opacity:.95;font-size:.72em;font-weight:700}.ep-finale{gap:10px;padding-top:clamp(6px,1.2vh,12px);padding-bottom:6px}.ep-finale__top{flex-direction:row;flex:none;justify-content:center;align-items:center;gap:10px 16px;width:100%;min-width:0;display:flex}.ep-finale__bubble{flex:auto;padding-block:6px}.ep-finale__avatar{flex:none;width:44px;height:44px}.ep-finale__hero{flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:8px 12px;display:flex}.ep-finale .ep-finale__tiles{margin-top:0;font-size:1em}.ep-finale .ep-finale__tiles .ep-karaoke-pair{border-radius:16px;width:clamp(72px,24.24dvh - 114.163px,104px);min-width:0;margin:0;padding:6px 4px 4px;transform:none}.ep-finale .ep-finale__tiles .ep-karaoke-pair .ep-karaoke-char{font-size:clamp(1.35rem,4.6dvh,2.05rem)}.ep-finale .ep-finale__tiles .ep-karaoke-pair .ep-karaoke-syllable{font-size:clamp(.62rem,1.4dvh,.78rem)}.ep-finale__grid{flex:auto;grid-template:"words recap"minmax(0,1fr)"example recap"minmax(0,1fr)/minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:10px;width:100%;min-height:0;display:grid}.ep-finale__section{gap:8px;min-height:0;padding:14px;overflow:auto}.ep-finale__section--words{grid-area:words}.ep-finale__section--recap{grid-area:recap}.ep-finale__section--example{grid-area:example}.ep-finale__gloss-item{min-width:62px;padding:6px 8px}.ep-finale__gloss-char{font-size:1.5rem}.ep-finale__meaning-zh{font-size:1rem}.ep-finale__recap{flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:8px 10px;min-height:0}.ep-finale__recap-step{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px}.ep-finale__recap-step:not(:last-child):after{content:none}.ep-finale__recap-step img{aspect-ratio:4/3;border-radius:10px;flex:none;width:clamp(72px,8dvh,88px)}.ep-finale__recap-step p{flex:1;padding-right:0}.ep-finale__recap-zh{font-size:.85rem}.ep-finale__recap-step .ep-finale__speak{flex:none;position:static;transform:none}.ep-finale__recap-num{width:20px;height:20px;font-size:.7rem;top:4px;left:4px}.ep-finale__collect{padding-block:8px}@media (width<=900px){.ep-finale__top{flex-direction:column;align-items:center}.ep-finale__bubble{max-width:100%}}@media (width<=640px){.ep-finale__grid{padding-bottom:0;display:block;overflow:visible}.ep-finale__section{flex:none;overflow:visible}.ep-finale__section--words{order:1}.ep-finale__section--recap{order:2}.ep-finale__section--example{order:3}.ep-finale__recap{grid-template-columns:minmax(0,1fr)}.ep-finale__recap-step{text-align:start;flex-direction:row;align-items:center}.ep-finale__recap-step img{width:72px}}.ep-finale__tabs{display:none}@media (width<=640px){.ep-finale__bubble-zh{font-size:1.05rem}.ep-finale__avatar{width:36px;height:36px}.ep-finale__tabs{gap:6px;width:100%;display:flex}.ep-finale__tab{color:#24344d;cursor:pointer;background:#fff;border:2px solid #d9ead3;border-radius:14px;flex-direction:column;flex:1 1 0;align-items:center;min-height:44px;padding:4px 2px;font-family:inherit;font-size:.85rem;font-weight:900;display:flex}.ep-finale__tab span{color:#66788f;font-size:.68rem;font-weight:700}.ep-finale__tab.is-active{color:#1a7f45;background:#e9f7ee;border-color:#20a95b}.ep-finale__grid{padding-bottom:0;display:block;overflow:visible}.ep-finale__section{display:none}.ep-finale__grid--show-words .ep-finale__section--words,.ep-finale__grid--show-recap .ep-finale__section--recap,.ep-finale__grid--show-example .ep-finale__section--example{display:flex}.ep-finale__section .ep-finale__section-title{display:none}.ep-finale__recap-step img{width:72px}}@media (width<=760px){.stroke-workshop-flow.stroke-workshop-flow--map{grid-template-columns:1fr;align-content:start}.stroke-workshop-flow--map .stroke-workshop-map__ladder.stroke-workshop-map__ladder--row{flex-direction:row;justify-content:center;gap:6px;width:100%}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row:before{width:auto;height:0;inset:30px 10% auto}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level,.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level:nth-child(odd),.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level:nth-child(2n){flex-direction:column;align-items:center;margin:0;transform:none}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__stone{width:56px;height:56px}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level-names{text-align:center;position:static}.stroke-workshop-map__target-char{font-size:clamp(2rem,11vw,3.4rem)}}@media (width<=700px){.stroke-workshop-game--hologram .stroke-workshop-game__main{align-items:center}.stroke-workshop-game--hologram .stroke-workshop-game__grid{margin-inline:auto}.stroke-workshop-game__collection{z-index:1;position:relative}}@media (width<=520px){.ep-mini-game--idiom-challenge .ep-mini-game__steps{gap:4px;width:100%}.ep-mini-game--idiom-challenge .ep-mini-game__step{flex:1 1 0;gap:4px;min-width:0;padding:4px 8px 4px 4px}.ep-mini-game--idiom-challenge .ep-mini-game__step-en{display:none}.ep-mini-game--idiom-challenge .ep-mini-game__step-num{width:26px;height:26px;font-size:.8rem}}@media (width<=760px){.stroke-workshop-flow.stroke-workshop-flow--map{grid-template-columns:minmax(0,1fr)}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level{flex:1 1 0;width:auto;min-width:0;padding:0}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__stone{width:48px;height:48px;font-size:1.1rem}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level-names{width:auto;max-width:none}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level-zh{white-space:nowrap;font-size:.7rem}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level-reward{right:-4px}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level,.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level:nth-child(odd),.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level:nth-child(2n){display:flex}.stroke-workshop-flow--map .stroke-workshop-map__ladder--row .stroke-workshop-map__level:nth-child(n) .stroke-workshop-map__level-names{text-align:center;grid-column:auto}}@media (width<=520px){.stroke-workshop-flow__back-label{white-space:nowrap}.stroke-workshop-celebrate__card .stroke-workshop-map__ladder--row{gap:4px}.stroke-workshop-celebrate__card .stroke-workshop-map__ladder--row .stroke-workshop-map__level{flex:1 1 0;min-width:0}.stroke-workshop-celebrate__card .stroke-workshop-map__ladder--row .stroke-workshop-map__stone{width:44px;height:44px;font-size:1rem}.stroke-workshop-celebrate__card .stroke-workshop-map__ladder--row .stroke-workshop-map__level-zh{white-space:nowrap;font-size:.66rem}.stroke-workshop-celebrate__card .stroke-workshop-map__ladder--row .stroke-workshop-map__level-reward{right:-4px}}@media (width<=640px){.ep-finale__gloss{flex-wrap:nowrap;gap:6px}.ep-finale__gloss-item{width:60px;min-width:0;padding:4px}}.stroke-workshop-map__level.is-trial-locked:active .stroke-workshop-map__stone,.stroke-workshop-map__level.is-trial-locked:focus-visible .stroke-workshop-map__stone{animation:.4s ease-in-out stroke-workshop-key-wiggle}@keyframes stroke-workshop-key-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.stroke-workshop-map__trial-hint{color:#66788f;background:#f4f6f3;border-radius:999px;margin:0;padding:6px 14px;font-size:.85rem;font-weight:800;animation:.25s ease-out stroke-workshop-hint-in}@keyframes stroke-workshop-hint-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.stroke-workshop-map__level.is-trial-locked .stroke-workshop-map__stone,.stroke-workshop-map__trial-hint{animation:none}}.ep-scene-theatre__art img{transition:filter .9s,opacity .9s}.ep-scene-theatre__art.is-colouring-in img{opacity:calc(.75 + .25 * var(--ep-scene-colour,1))}@media (prefers-reduced-motion:reduce){.ep-scene-theatre__art img{transition:none}}.ep-story-hero-intro__listen:not(.is-playing){animation:1.8s ease-in-out infinite ep-listen-all-bob;position:relative}.ep-story-hero-intro__listen:not(.is-playing):after{content:"";border-radius:inherit;pointer-events:none;border:3px solid #2f78d680;animation:1.8s ease-out infinite ep-listen-all-ring;position:absolute;inset:-6px}@media (prefers-reduced-motion:reduce){.ep-story-hero-intro__listen:not(.is-playing),.ep-story-hero-intro__listen:not(.is-playing):after{animation:none}}.ep-scene-theatre__art.is-colouring-in img{filter:grayscale(calc(1 - var(--ep-scene-colour,1))) brightness(calc(.92 + .08 * var(--ep-scene-colour,1))) blur(calc((1 - var(--ep-scene-colour,1)) * 1px))}.ep-scene-stage .ep-scene-theatre__art.is-colouring-in img,.ep-scene-stage.is-revealed .ep-scene-theatre__art.is-colouring-in img{filter:grayscale(calc(1 - var(--ep-scene-colour,1))) brightness(calc(.92 + .08 * var(--ep-scene-colour,1))) blur(calc((1 - var(--ep-scene-colour,1)) * 1px));opacity:calc(.75 + .25 * var(--ep-scene-colour,1))}@property --wipe-x{syntax:"<percentage>";inherits:false;initial-value:-20%}.ep-scene-stage .ep-scene-theatre__art.is-blooming img{transition:none}.ep-scene-colour-step{z-index:1;pointer-events:none;position:absolute;inset:0}.ep-scene-colour-wipe{-webkit-backdrop-filter:grayscale(var(--wipe-grey,0));backdrop-filter:grayscale(var(--wipe-grey,0));-webkit-mask-image:linear-gradient(100deg, transparent var(--wipe-x), #0009 calc(var(--wipe-x) + 4%), #000 calc(var(--wipe-x) + 10%));-webkit-mask-image:linear-gradient(100deg, transparent var(--wipe-x), #0009 calc(var(--wipe-x) + 4%), #000 calc(var(--wipe-x) + 10%));mask-image:linear-gradient(100deg, transparent var(--wipe-x), #0009 calc(var(--wipe-x) + 4%), #000 calc(var(--wipe-x) + 10%));animation:.8s cubic-bezier(.45,.05,.35,1) forwards ep-scene-colour-wipe;position:absolute;inset:0}.ep-scene-colour-wipe:after{content:"";background:linear-gradient(100deg, transparent calc(var(--wipe-x) - 3%), #fff0be8c calc(var(--wipe-x) + 2%), transparent calc(var(--wipe-x) + 7%));animation:inherit;position:absolute;inset:0}@keyframes ep-scene-colour-wipe{0%{--wipe-x:-20%}to{--wipe-x:115%}}.ep-scene-colour-sparkles span{color:#ffd84d;text-shadow:0 0 10px #ffdc5ae6;opacity:0;font-size:clamp(1.1rem,3vmin,1.8rem);animation:.6s ease-out forwards ep-scene-colour-sparkle;position:absolute;transform:translate(-50%,-50%)scale(.3)}@keyframes ep-scene-colour-sparkle{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(0)}40%{opacity:1;transform:translate(-50%,-50%)scale(1.2)rotate(20deg)}to{opacity:0;transform:translate(-50%,-80%)scale(.8)rotate(45deg)}}@media (width<=600px) and (orientation:portrait){.ep-scene-stage--theatre .ep-scene-theatre{--ep-scene-ar-tallest:1.25;container-type:inline-size}body.ep-immersive .ep-page:has(.ep-scene-stage--theatre){padding-bottom:0}.ep-scene-stage--theatre .ep-scene-theatre__art{width:100%;min-height:calc(100cqw / var(--ep-scene-ar,4 / 3));max-height:calc(100cqw / var(--ep-scene-ar-tallest,1.25));flex:100}.ep-scene-stage--theatre .ep-scene-theatre__art>.ep-scene-image-wrap img,.ep-scene-stage--theatre.is-revealed .ep-scene-theatre__art>.ep-scene-image-wrap img{object-fit:cover;object-position:center}.ep-scene-stage--theatre .ep-scene-theatre__dock{flex:1 0 min-content;max-height:none;padding-top:10px;padding-bottom:max(12px, env(safe-area-inset-bottom,0px));justify-content:flex-start;gap:10px}.ep-scene-stage--theatre .ep-scene-subtitle-band__content{min-height:0}.ep-scene-subtitle-band .ep-karaoke-pairs{flex-wrap:wrap;justify-content:center;row-gap:6px}.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair.is-tappable{min-height:clamp(40px, calc(40px + 12px * (100dvh - 667px) / 177px), 52px);min-width:44px}.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair .ep-karaoke-syllable{font-size:clamp(.7rem, calc(.7rem + .25rem * (100dvh - 667px) / 177px), .95rem)}.ep-scene-stage .ep-scene-subtitle-band__en{font-size:clamp(.78rem, calc(.78rem + .22rem * (100dvh - 667px) / 177px), 1rem)}.ep-scene-stage--theatre .ep-scene-theatre__controls{grid-template-columns:1fr 1fr;row-gap:10px;margin-top:auto}.ep-scene-stage--theatre .ep-scene-theatre__play-btn:not(.ep-scene-theatre__play-btn--labeled),.ep-scene-stage--theatre .ep-scene-theatre__play-slot{width:clamp(48px,6.64dvh,56px);height:clamp(48px,6.64dvh,56px)}.ep-scene-stage--theatre .ep-scene-theatre__dot{width:clamp(44px,6.64dvh,56px);height:clamp(44px,6.64dvh,56px)}.ep-scene-stage--theatre .ep-scene-theatre__controls>:not(.ep-scene-theatre__page-nav){grid-area:1/1/auto/-1;justify-self:center}.ep-scene-stage--theatre .ep-scene-theatre__controls .ep-scene-nav-btn--previous{grid-area:2/1;justify-self:start}.ep-scene-stage--theatre .ep-scene-theatre__controls .ep-scene-nav-btn--next{grid-area:2/2;justify-self:end}}.ep-karaoke-break{display:none}@media (width<=600px) and (orientation:portrait){.ep-scene-subtitle-band .ep-karaoke-break{flex-basis:100%;height:0;display:block}.ep-scene-subtitle-band .ep-karaoke-pair.is-tappable{min-width:44px}.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair .ep-karaoke-char,.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-punct .ep-karaoke-char,.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-punct,.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-trail{font-size:clamp(1.6rem, calc(1.6rem + .7rem * (100dvh - 667px) / 177px), 2.3rem)}}@media (width<=700px){.stroke-workshop-game--hologram .stroke-workshop-game__dock{flex:none;height:auto;min-height:0;overflow:visible}}.ep-finale__sentence{flex-direction:column;gap:2px;margin:0;display:flex}.ep-finale__sentence.is-playing{background:#20a95b1f;border-radius:12px}.ep-finale__sentence-zh-row{align-items:flex-start;gap:8px;min-width:0;display:flex}.ep-finale__sentence-zh-row .ep-finale__meaning-zh{flex:auto;min-width:0}.ep-finale__sentence-play{width:var(--ep-touch-min,48px);height:var(--ep-touch-min,48px);color:#1a7f45;cursor:pointer;background:#ffffffeb;border:none;border-radius:50%;flex:none;place-items:center;min-width:44px;min-height:44px;padding:0;font-size:.75rem;line-height:1;display:grid;box-shadow:0 2px 6px #24344d40}.ep-finale__sentence-play:focus-visible{outline-offset:2px;outline:2px solid #0d9488}.ep-finale__jyutping{color:#4f8a5b;letter-spacing:.01em;font-size:.8rem;font-weight:700}.ep-finale__gloss-item{cursor:default}.ep-finale__recap li{list-style:none}.ep-finale__recap-step{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:0;font-family:inherit;display:flex;position:relative}.ep-finale__recap-step:disabled{cursor:default}.ep-finale__recap-art{flex:none;line-height:0;display:block;position:relative}.ep-finale__recap-art img{aspect-ratio:4/3;object-fit:cover;border-radius:10px;width:clamp(72px,8dvh,88px)}.ep-finale__recap-play{color:#1a7f45;background:#ffffffeb;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.75rem;line-height:1;display:grid;position:absolute;bottom:6px;right:6px;box-shadow:0 2px 6px #24344d40}.ep-finale__recap-step:disabled .ep-finale__recap-play{display:none}.ep-finale__recap-step.is-playing .ep-finale__recap-art img{outline-offset:1px;outline:3px solid #20a95b}@media (width<=640px){.ep-finale__recap-art img{width:72px}}.ep-unlock-teaser__actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.ep-unlock-teaser__actions .ep-unlock-teaser__btn{margin-top:0}.ep-unlock-teaser__play-again{color:#fff;cursor:pointer;background:#20a95b;border:none;border-radius:999px;flex-direction:column;align-items:flex-start;min-height:56px;padding:8px 22px;font-family:inherit;font-size:1.1rem;font-weight:900;display:flex;box-shadow:0 5px #178a49}.ep-unlock-teaser__play-again span{opacity:.9;font-size:.75rem;font-weight:700}.ep-unlock-teaser__play-again:active,.ep-unlock-teaser__actions .ep-unlock-teaser__btn:active{transform:translateY(3px)}@media (width<=520px){.ep-unlock-teaser__actions{flex-direction:column;align-items:stretch}.ep-unlock-teaser__actions>button{align-items:center}}.ep-scene-subtitle-band{width:100%;container-type:inline-size}.ep-scene-subtitle-band .ep-karaoke-pair.is-tappable{min-width:min(44px, calc((92cqw - var(--kl,12) * 5px) / var(--kl,12)))}@media not ((width<=600px) and (orientation:portrait)){.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair .ep-karaoke-char,.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-punct .ep-karaoke-char,.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-trail{font-size:min(clamp(1.75rem, 5vw, 2.2rem), calc(68cqw / var(--kl,12)))}.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair .ep-karaoke-syllable{font-size:min(clamp(.66rem, 1.9vmin, .9rem), calc(24cqw / var(--kl,12)))}}.ep-story-hero-intro__buddy-line{justify-content:center;align-items:center;gap:10px;display:flex}.ep-story-hero-intro__buddy-avatar{object-fit:cover;background:#fff6d6;border:3px solid #f5c542;border-radius:50%;flex:none;width:44px;height:44px}.ep-story-hero-intro__buddy-line .ep-story-hero-intro__prompt{text-align:left}@media (width<=520px){.ep-story-hero-intro__buddy-avatar{width:36px;height:36px}}.ep-hero__play-label .ep-hero__play-en,.ep-card.ep-card--locked .ep-card__jyutping,.ep-episode-label .ep-episode-label__en{font-size:.75rem}@media (orientation:landscape) and (height<=520px){.ep-story-hero-intro.ep-story-hero-intro--cover{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-content:center;align-items:center;gap:8px 18px;max-width:none;display:grid}.ep-story-hero-intro--cover .ep-story-hero-intro__cover{aspect-ratio:4/3;grid-area:1/1/span 3;height:min(100dvh - 120px,100%);min-height:0;max-height:calc(100dvh - 120px)}.ep-story-hero-intro--cover .ep-story-hero-intro__tiles,.ep-story-hero-intro--cover .ep-story-hero-intro__hint-row,.ep-story-hero-intro--cover .ep-story-hero-intro__actions{grid-column:2;margin:0}.ep-story-hero-intro--cover .ep-story-hero-intro__tiles{grid-row:1}.ep-story-hero-intro--cover .ep-story-hero-intro__tiles .ep-karaoke-pairs{gap:8px}.ep-story-hero-intro--cover .ep-story-hero-intro__tiles .ep-karaoke-pair{flex:1 1 0;width:auto;min-width:0;max-width:76px;height:auto;padding:6px 4px}.ep-story-hero-intro--cover .ep-story-hero-intro__tiles .ep-karaoke-char{font-size:2.4rem}.ep-story-hero-intro--cover .ep-story-hero-intro__hint-row{grid-row:2}.ep-story-hero-intro--cover .ep-story-hero-intro__actions{grid-row:3}.ep-story-hero-intro--cover .ep-story-hero-intro__actions>*{width:100%;min-width:0;min-height:52px}}.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pairs{flex-wrap:wrap;justify-content:center;row-gap:6px}@media (width<=600px) and (orientation:portrait){.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair.is-tappable{flex-direction:column;gap:0;padding:4px 3px}.ep-scene-stage .ep-scene-subtitle-band .ep-karaoke-pair .ep-karaoke-syllable{width:auto;position:static;transform:none}}.ep-hero.ep-hero--cinema{isolation:isolate;background:#10231a;grid-template-columns:minmax(0,1fr) min(54%,600px);align-items:stretch;min-height:clamp(300px,40vh,440px);display:grid;position:relative}.ep-hero--cinema .ep-hero__backdrop{z-index:-2;filter:blur(36px)saturate(1.3)brightness(.55);background-position:50%;background-size:cover;position:absolute;inset:-40px}.ep-hero--cinema:before{content:"";z-index:-1;background:linear-gradient(90deg,#08120ed1 0%,#08120e73 55%,#08120e1a 100%);position:absolute;inset:0}.ep-hero--cinema .ep-hero__art{grid-area:1/2;justify-content:flex-end;align-self:stretch;display:flex;position:relative;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 22%);mask-image:linear-gradient(90deg,#0000 0%,#000 22%)}.ep-hero--cinema .ep-hero__art img{aspect-ratio:4/3;object-fit:cover;width:auto;max-width:100%;height:100%;display:block}.ep-hero--cinema .ep-hero__body{z-index:1;background:0 0;flex-direction:column;grid-area:1/1;justify-content:center;align-items:flex-start;gap:18px;margin-right:-8%;padding:clamp(20px,3.4vw,44px);display:flex;position:relative}.ep-hero--cinema .ep-hero__copy{gap:10px}.ep-hero--cinema .ep-hero__title{text-shadow:0 2px 16px #00000073;font-size:clamp(2rem,4vw,3.1rem)}.ep-hero--cinema .ep-hero__title-en{font-size:.95rem}.ep-hero__meta{color:#ffffffeb;flex-direction:column;gap:2px;margin:0;font-size:.92rem;font-weight:800;display:flex}.ep-hero__meta span{color:#ffffffa8;font-size:.78rem;font-weight:700}.ep-hero__hook{color:#ffffffe6;flex-direction:column;gap:4px;max-width:42ch;margin:2px 0 0;font-size:1rem;font-weight:700;line-height:1.55;display:flex}.ep-hero__hook-zh,.ep-hero__hook-en{text-wrap:balance}.ep-hero__hook-en{color:#ffffffb8;font-size:.85rem;font-weight:600;line-height:1.45}.ep-hero__progress{flex-direction:row;align-items:center;gap:8px;width:100%;margin:0;display:flex}.ep-hero__progress-bar{background:#ffffff38;border-radius:999px;flex:1;min-width:0;height:6px;display:block;overflow:hidden}.ep-hero__progress-bar>span{border-radius:inherit;background:#4ade80;height:100%;display:block}.ep-hero__progress-label{color:#fffc;white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:.68rem;font-weight:800;line-height:1.2;overflow:hidden}.ep-hero--cinema .ep-hero__actions{flex-flow:column;align-items:stretch;gap:8px;width:min(100%,360px)}.ep-hero--cinema .ep-hero__play{min-height:52px;box-shadow:0 3px 0 var(--ep-green-700), 0 5px 0 #12201638;padding:6px 20px}.ep-hero--cinema .ep-hero__play:active{box-shadow:0 1px 0 var(--ep-green-700), 0 2px 0 #12201633;transform:translateY(2px)}.ep-hero--cinema .ep-hero__play-label{flex-direction:row;align-items:baseline;gap:8px}.ep-hero--cinema .ep-hero__play-zh{font-size:1.05rem}.ep-hero--cinema .ep-hero__play-en{font-size:.78rem}.ep-hero__restart{min-height:44px;box-shadow:none;color:#ffffffb3;text-align:center;cursor:pointer;background:0 0;border:none;border-radius:0;align-self:center;margin-top:8px;padding:0 12px;font-family:inherit;font-size:.78rem;font-weight:700}.ep-hero__restart:active{box-shadow:none;transform:none}@media (width<=699px){.ep-hero.ep-hero--cinema{grid-template-columns:1fr;min-height:0}.ep-hero--cinema:before{background:linear-gradient(#08120e00 0%,#08120e8c 45%,#08120ed9 100%)}.ep-hero--cinema .ep-hero__art{grid-area:1/1;justify-content:center;position:relative;-webkit-mask-image:none;mask-image:none}.ep-hero--cinema .ep-hero__art:after{content:"";pointer-events:none;background:linear-gradient(#08120e00 0%,#08120eb3 60%,#08120ef2 100%);height:45%;position:absolute;inset:auto 0 0}.ep-hero--cinema .ep-hero__body{z-index:1;position:relative}.ep-hero--cinema .ep-hero__art img{object-fit:cover;object-position:center 35%;width:100%;height:40vh;min-height:160px;max-height:40vh}.ep-hero--cinema .ep-hero__body{grid-area:2/1;gap:8px;margin:-28px 0 0;padding:0 16px 6px}.ep-hero--cinema .ep-hero__title{font-size:1.45rem}.ep-hero--cinema .ep-hero__copy{gap:4px}.ep-hero--cinema .ep-hero__actions,.ep-hero--cinema .ep-hero__play{width:100%}.ep-hero--cinema .ep-hero__hook{max-width:none;font-size:.82rem;line-height:1.35}.ep-hero--cinema .ep-hero__hook-zh,.ep-hero--cinema .ep-hero__hook-en{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.ep-sticker-book__tabs{flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 8px;display:flex}.ep-sticker-book__tab{color:#24344d;cursor:pointer;background:#fff;border:2px solid #d9ead3;border-radius:999px;align-items:center;gap:4px;min-height:40px;padding:0 12px;font-family:inherit;font-size:.9rem;font-weight:800;display:inline-flex}.ep-sticker-book__tab-en{color:#66788f;font-size:.75rem;font-weight:700}.ep-sticker-book__tab.is-active{color:#1a7f45;background:#e9f7ee;border-color:#20a95b}.ep-sticker-book__pool-empty{color:#66788f;flex-direction:column;align-items:center;margin:0;font-size:.9rem;font-weight:800;display:flex}.ep-sticker-book__pool-empty span{font-size:.75rem;font-weight:600}.ep-sticker-book__sticker.ep-sticker-book__sticker--art{width:clamp(60px,15vw,88px);min-width:clamp(60px,15vw,88px);max-width:clamp(60px,15vw,88px);height:clamp(60px,15vw,88px);min-height:clamp(60px,15vw,88px);max-height:clamp(60px,15vw,88px);box-shadow:none;filter:drop-shadow(0 3px 4px #18342440);background:0 0;border:none;border-radius:0;padding:0;position:relative;overflow:visible}.ep-sticker-book__sticker--art.is-shiny{filter:drop-shadow(0 0 8px #f5c542e6)drop-shadow(0 3px 4px #18342440)}.ep-sticker-book__sticker--art.is-shiny:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffffffb3 50%,#0000 65%) 0 0/250% 100%;border-radius:50%;animation:2.8s ease-in-out infinite ep-album-shimmer;position:absolute;inset:6%}.ep-sticker-book__sticker--art .ep-sticker-book__sticker-img{object-fit:contain;border-radius:0}.ep-sticker-book__sticker--art.ep-sticker-book__sticker--selected{outline-offset:2px;border-radius:12px;outline:3px dashed #20a95b}.ep-sticker-book__sticker--art.ep-sticker-book__sticker--placed{width:clamp(72px,20vw,120px);min-width:clamp(72px,20vw,120px);max-width:clamp(72px,20vw,120px);height:clamp(72px,20vw,120px);min-height:clamp(72px,20vw,120px);max-height:clamp(72px,20vw,120px)}.ep-sticker-book__switcher{flex-direction:column;flex:none;align-items:center;gap:4px;display:flex}.ep-sticker-book__pager{flex:none;justify-content:center;align-items:center;gap:10px;display:flex}.ep-sticker-book__pager-btn{color:#1a7f45;cursor:pointer;background:#fff;border:2px solid #d9ead3;border-radius:50%;place-items:center;width:44px;height:44px;font-family:inherit;font-size:1.6rem;font-weight:900;line-height:1;display:grid}.ep-sticker-book__pager-btn:disabled{opacity:.35;cursor:default}.ep-sticker-book__pager-label{color:#1a7f45;flex-direction:column;align-items:center;min-width:11rem;margin:0;font-size:1rem;font-weight:900;display:flex}.ep-sticker-book__pager-label span{color:#66788f;font-size:.75rem;font-weight:700}.ep-sticker-book-modal{flex-direction:column;display:flex}.ep-sticker-book-modal .ep-sticker-book--studio{flex-direction:column;align-items:center;display:flex;overflow:hidden}.ep-sticker-book-modal .ep-sticker-book--studio .ep-sticker-book__frame{flex:auto;min-height:140px;max-height:none}.ep-sticker-book-modal .ep-sticker-book--studio .ep-sticker-book__page{aspect-ratio:auto;height:100%}.ep-sticker-book-modal .ep-sticker-book__tabs{margin:2px 0 4px}.ep-sticker-book-modal .ep-sticker-book__pool-label,.ep-sticker-book-modal .ep-sticker-book__pool-label-en{display:none}.ep-sticker-book-modal .ep-sticker-book--studio{overflow:hidden auto}.ep-sticker-book-modal .ep-sticker-book__instruction,.ep-sticker-book-modal .ep-sticker-book__instruction-en{display:none}.ep-sticker-book-modal .ep-sticker-book--studio .ep-sticker-book__frame{min-height:120px}.ep-sticker-book-modal .ep-sticker-book__pool-wrap{flex:none}.ep-sticker-book-modal .ep-sticker-book__pool .ep-sticker-book__sticker.ep-sticker-book__sticker--art{width:64px;min-width:64px;max-width:64px;height:64px;min-height:64px;max-height:64px}.ep-sticker-book__page-hint .ep-sticker-book__page-hint-en{opacity:.85;margin-top:2px;font-size:.8em;font-weight:600;display:block}.ep-sticker-book__page .ep-sticker-book__page-hint{text-align:center;flex-direction:column}.season-progress__head{text-align:start;flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:4px 8px;display:flex}.season-progress__head .nf-episodes__season-title{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.season-progress__head .nf-episodes__season-title-en{color:inherit;margin-left:0}.season-progress__count,.season-progress__complete{color:inherit;font-size:.95rem;font-weight:600}.season-progress__count strong{font-weight:800}.season-progress__row{align-items:center;gap:8px;margin:8px 0 6px;display:flex}.season-progress__bar{flex:1;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;min-width:0;height:8px;display:grid}.season-progress__trophy{flex-shrink:0;align-items:center;line-height:0;display:flex}.season-progress__trophy.is-pending{filter:grayscale();opacity:.45}.season-progress__trophy.is-complete{filter:none;opacity:1}.season-progress__seg{background:#e2e8e0;min-width:0;height:100%;display:block}.season-progress__seg:first-child{border-radius:999px 0 0 999px}.season-progress__seg:last-child{border-radius:0 999px 999px 0}.season-progress__seg.is-done{background:#20a95b}.season-progress__seg.is-progress{background:linear-gradient(90deg,#20a95b 50%,#e2e8e0 50%)}.season-progress__seg.is-next{background:#8ee0ad;animation:2.4s ease-in-out infinite season-seg-pulse}@keyframes season-seg-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.season-progress__seg.is-next{animation:none}}@media (width<=600px){.season-progress__head{align-items:flex-start}}.ep-sticker-book__sticker-wrap .ep-sticker-book__sticker--placed:hover{transform:rotate(var(--sticker-rotate,0deg)) scale(1.04)}.ep-sticker-book__sticker-wrap .ep-sticker-book__sticker--placed:active{transform:rotate(var(--sticker-rotate,0deg)) scale(.97)}.ep-sticker-book__page .ep-sticker-book__sticker-wrap:has(.ep-sticker-book__sticker--art){width:clamp(72px,20vw,120px);min-width:clamp(72px,20vw,120px);max-width:clamp(72px,20vw,120px);height:clamp(72px,20vw,120px);min-height:clamp(72px,20vw,120px);max-height:clamp(72px,20vw,120px)}.ep-sticker-book__sticker-wrap .ep-sticker-book__sticker--art.ep-sticker-book__sticker--placed{width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none}.ep-sticker-book__sticker-wrap .ep-sticker-book__sticker-remove{background:#e5484d;width:30px;height:30px;font-size:20px;top:-10px;right:-10px}.ep-card.ep-card--status,.ep-card.ep-card--status.is-current,.ep-card.ep-card--status.is-progress,.ep-card.ep-card--status.is-completed{background:#fff;border:2px solid #0f172a0f;box-shadow:0 6px 18px -10px #0f172a40}.ep-card--status .ep-card__art{border-radius:14px;position:relative;overflow:hidden}.ep-card--status .ep-card__art img{transition:transform .25s}.ep-card__progress{background:#10231a73;height:6px;position:absolute;bottom:0;left:0;right:0}.ep-card__progress>span{background:#4ade80;height:100%;display:block}.ep-card--status .ep-card__sub{color:#66788f;font-size:.75rem;font-weight:700;display:block}.ep-card__hook-block{flex-direction:column;gap:2px;min-width:0;display:flex}.ep-card__hook-zh,.ep-card__hook-en{-webkit-line-clamp:2;text-wrap:balance;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ep-hook-part{display:inline-block}.ep-card__hook-zh{color:#24344d;font-size:.78rem;font-weight:700;line-height:1.35}.ep-card__hook-en{color:#66788f;font-size:.7rem;font-weight:600;line-height:1.3}.ep-card__chip{white-space:nowrap;border-radius:999px;align-self:start;align-items:center;margin-top:4px;padding:2px 8px;font-size:.68rem;font-weight:800;display:inline-flex}.ep-card__chip--done{color:#178a49;background:#eafaf0}.ep-card__chip--next{color:#7a4b00;background:#fff6d6}.ep-card__chip--lock{color:#8a97a6;background:0 0;border-radius:0;flex-flow:row;padding:0;font-size:.64rem;font-weight:400}.ep-card__chip-en{white-space:pre;display:inline}@media (width<=600px){.ep-card__chip-en{display:none}}.season-trail__stone.is-done{background:#20a95b;border-color:#178a49}.season-trail__stone.is-progress{background:linear-gradient(#20a95b 50%,#f4f7f4 50%);border-color:#178a49}.season-trail__stone.is-locked{color:#8a97a6;background:#eef2ee;border-color:#dce3dc}.season-trail__stone.is-next{background:#eafaf0;border-color:#20a95b;width:30px;height:30px;animation:2.4s ease-in-out infinite season-trail-glow;box-shadow:0 0 0 3px #20a95b47}.season-trail__stone.is-next.is-progress{background:linear-gradient(#20a95b 50%,#eafaf0 50%)}@keyframes season-trail-glow{0%,to{box-shadow:0 0 0 3px #20a95b33}50%{box-shadow:0 0 0 6px #20a95b14}}@media (prefers-reduced-motion:reduce){.season-trail__stone.is-next{animation:none}}.ep-card__mark{z-index:1;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.85rem;font-weight:900;display:grid;position:absolute;top:8px;right:8px}.ep-card__mark--done{color:#fff;background:0 0;width:auto;height:auto}.ep-card__chip--done .done-tick{margin-inline-end:4px}.ep-card__mark--next{color:#7a4b00;background:#fff6d6}.ep-card-preview__panel{text-align:center;background:#fffbf2;border-radius:24px;width:min(92vw,380px);padding:18px 18px 16px}.ep-card-preview__art{aspect-ratio:16/9;object-fit:cover;border-radius:16px;width:100%}.ep-card-preview__title{margin:12px 0 0;font-size:1.15rem}.ep-card-preview__jyutping{color:#66788f;margin:4px 0 0;font-size:.9rem}.ep-card-preview__hook{margin:10px 0 0;font-weight:800;line-height:1.4}.ep-card-preview__hook span[lang=en]{color:#66788f;margin-top:4px;font-size:.85rem;font-weight:700;display:block}.ep-card-preview__play{width:100%;margin-top:14px}.ep-card-preview__play span{font-size:.8rem;font-weight:700;display:block}@media (width<=600px){.season-trail__stone.is-next{width:26px;height:26px}}.nf-episodes__unlock-note{color:#8a97a6;text-align:start;margin:0;font-size:.68rem;font-weight:600;line-height:1.35}.nf-episodes__unlock-note-en:before{content:" · "}.nf-episodes__season-select{display:none}@media (width<=600px){.nf-episodes__unlock-note-en{display:block}.nf-episodes__unlock-note-en:before{content:none}.nf-episodes__season-tabs{flex-wrap:nowrap;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.nf-episodes__season-tab{border-radius:999px;flex-direction:row;flex:none;align-items:center;gap:6px}.nf-episodes__season-tabs--many{display:none}.nf-episodes__season-tabs--many+.nf-episodes__season-select{margin:0 0 12px;display:block}.nf-episodes__season-select select{width:100%;min-height:44px;font:inherit;border:2px solid #e2e8e0;border-radius:12px;padding:8px 12px;font-weight:800}}.ep-card--status.is-progress .ep-card__sub{color:#1a7f45;font-weight:800}@media (hover:hover){.ep-card--status:hover{transform:translateY(-3px);box-shadow:0 14px 28px -14px #0f172a73}.ep-card--status:hover .ep-card__art img{transform:scale(1.04)}.ep-card--status:hover .ep-card__hook,.ep-card--status .ep-card__open:focus-visible .ep-card__hook{opacity:1;transform:none}.ep-card--status:hover .ep-card__progress{z-index:1}}@media (prefers-reduced-motion:reduce){.ep-card--status,.ep-card--status .ep-card__art img,.ep-card__hook{transition:none}}.ep-card--status:not(.is-progress) .ep-card__sub{display:none}.nf-episodes__season .nf-episodes__season-head{flex-direction:column;align-items:stretch;gap:4px;display:flex}.ep-card--status .ep-card__sub,.ep-card--status:not(.is-progress) .ep-card__sub{min-height:1.2em;display:block}.ep-card--status:not(.is-progress) .ep-card__sub{visibility:hidden}.ep-card--status .ep-card__sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ep-card-grid>.ep-card.ep-card--status.is-current,.ep-card-grid>.ep-card.ep-card--status.is-completed{background:#fff;border-color:#0f172a0f;animation:none;transform:none;box-shadow:0 6px 18px -10px #0f172a40}@media (hover:hover){.ep-card-grid>.ep-card.ep-card--status:hover{transform:translateY(-3px)}}.ep-sticker-book__sticker.ep-sticker-book__sticker--idiom-char{color:#fff;box-shadow:none;filter:drop-shadow(0 3px 4px #18342447);border:4px solid #fff;border-radius:18px;position:relative;overflow:hidden}.ep-sticker-book__sticker--idiom-char:before{content:"";pointer-events:none;background:linear-gradient(#ffffff73,#fff0);border-radius:14px 14px 40% 40%;position:absolute;inset:0 0 52%}.ep-sticker-book__sticker--idiom-char.ep-sticker-book__sticker--coral{background:linear-gradient(#ffab91,#f4734f)}.ep-sticker-book__sticker--idiom-char.ep-sticker-book__sticker--leaf{background:linear-gradient(#8fd89f,#3fae62)}.ep-sticker-book__sticker--idiom-char.ep-sticker-book__sticker--ocean{background:linear-gradient(#8ccfff,#3f92dc)}.ep-sticker-book__sticker--idiom-char.ep-sticker-book__sticker--grape{background:linear-gradient(#cfa8ff,#9a6cf0)}.ep-sticker-book__sticker--idiom-char .ep-sticker-book__sticker-char{text-shadow:0 2px #0000002e;flex-direction:column;gap:1px}.ep-sticker-book__sticker-jyutping{letter-spacing:.02em;opacity:.95;text-shadow:none;font-size:.62rem;font-weight:800;line-height:1}.ep-sticker-book__sticker.ep-sticker-book__sticker--idiom-banner{filter:drop-shadow(0 3px 4px #18342447);color:#8a2b16;clip-path:polygon(0 0,100% 0,94% 50%,100% 100%,0 100%,6% 50%);background:linear-gradient(#fff4dc,#ffe2a8);border:4px solid #fff;border-radius:10px;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;padding:6px 18px 5px;box-shadow:inset 0 0 0 2px #e0583a}.ep-sticker-book__sticker-banner{pointer-events:none;white-space:nowrap;flex-direction:column;align-items:center;gap:2px;display:flex}.ep-sticker-book__sticker-banner-text{font-size:clamp(1.1rem,3.4vw,1.4rem);font-weight:900;line-height:1.1}.ep-sticker-book__sticker--idiom-banner .ep-sticker-book__sticker-jyutping{color:#b5562f}.ep-sticker-book-modal .ep-sticker-book__pool .ep-sticker-book__sticker,.ep-sticker-book-modal .ep-sticker-book__pool .ep-sticker-book__sticker.ep-sticker-book__sticker--art{touch-action:pan-x;width:84px;min-width:84px;max-width:84px;height:84px;min-height:84px;max-height:84px}.ep-sticker-book-modal .ep-sticker-book__pool{align-items:center;gap:10px;min-height:104px}.ep-sticker-book__page .ep-sticker-book__sticker{touch-action:none}.ep-sticker-book__tab{align-items:center;gap:6px;display:inline-flex}.ep-sticker-book__tab-icon{background:#fff6d6;border-radius:50%;place-items:center;width:30px;height:30px;font-size:1.05rem;font-weight:900;line-height:1;display:grid}.ep-sticker-book__tab-text{flex-direction:column;align-items:flex-start;line-height:1.1;display:inline-flex}.ep-sticker-book__tab-text .ep-sticker-book__tab-en{font-size:.68rem}.ep-sticker-book__ghost{z-index:50;opacity:.75;pointer-events:none;filter:drop-shadow(0 8px 12px #24344d4d);position:absolute;transform:translate(-50%,-50%)scale(1.08)}.ep-sticker-book__page-hint--active{color:#1a7f45}.ep-sticker-book__undo{color:#24344d;cursor:pointer;background:#fff;border:2px solid #d9ead3;border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-family:inherit;font-size:.9rem;font-weight:900;display:inline-flex}.ep-sticker-book__undo span:last-child{color:#66788f;font-size:.72rem;font-weight:700}.ep-sticker-book__undo:disabled{opacity:.4;cursor:default}.ep-sticker-book__page{background:radial-gradient(circle at 20% 15%,#fff6d6e6,#0000 55%),#fffaf0}.ep-sticker-book__page-art{opacity:.16;filter:saturate(1.1);pointer-events:none;border-radius:inherit;background-position:50%;background-size:cover;position:absolute;inset:0}.ep-sticker-book__page-title{z-index:1;color:#24344d;letter-spacing:.06em;white-space:nowrap;pointer-events:none;background:#fff;border-radius:999px;align-items:center;gap:8px;margin:0;padding:6px 16px 6px 8px;font-size:1.15rem;font-weight:900;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%)rotate(-1.5deg);box-shadow:0 4px #f0d98a,0 8px 18px -10px #24344d59}.ep-sticker-book__page-title span{color:#fff;letter-spacing:0;background:#20a95b;border-radius:999px;padding:2px 8px;font-size:.72rem}.ep-sticker-book__page-hint{color:#24344d;background:#ffffffe6;border-radius:18px;padding:8px 16px;font-weight:800;box-shadow:0 6px 16px -10px #24344d66}.ep-sticker-book__pager-btn{background:#e9f7ee;border-color:#20a95b;width:52px;height:52px;font-size:2rem}.ep-sticker-book__pager-btn:disabled{background:#fff;border-color:#d9ead3}@media (width>=700px){.ep-sticker-book-modal{position:relative}.ep-sticker-book-modal__head{justify-content:center;padding-inline:108px}.ep-sticker-book-modal__foot{z-index:2;position:absolute;top:10px;right:12px}.ep-sticker-book-modal__foot .ep-sticker-book-modal__done{border-radius:12px;gap:0;width:auto;min-width:6.5rem;min-height:44px;padding:8px 22px;font-size:.82rem;line-height:1.15}.ep-sticker-book-modal__foot .ep-sticker-book-modal__done .lol-modal-btn-en{font-size:.62rem}}.ep-sticker-book__page-art{opacity:.24}.ep-sticker-book-modal .ep-sticker-book__pool .ep-sticker-book__sticker.ep-sticker-book__sticker--idiom-banner{flex:none;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none}.ep-sticker-book__sticker.ep-sticker-book__sticker--idiom-banner.ep-sticker-book__sticker--placed{width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none}.ep-sticker-book__sticker--idiom-banner .ep-sticker-book__sticker-banner-text{font-size:clamp(1rem,2.6vw,1.3rem)}.stroke-workshop-levels{flex-direction:column;align-self:center;gap:8px;width:min(100%,380px);margin:0;padding:0;list-style:none;display:flex}.stroke-workshop-levels__row{color:#24344d;text-align:left;cursor:pointer;background:#fff;border:2px solid #e2e8e0;border-radius:16px;grid-template-columns:28px 28px 1fr auto;align-items:center;gap:10px;width:100%;min-height:56px;padding:8px 14px;font-family:inherit;transition:border-color .12s,background .12s;display:grid}.stroke-workshop-levels__row:hover:not(:disabled){border-color:#9ed08e}.stroke-workshop-levels__row:focus-visible{outline-offset:2px;outline:3px solid #20a95b73}.stroke-workshop-levels__state{border-radius:50%;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:900;display:grid}.stroke-workshop-levels__num{color:#66788f;text-align:center;font-size:1rem;font-weight:900}.stroke-workshop-levels__names{flex-direction:column;min-width:0;display:flex}.stroke-workshop-levels__zh{font-size:1rem;font-weight:900}.stroke-workshop-levels__en{color:#66788f;font-size:.75rem;font-weight:700}.stroke-workshop-levels__reward{color:#7a4b00;background:#fff6d6;border-radius:999px;padding:2px 8px;font-size:.8rem;font-weight:900}.stroke-workshop-levels__row.is-cleared .stroke-workshop-levels__state{color:#fff;background:#20a95b}.stroke-workshop-levels__row.is-next{background:#e9f7ee;border-color:#20a95b}.stroke-workshop-levels__row.is-next .stroke-workshop-levels__state{color:#fff;background:#20a95b}.stroke-workshop-levels__row.is-locked{color:#66788f;cursor:default;background:#f7f8f6}.stroke-workshop-levels__row.is-locked .stroke-workshop-levels__state{opacity:.7;font-size:.8rem}.stroke-workshop-levels__row.is-trial-locked{cursor:pointer}.stroke-workshop-levels__row:disabled{opacity:1}@media (width<=760px){.stroke-workshop-levels{width:100%}.stroke-workshop-levels__row{min-height:48px;padding:6px 12px}}.ep-sticker-book__page .ep-sticker-book__sticker-wrap:has(.ep-sticker-book__sticker--idiom-banner){width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none}.ep-sticker-book__sticker.ep-sticker-book__sticker--idiom-banner{clip-path:none;border-radius:16px}.ep-sticker-book__tab-icon img{object-fit:contain;border-radius:50%;width:100%;height:100%;display:block}.ep-sticker-book__tab-icon{overflow:hidden}.ep-sticker-book__tabs .ep-sticker-book__undo{border-style:dashed;min-height:40px;padding:0 12px 0 6px}.ep-sticker-book__tabs .ep-sticker-book__undo .ep-sticker-book__tab-icon{color:#1a7f45;background:#e9f7ee}.ep-sticker-book__page-title span{flex-direction:column;align-items:center;line-height:1.1;display:inline-flex}.ep-sticker-book__page-title span small{letter-spacing:.02em;font-size:.6rem;font-weight:700}.ep-sticker-book__pager-btn{place-items:center;padding:0;line-height:0;display:grid}.ep-sticker-book__pager-label{min-width:5rem}.ep-sticker-book__pager-label strong{font-size:1.2rem;font-weight:900}.ep-sticker-book__pager-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ep-album__art.is-die-cut{box-shadow:none;filter:drop-shadow(0 6px 8px #24344d47);background:0 0;border:none}.ep-album__art.is-die-cut img{object-fit:contain}.ep-album__sticker.is-shiny .ep-album__art.is-die-cut{filter:none;box-shadow:0 0 0 3px #f5c542,0 0 18px #f5c542bf}.ep-album-back__img.is-die-cut{width:150px;height:150px;box-shadow:none;object-fit:contain;filter:drop-shadow(0 6px 10px #24344d4d);border:none}.ep-album-back__card.is-shiny .ep-album-back__img.is-die-cut{filter:none;box-shadow:0 0 0 3px #f5c542,0 0 18px #f5c542bf}.ep-scene-card-toolbar .ep-scene-card-toolbar__home,.ep-scene-card-toolbar .ep-learning-points-chip,.ep-scene-card-toolbar .ep-scene-card-toolbar__start,.ep-scene-card-toolbar .ep-scene-card-toolbar__leading{flex-shrink:0}.ep-sticker-book__page--unfinished{background:#f1f0ec;border:2px dashed #d6d3cb;border-left:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.ep-sticker-book__page--unfinished .ep-sticker-book__page-title{opacity:.55}.ep-sticker-book__unfinished{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:8px 12px;display:flex}.ep-sticker-book__unfinished-key{cursor:default;background:#fff;border:0;border-radius:50%;place-items:center;width:64px;height:64px;font-size:1.9rem;display:inline-grid;box-shadow:0 2px 8px #24344d1f}button.ep-sticker-book__unfinished-key{cursor:pointer}.ep-sticker-book__unfinished-key.is-wiggling{animation:.45s ep-sticker-key-wiggle}@keyframes ep-sticker-key-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}60%{transform:rotate(10deg)}}@media (prefers-reduced-motion:reduce){.ep-sticker-book__unfinished-key.is-wiggling{animation:none}}.ep-sticker-book__unfinished-line{color:#4a5568;flex-direction:column;gap:2px;margin:0;font-weight:800;display:flex}.ep-sticker-book__unfinished-line-en,.ep-sticker-book__unfinished-btn-en{opacity:.8;font-size:.78rem;font-weight:600;display:block}.ep-sticker-book__tablist{display:contents}body.page-cover-bg:has(.admin-layout--cms){background-color:#0f172a;background-image:radial-gradient(70% 45% at 0 0,#0d948838,#0000 55%),radial-gradient(55% 40% at 100% 10%,#3341558c,#0000 50%),linear-gradient(165deg,#0b1220 0%,#1e293b 52%,#0f3d3a 100%);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar,body.page-cover-bg:has(.admin-layout--cms) .app-footer){color:#e2e8f0;box-shadow:none;background:#0f172aeb;border-color:#94a3b82e}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-title,body.page-cover-bg:has(.admin-layout--cms) .app-footer-meta,body.page-cover-bg:has(.admin-layout--cms) .app-footer-version){color:#e2e8f0}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-nav a,body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-nav button){color:#0f172a;background:#fff;border-color:#2dd4bf8c}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-nav a .app-nav-link-label__en,body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-nav button .app-nav-link-label__en){color:#334155;opacity:1}body.page-cover-bg:has(.admin-layout--cms) .app-footer-links a{color:#cbd5e1}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-nav a:hover,body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-nav button:hover){color:#0f766e;background:#f0fdfa;border-color:#14b8a6}body.page-cover-bg:has(.admin-layout--cms) .app-footer-links a:hover{color:#99f6e4}body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-toggle{color:#0f172a;background:#fff;border-color:#2dd4bf8c;box-shadow:0 4px 12px #0f172a2e}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-toggle:hover,body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-toggle[aria-expanded=true]){color:#0f766e;background:#f0fdfa;border-color:#14b8a6}body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-panel{background:#fff;border-color:#2dd4bf73;box-shadow:0 12px 28px #0f172a38}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-panel a,body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-panel button){color:#0f172a;background:#fff;border-color:#2dd4bf8c}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-panel a .app-nav-link-label__en,body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-panel button .app-nav-link-label__en){color:#334155;opacity:1}:is(body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-panel a:hover,body.page-cover-bg:has(.admin-layout--cms) .app-brand-bar-menu-panel button:hover){color:#0f766e;background:#f0fdfa;border-color:#14b8a6}.app-shell-content:has(.admin-layout--cms){width:100%;max-width:none}.admin-layout.admin-layout--cms{--admin-space-1:4px;--admin-space-2:8px;--admin-space-3:12px;--admin-space-4:16px;--admin-control-h:34px;--admin-radius:12px;--admin-radius-sm:8px;box-sizing:border-box;width:100%;max-width:none;margin:0;padding-inline:clamp(10px,1.5vw,16px)}.admin-layout--cms .admin-shell{gap:var(--admin-space-3);grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 64px);padding:12px 0 20px}.admin-layout--cms .admin-sidebar{border-radius:var(--admin-radius);padding:12px;top:10px}.admin-layout--cms .admin-sidebar h2{margin:0 0 8px;font-size:.92rem}.admin-layout--cms .admin-menu{gap:4px}.admin-layout--cms .admin-menu button{border-radius:var(--admin-radius-sm);gap:8px;padding:7px 9px}.admin-layout--cms .admin-menu__icon-wrap{width:16px;height:16px;margin-top:1px}.admin-layout--cms .admin-menu__icon{width:16px;height:16px}.admin-layout--cms .admin-menu__label{gap:0}.admin-layout--cms .admin-menu__label-en{font-size:.86rem;line-height:1.2}.admin-layout--cms .admin-menu__label-zh{font-size:.72rem;line-height:1.2}.admin-layout--cms .admin-main{gap:var(--admin-space-3)}.admin-layout--cms .stats-grid{gap:10px}.admin-layout--cms .stat-card,.admin-layout--cms .panel,.admin-layout--cms .panel-card{border-radius:var(--admin-radius);padding:12px 14px}.admin-layout--cms .stat-card span{font-size:.78rem}.admin-layout--cms .stat-card strong{margin-top:4px;font-size:1.45rem}.admin-layout--cms .admin-scene-tester{gap:12px}.admin-layout--cms .admin-scene-tester__controls{gap:10px 12px;max-width:none}.admin-layout--cms .admin-scene-tester__stage{margin-top:4px;padding:12px}.admin-sidebar--cms{color:#e2e8f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0f172ac7;border:1px solid #94a3b838;min-width:220px;box-shadow:0 12px 32px #02061759}.admin-sidebar--cms .admin-menu button{color:#94a3b8}.admin-sidebar--cms .admin-menu button.active,.admin-sidebar--cms .admin-menu button:hover{color:#5eead4;background:#10b98129}.admin-sidebar-toggle,.admin-sidebar-backdrop,.admin-sidebar__mobile-head{display:none}.admin-main--cms{width:100%;min-width:0}.admin-cms-panel{border-radius:var(--admin-radius,12px);background:#f8fafc;border:1px solid #0f172a1a;padding:14px 16px;box-shadow:0 12px 28px #02061738}.admin-cms-panel__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-cms-panel__head h2{margin:0;font-size:1.12rem;line-height:1.25}.admin-cms-panel__subtitle{color:#64748b;margin:2px 0 0;font-size:.8rem;line-height:1.35}.admin-cms-note{color:#64748b;margin:0 0 8px;font-size:.84rem}.admin-cms-panel__actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.admin-cms-error{color:#b91c1c;background:#fef2f2;border-radius:8px;margin:0 0 8px;padding:8px 10px;font-size:.88rem}.admin-cms-success{color:#047857;background:#ecfdf5;border-radius:8px;margin:0 0 8px;padding:8px 10px;font-size:.88rem}.admin-btn{min-height:var(--admin-control-h,34px);border-radius:var(--admin-radius-sm,8px);box-sizing:border-box;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:0 12px;font-size:.86rem;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.admin-btn--primary{color:#fff;background:#2563eb}.admin-btn--secondary{color:#0f172a;background:#fff;border-color:#0f172a1f}.admin-btn--link{color:#2563eb;background:0 0;border:none;min-height:auto;padding:0}.admin-btn--danger{color:#b91c1c;background:#fff;border-color:#fecaca}.admin-btn--danger:disabled{opacity:.6;cursor:not-allowed}.admin-episode-builder__layout{grid-template-columns:minmax(240px,280px) minmax(0,1fr);align-items:start;gap:12px;display:grid}.admin-episode-catalog{background:#f8fafc;border:1px solid #0f172a14;border-radius:12px;flex-direction:column;min-height:0;max-height:calc(100vh - 40px);padding:10px;display:flex;position:sticky;top:10px;overflow:hidden}.admin-episode-catalog__head{flex-direction:column;flex-shrink:0;gap:8px;margin-bottom:8px;display:flex}.admin-episode-catalog__head h3{margin:0;font-size:1rem}.admin-episode-catalog__season-meta{color:#64748b;flex-shrink:0;margin:0 0 12px;font-size:.8rem}.admin-episode-catalog__list{overscroll-behavior:contain;flex:1;gap:8px;min-height:0;margin:0;padding:0 4px 0 0;list-style:none;display:grid;overflow-y:auto}.admin-episode-catalog__item{background:#fff;border:1px solid #0f172a14;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.admin-episode-catalog__item--tile{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:10px 12px}.admin-episode-catalog__tile{align-items:baseline;gap:10px;min-width:0;display:flex}.admin-episode-catalog__idiom{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.admin-episode-catalog__item--clickable{cursor:pointer;transition:background .12s,border-color .12s}.admin-episode-catalog__item--clickable:hover{background:#f8faff;border-color:#93c5fd}.admin-episode-catalog__item.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb26}.admin-episode-catalog__ep{color:#2563eb;flex-shrink:0;min-width:42px;font-weight:800}.admin-episode-editor{min-width:0}.admin-wizard-steps{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.admin-wizard-steps__item{cursor:pointer;background:#f8fafc;border:1px solid #0f172a1a;border-radius:10px;flex-direction:column;align-items:flex-start;gap:1px;min-width:100px;padding:7px 10px;display:flex}.admin-wizard-steps__item small{opacity:.7;font-size:.75rem}.admin-wizard-steps__item.is-active{background:#dbeafe;border-color:#2563eb}.admin-wizard-steps__item.is-done{background:#ecfdf5}.admin-wizard-section{margin-bottom:14px}.admin-wizard-section h3{margin:0 0 8px;font-size:.98rem}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.admin-field{flex-direction:column;gap:4px;font-size:.86rem;display:flex}.admin-field--wide{grid-column:1/-1}.admin-field-required{color:#0f766e;margin-left:4px;font-size:.75rem;font-style:normal;font-weight:600}.admin-field--checkrow{cursor:pointer;color:#0f172a;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #0f172a1f;border-radius:8px;flex-direction:row;grid-column:1/-1;align-items:center;gap:10px;min-height:40px;padding:8px 12px;font-weight:600}.admin-field--checkrow:hover{background:#0d94880a;border-color:#0d948873}.admin-field--checkrow input[type=checkbox]{accent-color:#0d9488;cursor:pointer;flex-shrink:0;width:22px;height:22px;min-height:22px;margin:0}.admin-promo-active .admin-toggle{align-self:flex-start;min-height:40px}.admin-toggle{cursor:pointer;min-height:40px;font:inherit;color:#64748b;background:0 0;border:none;align-items:center;gap:10px;padding:0;font-weight:700;display:inline-flex}.admin-toggle__track{background:#cbd5e1;border-radius:999px;flex-shrink:0;width:48px;height:28px;transition:background .15s;position:relative}.admin-toggle__knob{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0f172a40}.admin-toggle.is-on{color:#0f766e}.admin-toggle.is-on .admin-toggle__track{background:#10b981}.admin-toggle.is-on .admin-toggle__knob{transform:translate(20px)}.admin-toggle__label{white-space:nowrap;font-size:.88rem}.admin-season-editor{background:#fff;border:1px solid #0f172a1a;border-radius:12px;margin-bottom:8px;padding:12px 14px}.admin-season-editor h3{margin:0 0 6px}.admin-season-editor .admin-cms-note{margin-bottom:10px}.admin-season-editor .admin-inline-actions{margin-top:12px}.admin-field input,.admin-field select,.admin-field textarea{min-height:var(--admin-control-h,34px);border-radius:var(--admin-radius-sm,8px);font:inherit;border:1px solid #0f172a24;padding:6px 10px}.admin-field textarea{resize:vertical;min-height:64px}.admin-field-hint{color:#64748b;margin:0;font-size:.8rem}.admin-error-msg-section__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-error-msg-section__head h3{margin:0}.admin-error-msg-preview-btn{flex-shrink:0;padding:6px 12px;font-size:.8rem}.admin-error-msg-preview-badge{letter-spacing:.02em;color:#0f766e;margin:0 0 10px;font-size:.75rem;font-weight:600}.admin-error-msg-preview-banner{z-index:12000}.admin-error-msg-crash-preview{z-index:12000;background:#0f172a8c;position:fixed;inset:0;overflow:auto}.admin-excel-paste{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;flex-direction:column;gap:10px;margin:0 0 16px;padding:14px;display:flex}.admin-excel-paste--modal{margin-bottom:12px}.admin-excel-paste__controls{flex-wrap:nowrap;align-items:center;gap:10px;min-width:0;display:flex}.admin-excel-paste__target{white-space:nowrap;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.admin-excel-paste__target select{min-width:12.5rem;min-height:36px;font:inherit;border:1px solid #0f172a24;border-radius:10px;padding:6px 10px}.admin-excel-paste__feedback{white-space:nowrap;text-overflow:ellipsis;border-radius:8px;flex:auto;min-width:0;margin:0;padding:6px 10px;font-size:.82rem;line-height:1.35;overflow:hidden}.admin-excel-paste__feedback--success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.admin-excel-paste__feedback--error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.admin-story-step__head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.admin-story-step__head h3{margin:0 0 4px}.admin-story-preview-wrap{background:#fff;border:1px solid #0f172a14;border-radius:12px;margin-bottom:18px;overflow-x:auto}.admin-story-preview{border-collapse:collapse;width:100%;font-size:.82rem}.admin-story-preview th,.admin-story-preview td{text-align:left;vertical-align:top;border-bottom:1px solid #0f172a0f;padding:10px 12px}.admin-story-preview thead th{color:#475569;white-space:nowrap;background:#f8fafc;font-weight:700}.admin-story-preview__row{cursor:pointer}.admin-story-preview__row:hover{background:#eff6ff}.admin-story-preview td{text-overflow:ellipsis;white-space:nowrap;color:#334155;max-width:12rem;overflow:hidden}.admin-scene-assets{gap:12px;display:grid}.admin-scene-assets--modal{flex-shrink:0;padding-top:4px}.admin-scene-assets__title{margin:0 0 10px;font-size:.9rem;font-weight:700}.admin-scene-assets__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.admin-scene-assets__row{background:#f8fafc;border:1px solid #0f172a14;border-radius:12px;gap:6px;min-width:0;padding:10px;display:grid;overflow:hidden}.admin-scene-assets__row h4,.admin-scene-assets__row h5{margin:0;font-size:.85rem}.admin-scene-assets__row .admin-asset-upload,.admin-scene-assets__row .admin-field{min-width:0;max-width:100%}.admin-asset-upload__preview{cursor:zoom-in;background:#e2e8f0;border:1px solid #0f172a14;border-radius:8px;width:100%;height:64px;padding:0;display:block;overflow:hidden}.admin-asset-upload__preview:hover{border-color:#0f172a33}.admin-asset-upload__preview:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.admin-asset-upload__preview img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.admin-image-preview-modal{z-index:10050;background:#0f2744b8;padding:24px}.admin-image-preview-modal__panel{background:#0f172a;border-radius:16px;justify-content:center;align-items:center;max-width:min(96vw,1100px);max-height:calc(100vh - 48px);margin:0;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 60px #0f274459}.admin-image-preview-modal__close{z-index:1;color:#1e3a5f;background:#ffffffeb;top:.75rem;right:.75rem}.admin-image-preview-modal__close:hover{color:#0f172a;background:#fff}.admin-image-preview-modal__img{object-fit:contain;width:auto;max-width:min(96vw,1100px);height:auto;max-height:calc(100vh - 48px);display:block}.admin-story-table-modal{overscroll-behavior:none;touch-action:none;justify-content:center;align-items:center;padding:16px;overflow:hidden}.admin-story-table-modal__panel{overscroll-behavior:contain;touch-action:auto;flex-direction:column;gap:12px;width:min(1200px,100vw - 32px);height:min(860px,100vh - 32px);max-height:calc(100vh - 32px);margin:0;padding:18px 20px;display:flex;overflow:hidden}.admin-story-table-modal__head{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admin-story-table-modal__actions{flex-shrink:0;align-items:flex-start;gap:12px;display:flex}.admin-story-table-modal__actions-tools{align-items:center;gap:8px;display:flex}.admin-story-table-modal__actions-save{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.admin-story-table-modal__actions-save-row{align-items:center;gap:8px;display:flex}.admin-story-table-modal__save-feedback{text-align:right;max-width:220px;margin:0;font-size:.75rem;line-height:1.3}.admin-story-table-modal__save-feedback--success{color:#15803d}.admin-story-table-modal__save-feedback--error{color:#b91c1c}.admin-story-table-modal__file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-story-table-modal__head h2{margin:0 0 4px;font-size:1.15rem}.admin-story-table-modal__body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;min-height:0;padding-right:4px;display:flex;overflow:auto}.admin-story-table-wrap{background:#fff;border:1px solid #0f172a1a;border-radius:12px;flex:none;overflow:hidden visible}.admin-story-preview__thumb-cell{width:56px}.admin-story-preview__thumb{object-fit:cover;background:#e2e8f0;border-radius:6px;width:48px;height:36px;display:block}.admin-story-preview__thumb-empty{color:#94a3b8}@media (width<=900px){.admin-scene-assets__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-story-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.8rem}.admin-story-table th,.admin-story-table td{vertical-align:top;border:1px solid #0f172a14;padding:6px}.admin-story-table thead th{z-index:1;color:#334155;white-space:nowrap;background:#f1f5f9;font-weight:700;position:sticky;top:0}.admin-story-table thead th:first-child,.admin-story-table tbody th{width:2.75rem}.admin-story-table tbody th{z-index:1;color:#2563eb;text-align:center;background:#f8fafc;font-weight:800;position:sticky;left:0}.admin-story-table td{overflow-wrap:anywhere;word-break:break-word;width:auto;min-width:0}.admin-story-table textarea{box-sizing:border-box;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;width:100%;min-width:0;max-width:100%;height:auto;min-height:2.2rem;font:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 8px;line-height:1.35;display:block;overflow:hidden}.admin-story-table textarea:focus{border-color:#60a5fa;outline:2px solid #93c5fd}.admin-story-table__en{flex-direction:column;gap:4px;margin:6px 0 0;display:flex}.admin-story-table__en-label{color:#64748b;font-size:.68rem;font-weight:600}.admin-story-table__line-audio{border-top:1px dashed #0f172a1a;flex-direction:column;gap:6px;margin:8px 0 0;padding-top:6px;display:flex}.admin-story-table__line-audio-label{color:#64748b;font-size:.68rem;font-weight:600}.admin-story-table__line-audio .admin-asset-upload{margin:0}.admin-story-table__line-audio-meta{color:#64748b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:.72rem;display:flex}.admin-story-table__timing-btn{min-height:28px;padding:0 8px;font-size:.72rem}.admin-story-table__jyutping{flex-direction:column;gap:4px;margin:6px 0 0;display:flex}.admin-story-table__jyutping-header{justify-content:space-between;align-items:center;gap:6px;display:flex}.admin-story-table__jyutping-label{color:#64748b;font-size:.68rem;font-weight:600}.admin-story-table__jyutping-play{color:#334155;cursor:pointer;background:#fff;border:1px solid #0f172a29;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;margin:0;padding:0;font-size:.55rem;line-height:1;display:inline-flex}.admin-story-table__jyutping-play:hover:not(:disabled){color:#1d4ed8;background:#eff6ff;border-color:#60a5fa}.admin-story-table__jyutping-play.is-playing{color:#1d4ed8;background:#dbeafe;border-color:#60a5fa}.admin-story-table__jyutping-play:disabled{opacity:.4;cursor:not-allowed}.admin-story-table__jyutping-input{width:100%;font:inherit;color:#334155;resize:none;background:#f8fafc;border:1px solid #0f172a24;border-radius:8px;margin:0;padding:6px 8px;font-size:.78rem;line-height:1.35}.admin-story-table__jyutping-input:focus{background:#fff;border-color:#60a5fa;outline:none}.admin-asset-upload__row{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.admin-asset-upload__row .admin-btn{flex:none}.admin-asset-upload__input{display:none}.admin-asset-upload__path{color:#334155;text-overflow:ellipsis;white-space:nowrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex:auto;min-width:0;max-width:100%;padding:8px 10px;font-size:.75rem;overflow:hidden}.admin-asset-upload__error{color:#b91c1c;margin:6px 0 0;font-size:.8rem}.admin-wizard-footer,.admin-inline-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.admin-wizard-footer{border-top:1px solid #0f172a14;justify-content:space-between;margin-top:4px;padding-top:12px}.admin-wizard-footer__end{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-left:auto;display:flex}.admin-wizard-footer__message{text-align:right;max-width:22rem;margin:0;font-size:.85rem}.admin-season-matrix{gap:10px;display:grid}.admin-season-card{background:#f8fafc;border:1px solid #0f172a14;border-radius:12px;padding:12px}.admin-season-card__head{justify-content:space-between;gap:10px;margin-bottom:8px;display:flex}.admin-season-card__head h3{margin:0}.admin-season-card__head p{color:#64748b;margin:4px 0 0}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #0f172a14;padding:8px 10px;font-size:.88rem}.admin-table__row--editing{background:#0f766e14}.admin-table--compact th,.admin-table--compact td{padding:6px 8px}.admin-search-bar{gap:8px;margin-bottom:10px;display:flex}.admin-search-bar input{min-height:var(--admin-control-h,34px);border-radius:var(--admin-radius-sm,8px);border:1px solid #0f172a24;flex:1;padding:0 10px}.admin-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.admin-users-detail .admin-mini-game-tester__tabs{padding-top:0}.admin-users-panel{position:relative}.admin-users-toolbar{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:10px;display:flex}.admin-users-toolbar__search{flex:220px;min-width:180px}.admin-users-toolbar__search input{width:100%;min-height:var(--admin-control-h,34px);border-radius:var(--admin-radius-sm,8px);font:inherit;background:#fff;border:1px solid #0f172a24;padding:0 10px}.admin-users-toolbar__filter{color:#64748b;flex-direction:column;gap:3px;font-size:.72rem;font-weight:700;display:flex}.admin-users-toolbar__filter select{min-height:var(--admin-control-h,34px);border-radius:var(--admin-radius-sm,8px);min-width:110px;font:inherit;background:#fff;border:1px solid #0f172a24;padding:0 8px}.admin-users-toolbar__counts{color:#64748b;white-space:nowrap;margin:0 0 4px auto;font-size:.8rem}.admin-users-table-wrap{background:#fff;border:1px solid #0f172a14;border-radius:12px;overflow-x:auto}.admin-users-table{margin:0}.admin-users-table thead th{text-transform:uppercase;letter-spacing:.04em;color:#64748b;white-space:nowrap;background:#f8fafc;font-size:.78rem}.admin-users-table tbody tr{cursor:pointer;transition:background .12s}.admin-users-table tbody tr:hover{background:#0d94880f}.admin-users-table tbody tr.is-selected{background:#0d94881f}.admin-users-table__empty{text-align:center;color:#64748b;padding:16px 12px!important}.admin-users-sort{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.admin-users-sort:hover{color:#0f766e}.admin-users-dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0 0 16px;display:grid}.admin-users-dl>div{background:#f8fafc;border:1px solid #0f172a0f;border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.admin-users-dl dt{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0;font-size:.75rem;font-weight:700}.admin-users-dl dd{color:#0f172a;word-break:break-word;margin:0;font-size:.95rem}.admin-users-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) minmax(0,.9fr);gap:10px;margin-bottom:8px;display:grid}.admin-users-edit__field{color:#64748b;flex-direction:column;gap:4px;min-width:0;font-size:.78rem;font-weight:700;display:flex}.admin-users-edit__field--email{min-width:0}.admin-users-edit__field .admin-input{color:#0f172a;width:100%;min-width:0;font-weight:500}.admin-users-edit__meta{color:#0f172a;background:#f8fafc;border:1px solid #0f172a0f;border-radius:10px;flex-wrap:wrap;grid-column:1/-1;gap:12px 18px;padding:10px 12px;font-size:.9rem;display:flex}.admin-users-edit__meta>div{flex-direction:column;gap:4px;min-width:88px;display:flex}.admin-users-edit__meta-label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.72rem;font-weight:700}.admin-users-edit .admin-cms-panel__actions{grid-column:1/-1;margin-top:4px}.admin-users-drawer__badges{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.admin-users-drawer__close{cursor:pointer;color:#475569;background:#f8fafc;border:1px solid #0f172a1f;border-radius:8px;flex-shrink:0;width:32px;height:32px;font-size:1.25rem;line-height:1}.admin-users-drawer__close:hover{color:#0f172a;background:#f1f5f9}.admin-users-drawer__tabs{gap:8px;padding:12px 20px 0;display:flex}.admin-users-drawer__tabs button{cursor:pointer;color:#64748b;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 14px;font-size:.88rem;font-weight:600}.admin-users-drawer__tabs button.is-active{color:#fff;background:#10b981;border-color:#10b981}.admin-users-modal{justify-content:center;align-items:center;padding:12px}.admin-users-modal__panel{border-radius:16px;flex-direction:column;gap:0;width:min(860px,100vw - 24px);max-height:min(88vh,860px);padding:12px 14px;display:flex;overflow:hidden}.admin-users-modal__panel .lol-modal-title{margin:0;font-size:1.15rem}.admin-users-modal__panel .admin-cms-note{margin:2px 0 0}.admin-users-modal__head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.admin-users-modal__head .admin-users-drawer__badges{gap:4px;margin-top:6px}.admin-users-modal__head .admin-users-drawer__close{border-radius:8px;width:30px;height:30px;font-size:1.2rem}.admin-users-modal .admin-users-drawer__tabs{gap:6px;padding:0}.admin-users-modal .admin-users-drawer__tabs button{padding:6px 10px;font-size:.82rem}.admin-users-modal__body{flex:1;min-height:0;padding-top:8px;overflow:auto}.admin-users-modal__body .admin-users-dl{gap:8px;margin:0 0 8px}.admin-users-modal__body .admin-users-dl>div{border-radius:8px;gap:2px;padding:8px 10px}.admin-users-modal__body .admin-users-dl dt{font-size:.7rem}.admin-users-modal__body .admin-users-dl dd{font-size:.92rem}.admin-users-modal__body .admin-cms-note{margin:4px 0 0}.admin-users-edit__below{border-top:1px solid #0f172a14;grid-column:1/-1;padding-top:4px}.admin-users-progress{flex-direction:column;gap:10px;display:flex}.admin-users-account-tab .admin-users-progress{border-top:1px solid #0f172a14;padding-top:4px}.admin-users-dl--compact{margin-bottom:6px}.admin-users-child-card{background:#fff;border:1px solid #0f172a14;border-radius:12px;padding:10px 12px}.admin-users-child-card__head{flex-wrap:wrap;justify-content:space-between;gap:6px 12px;margin-bottom:8px;display:flex}.admin-users-child-card__head h4{margin:0 0 2px;font-size:1rem}.admin-users-child-card__level{text-align:right;color:#475569;flex-direction:column;align-items:flex-end;gap:2px;font-size:.82rem;display:flex}.admin-users-child-card__section{margin-top:8px}.admin-users-child-card__section h5{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0 0 6px;font-size:.75rem}.admin-users-payments-wrap{overflow-x:auto}.admin-users-payments-table{min-width:720px}.admin-users-mono{word-break:break-all;font-size:.75rem}.admin-users-episode-list,.admin-users-mission-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.admin-users-mission-list{flex-direction:column}.admin-users-mission-list li{background:#f8fafc;border:1px solid #0f172a0f;border-radius:10px;justify-content:space-between;gap:12px;padding:8px 10px;font-size:.9rem;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=720px){.admin-users-toolbar__counts{width:100%;margin-left:0}.admin-users-dl,.admin-users-edit{grid-template-columns:1fr}}.dashboard-global-alert{color:#92400e;background:linear-gradient(90deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:12px;margin:0 0 16px;padding:12px 16px;font-weight:700}.admin-confirm-modal__panel{max-width:420px}.admin-confirm-modal__confirm--danger{color:#fff;background:#dc2626}.admin-confirm-modal__confirm--danger:hover:not(:disabled){background:#b91c1c}.admin-confirm-modal__confirm--danger:disabled{opacity:.65;cursor:not-allowed}.admin-promo-uses{font-variant-numeric:tabular-nums;font-weight:700}.admin-promo-redemptions-modal__panel{width:min(720px,100vw - 32px);max-height:min(80vh,720px);overflow:auto}.admin-promo-redemptions-modal__head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.admin-promo-session{word-break:break-all;font-size:.78rem}@media (width<=900px){.admin-form-grid,.admin-scene-grid,.admin-scene-sentence{grid-template-columns:1fr}.admin-cms-panel__head{flex-direction:column}.admin-episode-builder__layout{grid-template-columns:1fr}.admin-episode-catalog{max-height:min(50vh,420px);position:static}.admin-layout--cms .admin-shell{grid-template-columns:1fr;gap:10px;padding-top:10px}.admin-layout--cms .admin-sidebar-toggle{color:#0f172a;width:fit-content;font:inherit;cursor:pointer;background:#fff;border:2px solid #2dd4bf8c;border-radius:999px;align-items:center;gap:10px;margin:0;padding:8px 14px;font-weight:800;display:inline-flex;box-shadow:0 4px 12px #0f172a2e}.admin-sidebar-toggle__icon{flex-direction:column;justify-content:center;gap:3px;width:16px;display:flex}.admin-sidebar-toggle__icon span{background:currentColor;border-radius:999px;height:2px;display:block}.admin-sidebar-toggle__label{flex-direction:column;align-items:flex-start;gap:1px;font-size:.82rem;line-height:1.15;display:flex}.admin-sidebar-toggle__label span:last-child{color:#334155;font-size:.72em;font-weight:700}.admin-layout--cms .admin-sidebar-backdrop{z-index:240;cursor:pointer;background:#0206178c;border:none;margin:0;padding:0;display:block;position:fixed;inset:0}.admin-layout--cms .admin-sidebar--cms{z-index:250;border-top:none;border-bottom:none;border-left:none;border-radius:0;flex-direction:column;width:min(280px,86vw);min-width:0;height:100dvh;margin:0;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-105%);box-shadow:12px 0 32px #02061759}.admin-layout--cms .admin-sidebar--cms.is-open{transform:translate(0)}.admin-layout--cms .admin-sidebar__mobile-head{color:#e2e8f0;border-bottom:1px solid #94a3b838;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.admin-sidebar__close{color:#e2e8f0;cursor:pointer;background:#94a3b829;border:none;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;margin:0;padding:0;font-size:1.4rem;line-height:1;display:inline-flex}}.admin-audit-snapshot{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.admin-audit-snapshot__card{background:#0f172a0a;border:1px solid #0f172a14;border-radius:10px;flex-direction:column;gap:4px;padding:10px 14px;font-size:.9rem;display:flex}.admin-audit-timeline__title{margin:20px 0 10px;font-size:1rem}.admin-audit-payload{color:#0f172ab8;word-break:break-word;max-width:280px;font-size:.85rem}.admin-story-table__play-btn{min-height:28px;padding:0 10px}.admin-story-table__play-btn.is-playing{color:#1a7f45;border-color:#20a95b}.admin-progress{flex-direction:column;gap:14px;display:flex}.admin-progress__kids{flex-wrap:wrap;gap:8px;display:flex}.admin-progress__kids button{min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #0f172a26;border-radius:999px;padding:0 14px;font-weight:700}.admin-progress__kids button.is-active{color:#166534;background:#dcfce7;border-color:#16a34a}.admin-progress__table{border-collapse:collapse;width:100%;font-size:.88rem}.admin-progress__table th,.admin-progress__table td{text-align:left;border-bottom:1px solid #0f172a14;padding:6px 8px}.admin-progress__table td.is-done{color:#166534;font-weight:700}.admin-progress__table td.is-active{color:#b45309;font-weight:700}.admin-progress__row-btn{min-height:28px;padding:0 10px;font-size:.8rem}.admin-progress__bulk{flex-wrap:wrap;gap:10px;display:flex}.admin-btn--danger-outline{color:#b91c1c;background:#fff;border:1px solid #fca5a5}.admin-progress__confirm{background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.admin-progress__confirm-title{color:#7f1d1d;margin:0;font-weight:800}.admin-progress__confirm-effect,.admin-progress__confirm-note{color:#475569;margin:0;font-size:.85rem}.admin-progress__browser{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.admin-activity__filters{flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:12px;display:flex}.admin-activity__filters select,.admin-activity__email input{min-height:36px;font:inherit;background:#fff;border:1px solid #0f172a26;border-radius:10px;padding:0 10px;font-size:.85rem}.admin-activity__ranges{border:1px solid #0f172a26;border-radius:10px;display:inline-flex;overflow:hidden}.admin-activity__ranges button{min-height:36px;font:inherit;cursor:pointer;background:#fff;border:none;border-right:1px solid #0f172a1a;padding:0 12px;font-size:.82rem}.admin-activity__ranges button:last-child{border-right:none}.admin-activity__ranges button.is-active{color:#166534;background:#dcfce7;font-weight:700}.admin-activity__email{gap:6px;display:inline-flex}.admin-activity__internal{color:#475569;align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.admin-activity__count{color:#64748b;margin:0 0 6px;font-size:.82rem}.admin-activity__table-wrap{overflow-x:auto}.admin-activity__table{border-collapse:collapse;width:100%;font-size:.86rem}.admin-activity__table th,.admin-activity__table td{text-align:left;vertical-align:top;border-bottom:1px solid #0f172a12;padding:7px 10px}.admin-activity__table tbody tr{cursor:pointer}.admin-activity__table tbody tr:hover,.admin-activity__table tbody tr.is-open{background:#f8fafc}.admin-activity__time{white-space:nowrap;color:#475569}.admin-activity__sub{color:#64748b;font-size:.78rem;display:block}.admin-activity__details{color:#334155;word-break:break-word;margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;display:block}.admin-activity__area{color:#334155;background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.admin-activity__area--payment{color:#92400e;background:#fef3c7}.admin-activity__area--admin{color:#5b21b6;background:#ede9fe}.admin-activity__area--error{color:#991b1b;background:#fee2e2}.admin-activity__area--learning,.admin-activity__area--mini_game,.admin-activity__area--progress{color:#166534;background:#dcfce7}.admin-activity__area--auth,.admin-activity__area--account{color:#075985;background:#e0f2fe}.admin-activity__who{color:#1d4ed8;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.admin-activity__who:hover{text-decoration:underline}.admin-activity__pager{justify-content:center;align-items:center;margin-top:12px}.lol-parent-settings__tab-en,.lol-parent-settings__card-title-en,.lol-parent-settings__inline-en,.lol-parent-settings__section-label,.lol-parent-settings__switch-help,.lol-parent-settings__coop-hint span,.lol-parent-settings__status-en,.lol-parent-settings span[lang=en],.ep-episode-label .ep-episode-label__en,.ep-sticker-book-modal__title-en,.ep-sticker-book__tab .ep-sticker-book__tab-en,.ep-sticker-book__tab.is-active .ep-sticker-book__tab-en{color:#4a5b70}.week-learn-chart__label-en,.is-today>.week-learn-chart__label-en{color:#435a73}.app-footer-meta,.app-footer-version{color:#4f5b50;opacity:1}.ep-album__head-title .nf-episodes__season-title-en{color:#626262}.ep-album__slot-num{color:#5d6b79}.ep-album__ribbon,.ep-sticker-book__page-title span{background-color:#14803f}.ep-karaoke-line--hero .ep-karaoke-syllable,.ep-story-hero-intro__karaoke-wrap .ep-karaoke-pair .ep-karaoke-syllable,.ep-story-hero-intro__tiles .ep-karaoke-pair .ep-karaoke-syllable,.landing-sample__jyutping,.ep-album-back__jyutping,.ep-finale__jyutping,.ep-finale__gloss-en,.ep-finale__collected-en,.ep-mini-game--idiom-challenge .ep-mini-game__complete-text-en{color:#3a6f47}.gamification-widget__mission-title span,.gamification-widget__badge-title span{color:#4a5d72;opacity:1}.gamification-widget__mission.is-done .gamification-widget__mission-title,.gamification-widget__mission.is-done .gamification-widget__mission-pts,.is-done>.gamification-widget__mission-pts{color:#24663a}.gamification-widget__stamp.is-done .gamification-widget__mission-title,.gamification-widget__stamp.is-done .gamification-widget__mission-title span,.is-done>.gamification-widget__mission-title,.is-done>.gamification-widget__mission-title span{color:#4f6276}.btn-primary{background-color:#277a42}.ep-album__new{background:#c62828}.kid-progress__gift span{color:#7a5410}.ep-ready-restart-link{color:#4a5b70}.ep-ready-btn:not(:disabled){background:#0f7b66;box-shadow:0 8px 22px #0f7b6661}.ep-story-hero-intro__actions .ep-ready-btn .ep-ready-btn__en{opacity:1}.ep-card__jyutping{color:#5d6573}.ep-card__chip--done,.gamification-widget__token{color:#0f6a39}.ep-album-back__ep,.ep-album-back__meaning-en{color:#4a5b70}.ep-album-back__close{background:#14803f}
