.ld-root{--ld-tile-bg:var(--color-surface-container-lowest);--ld-tile-border:var(--color-outline-variant);--ld-tile-shadow:color-mix(in oklab, var(--color-outline-variant) 88%, black);--ld-ghost:var(--color-surface-container-highest);--ld-line:var(--color-outline-variant);--ld-muted:var(--color-outline);--ld-success-deep:color-mix(in oklab, var(--color-success) 78%, black);--ld-error-deep:color-mix(in oklab, var(--color-error) 78%, black);--ld-amber:#d97706;--ld-amber-deep:#a35505;--ld-select:var(--color-primary);--ld-select-tint:color-mix(in oklab, var(--color-primary) 12%, var(--ld-tile-bg));--ld-hanzi:"Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;background:var(--color-surface);min-height:100dvh;color:var(--color-on-surface);font-family:var(--font-inter), Noto Sans SC, system-ui, sans-serif;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative}.ld-root.dark{--ld-tile-bg:var(--color-surface-container-high);--ld-tile-border:color-mix(in oklab, var(--color-outline) 45%, var(--color-surface));--ld-tile-shadow:color-mix(in oklab, var(--color-outline) 30%, var(--color-surface));--ld-ghost:var(--color-surface-container-highest);--ld-line:color-mix(in oklab, var(--color-outline) 40%, var(--color-surface));--ld-muted:color-mix(in oklab, var(--color-outline) 80%, var(--color-on-surface));--ld-amber:#ffb74d;--ld-amber-deep:#c77f16}.ld-shell{max-width:560px;min-height:100dvh;padding:0 16px calc(120px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex;position:relative}.ld-top{padding:calc(14px + env(safe-area-inset-top)) 0 10px;align-items:center;gap:14px;display:flex}.ld-icon-btn{width:36px;height:36px;color:var(--ld-muted);transition:background var(--duration-fast) var(--ease-standard);background:0 0;border-radius:999px;place-items:center;display:grid}.ld-icon-btn:hover{background:var(--color-surface-container-high)}.ld-track{background:var(--ld-ghost);border-radius:999px;flex:1;height:16px;position:relative;overflow:visible}.ld-fill{background:var(--color-success);min-width:16px;height:100%;transition:background var(--duration-slow) var(--ease-standard);border-radius:999px;position:relative}.ld-fill.is-combo{background:var(--ld-amber)}.ld-fill:after{content:"";background:#ffffff52;border-radius:999px;height:4px;position:absolute;top:4px;left:10px;right:8px}.ld-spark{background:var(--color-success);pointer-events:none;width:6px;height:6px;animation:ld-spark .62s var(--ease-emphasized) forwards;border-radius:999px;position:absolute;top:50%}.is-combo~.ld-spark{background:var(--ld-amber)}@keyframes ld-spark{0%{opacity:1;transform:translate(-50%,-50%)scale(.6)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(0);opacity:0}}.ld-hearts{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-muted);align-items:center;gap:4px;font-size:18px;font-weight:800;display:flex}.ld-hearts .ld-bolt{color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb);border-radius:6px;place-items:center;width:22px;height:22px;display:grid}.ld-menu{z-index:30;top:calc(56px + env(safe-area-inset-top));background:var(--ld-tile-bg);border:2px solid var(--ld-tile-border);min-width:220px;box-shadow:var(--shadow-e2);transform-origin:0 0;border-radius:14px;padding:6px;position:absolute;left:16px}.ld-menu button{text-align:left;width:100%;color:var(--color-on-surface);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.ld-menu button:hover{background:var(--color-surface-container-high)}.ld-switch{background:var(--ld-ghost);width:36px;height:20px;transition:background var(--duration-base) var(--ease-standard);border-radius:999px;position:relative}.ld-switch:after{content:"";width:16px;height:16px;transition:transform var(--duration-base) var(--ease-standard);background:#fff;border-radius:999px;position:absolute;top:2px;left:2px}.ld-switch.on{background:var(--color-success)}.ld-switch.on:after{transform:translate(16px)}.ld-retry{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-amber);align-items:center;gap:6px;margin-top:10px;font-size:13px;font-weight:600;display:inline-flex}.ld-retry svg{width:18px;height:18px}.ld-h1{font-family:var(--font-manrope), Noto Sans SC, sans-serif;letter-spacing:-.01em;margin:14px 0 20px;font-size:22px;font-weight:700;line-height:1.2}.ld-scene{align-items:flex-end;gap:8px;min-height:120px;display:flex}.ld-char{flex:0 0 104px;justify-content:center;align-items:flex-end;width:104px;height:120px;display:flex;position:relative}.ld-char img,.ld-char video{object-fit:contain;object-position:bottom;transform-origin:50% 100%;width:100%;height:100%;animation:3.2s ease-in-out infinite ld-breathe}.ld-char.is-happy img{animation:ld-hop .52s var(--ease-emphasized) 1}.ld-char.is-sad img{animation:ld-droop .52s var(--ease-emphasized) 1 forwards}@keyframes ld-breathe{0%,to{transform:scaleY(1)scaleX(1)}50%{transform:scaleY(1.018)scaleX(.992)}}@keyframes ld-hop{0%{transform:translateY(0)scaleY(1)}25%{transform:translateY(-14px)scaleY(1.06)}55%{transform:translateY(0)scaleY(.94)}75%{transform:translateY(-5px)scaleY(1.02)}to{transform:translateY(0)scaleY(1)}}@keyframes ld-droop{0%{transform:rotate(0)}40%{transform:rotate(-4deg)translateY(2px)}to{transform:rotate(-2deg)translateY(3px)}}.ld-bubble{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);border-radius:16px;align-self:center;align-items:flex-start;gap:8px;min-width:0;max-width:100%;padding:12px 14px;font-size:17px;line-height:1.55;display:flex;position:relative}.ld-bubble:before,.ld-bubble:after{content:"";border-style:solid;border-width:10px 12px 10px 0;border-color:transparent var(--ld-tile-border) transparent transparent;width:0;height:0;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.ld-bubble:after{border-color:transparent var(--ld-tile-bg) transparent transparent;left:-9px}.ld-speak{width:30px;height:30px;color:var(--color-primary);background:0 0;border-radius:8px;flex:none;place-items:center;margin-top:8px;display:grid}.ld-speak.is-playing{animation:.7s ease-in-out infinite ld-pulse}@keyframes ld-pulse{50%{transform:scale(1.18)}}.ld-words{flex-wrap:wrap;align-items:flex-end;gap:4px 6px;display:flex}.ld-word{border-bottom:2px dashed var(--ld-line);cursor:pointer;flex-direction:column;align-items:center;padding-bottom:1px;display:inline-flex;position:relative}.ld-word.no-hint{cursor:default;border-bottom-color:#0000}.ld-word .py{color:var(--ld-muted);letter-spacing:.01em;white-space:nowrap;font-size:11px;line-height:1.1}.ld-word .zh{font-family:var(--ld-hanzi);font-size:19px;line-height:1.3}.ld-word .idn{font-size:17px}.ld-hint{white-space:nowrap;background:var(--color-inverse-surface);color:var(--color-inverse-on-surface);z-index:5;box-shadow:var(--shadow-e2);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.ld-hint:after{content:"";border:6px solid #0000;border-top-color:var(--color-inverse-surface);position:absolute;top:100%;left:50%;transform:translate(-50%)}.ld-blank{border-bottom:2px solid var(--ld-line);vertical-align:bottom;place-items:center;min-width:40px;height:50px;margin:0;display:inline-grid}.ld-blank .ld-tile{margin-bottom:4px}.ld-fill-hint{color:var(--ld-muted);margin-top:10px;font-size:14px}.ld-answer{background-image:linear-gradient(var(--ld-line), var(--ld-line)), linear-gradient(var(--ld-line), var(--ld-line));background-position:0 58px,0 118px;background-repeat:no-repeat;background-size:100% 2px,100% 2px;flex-wrap:wrap;align-content:flex-start;gap:8px 6px;min-height:120px;margin-top:22px;padding:6px 0;display:flex;position:relative}.ld-bank{flex-wrap:wrap;justify-content:center;gap:10px 8px;margin-top:auto;padding-top:28px;display:flex}.ld-bank-fill{justify-content:center}.ld-slot{position:relative}.ld-tile{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);min-width:44px;color:var(--color-on-surface);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);touch-action:manipulation;border-bottom-width:4px;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:8px 12px 10px;font-size:17px;line-height:1.2;display:inline-flex;position:relative}.ld-tile:active:not(:disabled){border-bottom-width:2px;margin-bottom:2px;transform:translateY(2px)}.ld-tile .py{color:var(--ld-muted);white-space:nowrap;margin-bottom:2px;font-size:11px;line-height:1.1}.ld-tile .zh{font-family:var(--ld-hanzi);font-size:18px}.ld-tile.is-correct{border-color:var(--color-success);color:var(--color-success);background:color-mix(in oklab, var(--color-success) 10%, var(--ld-tile-bg))}.ld-tile.is-correct .py{color:var(--color-success)}.ld-tile.is-wrong{border-color:var(--color-error);color:var(--color-error);background:color-mix(in oklab, var(--color-error) 10%, var(--ld-tile-bg))}.ld-tile.is-wrong .py{color:var(--color-error)}.ld-tile:disabled{cursor:default}.ld-ghost{background:var(--ld-ghost);color:#0000;pointer-events:none;border:2px solid #0000;border-bottom-width:4px;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:44px;padding:8px 12px 10px;font-size:17px;line-height:1.2;display:inline-flex}.ld-ghost .py{margin-bottom:2px;font-size:11px;line-height:1.1}.ld-ghost .zh{font-family:var(--ld-hanzi);font-size:18px}.ld-tile.is-correct:after{content:"";background:var(--color-success);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);width:10px;height:10px;animation:ld-twinkle .7s var(--ease-emphasized) 1;position:absolute;bottom:-6px;right:-5px}@keyframes ld-twinkle{0%{opacity:0;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1.4)rotate(45deg)}to{opacity:1;transform:scale(1)rotate(90deg)}}.ld-match{grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:36px;display:grid;position:relative}.ld-mtile{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);min-height:64px;color:var(--color-on-surface);transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), opacity var(--duration-slow) var(--ease-standard);border-bottom-width:4px;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;padding:10px 8px;font-size:16px;font-weight:600;display:flex;position:relative;overflow:hidden}.ld-mtile:active:not(:disabled){border-bottom-width:2px;margin-bottom:2px;transform:translateY(2px)}.ld-mtile .py{color:var(--ld-muted);margin-bottom:2px;font-size:11px;font-weight:500;line-height:1.1}.ld-mtile .zh{font-family:var(--ld-hanzi);font-size:19px;font-weight:500}.ld-mtile.is-selected{border-color:var(--ld-select);background:var(--ld-select-tint);color:var(--ld-select)}.ld-mtile.is-selected .py{color:var(--ld-select)}.ld-mtile.is-just{border-color:var(--color-success);color:var(--color-success);background:color-mix(in oklab, var(--color-success) 12%, var(--ld-tile-bg))}.ld-mtile.is-just .py{color:var(--color-success)}.ld-mtile.is-just:before{content:"";background:linear-gradient(105deg, transparent 40%, color-mix(in oklab, var(--color-success) 35%, transparent) 50%, transparent 60%);animation:ld-sweep .52s var(--ease-standard) 1;position:absolute;inset:-20% -60%}@keyframes ld-sweep{0%{transform:translate(-60%)}to{transform:translate(60%)}}.ld-mtile.is-just .ld-star{background:var(--color-success);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);width:10px;height:10px;animation:ld-twinkle .6s var(--ease-emphasized) 1;position:absolute}.ld-mtile .ld-star:first-child{top:6px;left:8px}.ld-mtile .ld-star:nth-child(2){animation-delay:80ms;bottom:6px;right:8px}.ld-mtile.is-done{opacity:.32;pointer-events:none;border-bottom-width:2px;margin-bottom:2px}.ld-mtile.is-miss{border-color:var(--color-error);color:var(--color-error);background:color-mix(in oklab, var(--color-error) 10%, var(--ld-tile-bg));animation:ld-shake .38s var(--ease-standard) 1}@keyframes ld-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.ld-kombo{z-index:8;font-family:var(--font-manrope), Noto Sans SC, sans-serif;letter-spacing:.02em;color:var(--ld-amber);-webkit-text-stroke:2px var(--ld-amber-deep);paint-order:stroke fill;text-shadow:0 4px 0 var(--ld-amber-deep);pointer-events:none;white-space:nowrap;font-size:40px;font-weight:900;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.ld-bottom{z-index:20;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--color-surface) 70%, transparent);pointer-events:none;position:fixed;bottom:0;left:0;right:0}.ld-bottom>*{pointer-events:auto}.ld-bottom-inner{max-width:560px;margin:0 auto}.ld-cta{width:100%;height:52px;font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--color-on-success);background:var(--color-success);box-shadow:0 4px 0 var(--ld-success-deep);transition:transform var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), background var(--duration-base) var(--ease-standard), color var(--duration-base) var(--ease-standard);border-radius:14px;font-size:16px;font-weight:700}.ld-cta:active:not(:disabled){box-shadow:0 0 0 var(--ld-success-deep);transform:translateY(4px)}.ld-cta:disabled{background:var(--ld-ghost);color:var(--ld-muted);box-shadow:none;cursor:default;opacity:1}.ld-cta--danger{color:var(--color-on-error);background:var(--color-error);box-shadow:0 4px 0 var(--ld-error-deep)}.ld-cta--danger:active:not(:disabled){box-shadow:0 0 0 var(--ld-error-deep)}.ld-cta--ghost{color:var(--color-success);border:2px solid var(--color-success);box-shadow:0 4px 0 var(--color-success);background:0 0;height:48px}.ld-cta--ghost:active{box-shadow:0 0 0 var(--color-success);transform:translateY(4px)}.ld-cta--ghost.is-wrong{color:var(--color-error);border-color:var(--color-error);box-shadow:0 4px 0 var(--color-error)}.ld-cta--ghost.is-wrong:active{box-shadow:0 0 0 var(--color-error)}.ld-cta--info{color:#fff;background:#1f8ee8;box-shadow:0 4px #1565b0}.ld-cta--info:active{box-shadow:0 0 #1565b0}.ld-sheet{z-index:25;padding:18px 16px calc(16px + env(safe-area-inset-bottom));background:var(--color-success-container);color:var(--color-on-success-container);border-top-left-radius:0;border-top-right-radius:0;position:fixed;bottom:0;left:0;right:0}.ld-sheet.is-wrong{background:var(--color-error-container);color:var(--color-on-error-container)}.ld-sheet-inner{flex-direction:column;gap:12px;max-width:560px;margin:0 auto;display:flex}.ld-sheet-head{align-items:center;gap:10px;display:flex}.ld-sheet-title{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--color-success);flex:1;align-items:center;gap:10px;font-size:22px;font-weight:800;display:flex}.is-wrong .ld-sheet-title{color:var(--color-error)}.ld-sheet-title .ld-badge{background:var(--color-success);width:30px;height:30px;color:var(--color-on-success);border-radius:999px;place-items:center;display:grid}.is-wrong .ld-sheet-title .ld-badge{background:var(--color-error);color:var(--color-on-error)}.ld-sheet-actions{gap:6px;display:flex}.ld-sheet-actions .ld-icon-btn{color:var(--color-success)}.is-wrong .ld-sheet-actions .ld-icon-btn{color:var(--color-error)}.ld-sheet-sub{margin-top:-4px;font-size:15px;font-weight:600}.ld-sheet-sub .zh{font-family:var(--ld-hanzi);font-size:18px}.is-wrong .ld-sheet-sub{color:var(--color-error)}.ld-toast{z-index:40;width:fit-content;max-width:528px;left:16px;right:16px;bottom:calc(190px + env(safe-area-inset-bottom));background:var(--color-inverse-surface);color:var(--color-inverse-on-surface);text-align:center;box-shadow:var(--shadow-e2);border-radius:12px;margin:0 auto;padding:10px 16px;font-size:14px;font-weight:600;position:fixed}.ld-inter{z-index:50;background:var(--color-surface);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ld-inter-inner{align-items:center;gap:10px;max-width:560px;padding:0 24px;display:flex}.ld-inter img{object-fit:contain;width:150px;height:150px}.ld-inter .ld-inter-loop{flex:0 0 150px;width:150px;height:150px}.ld-inter .ld-bubble{font-size:16px;font-weight:600}.ld-done{z-index:60;text-align:center;background:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:hidden}.ld-done-glow{background:radial-gradient(60% 50% at 50% 40%, color-mix(in oklab, var(--color-success) 22%, transparent), transparent 70%);pointer-events:none;position:absolute;inset:0}.ld-done img{object-fit:contain;width:240px;height:240px;animation:2.6s ease-in-out infinite ld-float}@keyframes ld-float{50%{transform:translateY(-10px)}}.ld-done-title{font-family:var(--font-manrope), Noto Sans SC, sans-serif;letter-spacing:-.02em;color:var(--color-success);margin-top:8px;font-size:40px;font-weight:900;line-height:1.05}.ld-done-title.is-amber{color:var(--ld-amber)}.ld-done-sub{color:var(--ld-muted);max-width:300px;margin-top:10px;font-size:16px}.ld-stats{gap:12px;margin-top:28px;display:flex}.ld-stat{border:2px solid var(--ld-amber);background:var(--ld-tile-bg);border-radius:16px;min-width:120px;overflow:hidden}.ld-stat.is-green{border-color:var(--color-success)}.ld-stat .lbl{font-family:var(--font-manrope), Noto Sans SC, sans-serif;background:var(--ld-amber);color:#fff;padding:5px;font-size:12px;font-weight:600}.ld-stat.is-green .lbl{background:var(--color-success);color:var(--color-on-success)}.ld-stat .val{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-amber);padding:14px 8px;font-size:22px;font-weight:800}.ld-stat.is-green .val{color:var(--color-success)}.ld-done .ld-bottom{background:0 0}.ld-confetti{opacity:.9;border-radius:2px;width:8px;height:14px;animation:2.8s linear infinite ld-confetti;position:absolute;top:-12px}@keyframes ld-confetti{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:1}to{opacity:.6;transform:translateY(110vh)rotate(720deg)}}@media (prefers-reduced-motion:reduce){.ld-char img,.ld-done img,.ld-confetti,.ld-spark{animation:none}}.ld-list{flex-direction:column;gap:12px;padding-bottom:24px;display:flex}.ld-list-crumb{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-muted);align-items:center;gap:4px;font-size:15px;font-weight:600;display:inline-flex}.ld-list-card{background:linear-gradient(#fffaf1 0%,#f8efe0 100%);border-radius:24px;padding:16px 16px 14px;position:relative;box-shadow:inset 0 0 0 1px #c99a124d}.ld-root.dark .ld-list-card{background:linear-gradient(180deg, color-mix(in oklab, #f8efe0 10%, var(--ld-tile-bg)) 0%, var(--ld-tile-bg) 100%)}.ld-list-head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.ld-list-head-text{min-width:0}.ld-list-head .ld-list-wave{flex:0 0 84px;width:84px;height:84px;margin:-8px 0 -6px}.ld-list-wave img{object-fit:contain;object-position:bottom;width:100%;height:100%;display:block}.ld-list-kicker{color:var(--ld-muted);font-size:13px;line-height:18px}.ld-list-title{font-family:var(--font-manrope), Noto Sans SC, sans-serif;letter-spacing:-.01em;margin:2px 0 0;font-size:22px;font-weight:700;line-height:28px}.ld-list-sub{color:var(--ld-muted);margin:2px 0 0;font-size:13px;line-height:18px}.ld-coins{background:#c99a1212;border-radius:16px;justify-content:center;align-items:center;margin-top:14px;padding:10px 0;display:flex}.ld-coins-step{align-items:center;display:flex}.ld-coins-link{background:color-mix(in oklab, var(--ld-muted) 22%, transparent);width:14px;height:2px}.ld-coins-link.is-on{background:#d7a77c}.ld-coin{box-sizing:border-box;border-radius:999px;flex-shrink:0;display:block}.ld-coin.is-perunggu{--c1:#fbe0c2;--c2:#d7955c;--c3:#a4632f;--c4:#7d4a22;--ring:#a4632f;--pale:#f6ebe0;--pale-line:#ead3bd}.ld-coin.is-perak{--c1:#fff;--c2:#dfe3e7;--c3:#aeb7bf;--c4:#8a949d;--ring:#8f9aa4;--pale:#f1f3f5;--pale-line:#dde2e6}.ld-coin.is-emas{--c1:#fff4c4;--c2:#f0c542;--c3:#c99a12;--c4:#9c7408;--ring:#c99a12;--pale:#f6f0df;--pale-line:#ece0bd}.ld-coin.is-rubi{--c1:#ffd0da;--c2:#e2536f;--c3:#b0243f;--c4:#7e1229;--ring:#c2385a;--pale:#f8eaed;--pale-line:#efd2d8}.ld-coin.is-earned{background:radial-gradient(circle at 34% 28%, var(--c1) 0, var(--c2) 42%, var(--c3) 78%, var(--c4) 100%);box-shadow:inset 0 0 0 2px #fff0dc73,0 1px 3px #3c28144d}.ld-coin.is-current{background:radial-gradient(circle, var(--pale) 0 58%, transparent 59%), conic-gradient(var(--ring) 0 var(--p), var(--pale-line) var(--p) 100%)}.ld-coin.is-later{background:var(--pale);border:1.5px solid var(--pale-line)}.ld-coin.is-current{box-shadow:0 0 0 1.5px var(--ring)}.ld-root.dark .ld-coin.is-later{background:#ffffff0f;border-color:#ffffff29}.ld-root.dark .ld-coin.is-current{background:radial-gradient(circle, var(--ld-tile-bg) 0 58%, transparent 59%), conic-gradient(var(--ring) 0 var(--p), #ffffff24 var(--p) 100%)}.ld-root.dark .ld-coins{background:#ffffff0a}.ld-tourrow{text-align:left;background:var(--ld-tile-bg);width:100%;color:var(--color-on-surface);border-radius:16px;align-items:center;gap:10px;padding:12px 14px;font-size:15px;line-height:20px;display:flex;box-shadow:0 1px 2px #9b2e300a,0 4px 14px #1b1c190d}.ld-tourrow svg{color:#c99a12;flex-shrink:0;width:20px;height:20px}.ld-tourrow>span:first-of-type{flex-grow:1}.ld-tourrow-meta{color:var(--ld-muted);font-size:13px}.ld-block{flex-direction:column;gap:8px;margin-top:8px;display:flex}.ld-block-head{align-items:center;gap:10px;padding:0 4px;display:flex}.ld-block-title{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--color-on-surface);flex-grow:1;margin:0;font-size:17px;font-weight:700;line-height:22px}.ld-block-status{color:var(--ld-muted);font-size:13px}.ld-block-card{background:var(--ld-tile-bg);border-radius:20px;flex-direction:column;gap:2px;padding:6px;display:flex;box-shadow:0 1px 2px #9b2e300a,0 4px 14px #1b1c190d}.ld-setrow{text-align:left;width:100%;color:var(--color-on-surface);transition:background var(--duration-fast) var(--ease-standard);background:0 0;border-radius:14px;align-items:center;gap:12px;padding:10px 10px 10px 8px;display:flex}.ld-setrow.is-next{background:#fffaf1;box-shadow:inset 0 0 0 1px #c99a124d}.ld-root.dark .ld-setrow.is-next{background:color-mix(in oklab, #f8efe0 8%, var(--ld-tile-bg))}.ld-setno{background:var(--ld-ghost);width:40px;height:40px;font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-muted);border-radius:12px;flex:0 0 40px;place-items:center;font-size:17px;font-weight:700;display:grid}.ld-setno .zh{font-family:var(--ld-hanzi);font-size:19px}.is-baca .ld-setno{background:color-mix(in oklab, #1f8ee8 14%, var(--ld-tile-bg));color:#1f8ee8}.is-dengar .ld-setno{background:color-mix(in oklab, #7c3aed 14%, var(--ld-tile-bg));color:#7c3aed}.is-tulis .ld-setno{background:color-mix(in oklab, var(--ld-amber) 20%, var(--ld-tile-bg));color:var(--ld-amber-deep)}.is-bicara .ld-setno{background:color-mix(in oklab, var(--color-success) 14%, var(--ld-tile-bg));color:var(--color-success)}.is-ulasan .ld-setno{background:color-mix(in oklab, var(--color-primary) 12%, var(--ld-tile-bg));color:var(--color-primary)}.is-rubi .ld-setno{color:#fff;background:linear-gradient(135deg,#e63950,#9b2e30)}.ld-setbody{flex-direction:column;flex-grow:1;gap:2px;min-width:0;display:flex}.ld-setbody b{font-family:var(--font-inter), Noto Sans SC, system-ui, sans-serif;flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;font-weight:600;line-height:20px;display:flex}.ld-setbody span{color:var(--ld-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:18px;display:-webkit-box;overflow:hidden}.ld-setbody b .ld-tag{display:inline-flex}.ld-setdone{background:var(--color-success);width:24px;height:24px;color:var(--color-on-success,#fff);border-radius:999px;flex:0 0 24px;place-items:center;display:grid}.ld-setdone svg{width:14px;height:14px}.ld-setrow.is-locked{opacity:.55;cursor:default}.ld-setlock{color:var(--ld-muted);flex:0 0 24px;place-items:center;display:grid}.ld-setlock svg{width:18px;height:18px}.ld-setplay{background:var(--color-primary);width:40px;height:40px;color:var(--color-on-primary,#fff);border-radius:999px;flex:0 0 40px;place-items:center;display:grid}.ld-tag{color:var(--ld-amber-deep);background:color-mix(in oklab, var(--ld-amber) 20%, var(--ld-tile-bg));border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.ld-tag svg{width:12px;height:12px}.ld-list-foot{color:var(--ld-muted);text-align:center;margin-top:14px;font-size:12px}.ld-retry.is-rubi{color:#e63950}.ld-root{--ld-new:#8b5cf6}.ld-root.dark{--ld-new:#b794ff}.ld-kata-baru{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-new);align-items:center;gap:5px;margin-top:10px;font-size:13px;font-weight:600;display:inline-flex}.ld-kata-baru+.ld-h1{margin-top:6px}.ld-word.is-new .zh{color:var(--ld-new)}.ld-word.is-new{border-bottom:2px dashed var(--ld-new)}.ld-stim-word{cursor:pointer;align-items:center;gap:12px;margin:2px 0 6px;display:flex}.ld-stim-word .ld-speak{flex:none;margin-top:0}.ld-ruby{flex-direction:column;align-items:flex-start;line-height:1.1;display:inline-flex}.ld-ruby .py{color:var(--ld-muted);font-size:13px}.ld-ruby .zh{font-family:var(--ld-hanzi);color:var(--ld-new);border-bottom:2px dashed var(--ld-new);white-space:nowrap;font-size:28px;font-weight:600}.ld-opts.is-pics{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.is-pics .ld-opt{justify-content:space-between;gap:8px;min-height:150px;padding:12px 10px 10px}.ld-pic{aspect-ratio:1;object-fit:contain;pointer-events:none;width:100%;max-width:108px;margin:auto 0}.ld-pic-cap{color:var(--ld-muted);font-size:15px;font-weight:600}.ld-opt.is-selected .ld-pic-cap,.ld-opt.is-correct .ld-pic-cap{color:inherit}.ld-h2{font-family:var(--font-manrope), Noto Sans SC, sans-serif;margin:6px 0 14px;font-size:17px;font-weight:700;line-height:1.25}.ld-char.is-lg{flex-basis:150px;width:150px;height:170px;margin:6px auto 0}.ld-scene.is-center{justify-content:center;min-height:0}.ld-scene.is-center .ld-bubble:before,.ld-scene.is-center .ld-bubble:after,.ld-bubble.no-tail:before,.ld-bubble.no-tail:after{display:none}.ld-speak.is-big{color:#fff;background:#1f8ee8;border-radius:18px;width:64px;height:64px;margin:0;box-shadow:0 4px #1565b0}.ld-speak.is-big svg{width:34px;height:34px}.ld-stim{flex-direction:column;align-items:center;gap:10px;margin:4px 0 10px;display:flex}.ld-hanzi-card{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);border-bottom-width:4px;border-radius:20px;place-items:center;width:132px;height:132px;display:grid}.ld-hanzi-card .zh{font-family:var(--ld-hanzi);font-size:64px;line-height:1}.ld-stim-sub{color:var(--ld-muted);align-items:center;gap:8px;font-size:14px;display:flex}.ld-stim-sub .ld-speak{margin-top:0}.ld-stim-sub .py{font-size:15px}.ld-stim-text{text-align:center;padding:8px 0;font-size:20px;font-weight:600}.ld-audio-big{place-items:center;display:grid}.ld-opts{gap:10px;margin-top:auto;padding-top:14px;display:grid}.ld-opts.is-list{grid-template-columns:1fr}.ld-opts.is-grid{grid-template-columns:1fr 1fr}.ld-opts.is-grid3{grid-template-columns:1fr 1fr;margin-top:8px}.ld-opts.is-tf{grid-template-columns:1fr 1fr}.ld-opt{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);min-height:52px;color:var(--color-on-surface);text-align:center;transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);border-bottom-width:4px;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:12px 14px;font-size:16px;font-weight:600;display:flex;position:relative}.ld-opt:active:not(:disabled){border-bottom-width:2px;margin-bottom:2px;transform:translateY(2px)}.ld-opt .py{color:var(--ld-muted);font-size:11px;font-weight:500}.ld-opt .zh{font-family:var(--ld-hanzi);font-size:20px;font-weight:500}.is-grid .ld-opt{min-height:104px}.is-grid .ld-opt .zh{font-size:44px}.is-grid3 .ld-opt{min-height:74px}.is-grid3 .ld-opt .zh{font-size:34px}.ld-opt.is-selected{border-color:var(--ld-select);background:var(--ld-select-tint);color:var(--ld-select)}.ld-opt.is-selected .py{color:var(--ld-select)}.ld-opt.is-correct{border-color:var(--color-success);color:var(--color-success);background:color-mix(in oklab, var(--color-success) 12%, var(--ld-tile-bg))}.ld-opt.is-wrong{border-color:var(--color-error);color:var(--color-error);background:color-mix(in oklab, var(--color-error) 10%, var(--ld-tile-bg));animation:ld-shake .38s var(--ease-standard) 1}.ld-opt:disabled{cursor:default}.is-tf .ld-opt{min-height:84px}.ld-tf{font-size:36px;font-weight:800;line-height:1}.ld-tf.is-yes{color:var(--color-success)}.ld-tf.is-no{color:var(--color-error)}.ld-opt.is-selected .ld-tf{color:var(--ld-select)}.ld-story{flex-direction:column;gap:12px;padding-bottom:8px;display:flex}.ld-story-title{font-family:var(--font-manrope), Noto Sans SC, sans-serif;align-items:center;gap:6px;margin-top:-8px;font-size:17px;font-weight:800;display:flex}.ld-story-title .ld-speak{margin-top:0}.ld-narr{color:var(--ld-muted);transition:opacity var(--duration-slow) var(--ease-standard);margin:2px 0;font-size:14px}.ld-line{transition:opacity var(--duration-slow) var(--ease-standard);align-items:flex-start;gap:8px;display:flex}.ld-line .ld-bubble{align-self:flex-start;padding:8px 12px;font-size:16px}.ld-line .ld-speak{width:26px;height:26px;margin-top:4px}.ld-line .ld-word .zh{font-size:18px}.ld-line.is-dim,.ld-narr.is-dim{opacity:.45}.ld-avatar{width:34px;height:34px;font-family:var(--ld-hanzi);color:#fff;background:var(--color-primary);border-radius:999px;flex:0 0 34px;place-items:center;margin-top:4px;font-size:15px;font-weight:700;display:grid}.ld-avatar.is-xiaoling{background:#1f8ee8}.ld-story-q{border-top:2px dashed var(--ld-line);margin-top:6px;padding-top:12px}.ld-story-q .ld-opts{margin-top:0;padding-top:0}.ld-write{flex-direction:column;align-items:center;gap:10px;display:flex}.ld-write-head{align-self:stretch;align-items:center;gap:8px;font-size:15px;display:flex}.ld-write-head .ld-speak{margin-top:0}.ld-write-target b{font-weight:800}.ld-write-target .py{color:var(--ld-muted);margin-left:4px}.ld-grid-box{aspect-ratio:1;border:2px dashed var(--ld-line);background:linear-gradient(var(--ld-line), var(--ld-line)) center / 100% 1px no-repeat, linear-gradient(var(--ld-line), var(--ld-line)) center / 1px 100% no-repeat, var(--ld-tile-bg);touch-action:none;width:min(100%,260px);transition:border-color var(--duration-base) var(--ease-standard);border-radius:18px;position:relative}.ld-grid-box.is-done{border-style:solid;border-color:var(--color-success)}.ld-grid-box.is-locked{pointer-events:none}.ld-writer{place-items:center;display:grid;position:absolute;inset:0}.ld-writer svg{display:block}.ld-write-note{color:var(--ld-muted);text-align:center;place-items:center;padding:16px;font-size:13px;display:grid;position:absolute;inset:0}.ld-write-note button{color:var(--color-primary);margin-left:6px;font-weight:700}.ld-write-foot{color:var(--ld-muted);min-height:18px;font-size:13px}.ld-write-foot .is-ok{color:var(--color-success);font-weight:700}.ld-write-word{letter-spacing:.02em;align-items:flex-end;font-size:20px;display:inline-flex}.ld-write-word .is-target{color:var(--color-primary)}.ld-write-word .is-blank{border-bottom:2px solid;width:1em;height:1em;margin:0 .1em;display:inline-block;position:relative;transform:translateY(-.12em)}.ld-write-word .is-blank .py{font-family:var(--font-sans,inherit);color:var(--color-primary);white-space:nowrap;font-size:12px;font-weight:600;position:absolute;bottom:.15em;left:50%;transform:translate(-50%)}.ld-write-mean{color:var(--ld-muted);font-size:14px}.ld-write-guide-layer{pointer-events:none}.ld-write-guide{animation:ld-guide-in .18s var(--ease-standard) both;display:block;overflow:visible}.ld-write-guide-path{fill:none;stroke:var(--color-primary);stroke-width:3px;stroke-dasharray:6 6;stroke-linecap:round;stroke-linejoin:round}.ld-write-guide-head{fill:none;stroke:var(--color-primary);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.ld-write-guide-dot{fill:var(--color-primary)}.ld-write-guide-arrow{fill:none;stroke:var(--color-on-primary);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}@keyframes ld-guide-in{0%{opacity:0}to{opacity:1}}.ld-chips{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.ld-chip{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);min-width:44px;color:var(--color-on-surface);text-align:center;border-bottom-width:4px;border-radius:12px;padding:8px 12px;font-size:18px}.ld-chip.zh{font-family:var(--ld-hanzi);font-size:22px}.ld-chip.is-btn:active:not(:disabled){border-bottom-width:2px;margin-bottom:2px;transform:translateY(2px)}.ld-chip:disabled{opacity:.5}.ld-type{flex-direction:column;gap:12px;display:flex}.ld-type-prompt{justify-content:center;align-items:center;gap:10px;padding:6px 0;display:flex}.ld-type-prompt .ld-speak{margin-top:0}.ld-type-prompt .zh{font-family:var(--ld-hanzi);font-size:44px;line-height:1.1}.ld-type-id{font-size:22px;font-weight:700}.ld-type-field{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);transition:border-color var(--duration-fast) var(--ease-standard);border-radius:16px;padding:4px}.ld-type-field:focus-within{border-color:var(--ld-select)}.ld-type-field.is-correct{border-color:var(--color-success)}.ld-type-field.is-wrong{border-color:var(--color-error)}.ld-type-field input{width:100%;min-height:96px;color:var(--color-on-surface);font-family:var(--ld-hanzi);-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:0;padding:12px 14px;font-size:30px}.ld-type-field input::placeholder{font-family:var(--font-inter), Noto Sans SC, system-ui, sans-serif;color:var(--ld-muted);font-size:16px}.ld-speakview{flex-direction:column;align-items:center;gap:8px;display:flex}.ld-mic{color:#fff;width:132px;height:64px;transition:background var(--duration-fast) var(--ease-standard);background:#1f8ee8;border-radius:18px;place-items:center;margin-top:14px;display:grid;position:relative;box-shadow:0 5px #1565b0}.ld-mic.is-rec{background:var(--color-error);box-shadow:0 5px 0 var(--ld-error-deep);animation:.9s ease-in-out infinite ld-pulse}.ld-mic.is-done{background:var(--color-success);box-shadow:0 5px 0 var(--ld-success-deep)}.ld-mic:disabled{opacity:.6}.ld-mic-time{color:var(--color-error);font-size:12px;font-weight:700;position:absolute;bottom:-22px}.ld-mic-note{color:var(--ld-muted);text-align:center;max-width:300px;margin-top:18px;font-size:13px}.ld-skip{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-muted);margin-top:6px;padding:8px 12px;font-size:13px;font-weight:600}.ld-lock{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);text-align:center;color:var(--ld-muted);border-radius:16px;flex-direction:column;align-items:center;gap:6px;max-width:340px;margin-top:10px;padding:16px;font-size:13px;display:flex}.ld-lock b{color:var(--color-on-surface);font-size:15px}.ld-lock-ico{background:color-mix(in oklab, var(--ld-amber) 22%, var(--ld-tile-bg));width:40px;height:40px;color:var(--ld-amber-deep);border-radius:12px;place-items:center;display:grid}.ld-lock .ld-cta--ghost{width:auto;min-width:160px}.ld-mtile.is-audio{color:#1f8ee8}.ld-mtile-spk{place-items:center;display:grid}.ld-mtile-spk svg{width:28px;height:28px}.ld-tile,.ld-mtile,.ld-opt,.ld-chip,.ld-setrow{transition:border-color .18s var(--ease-emphasized), color .18s var(--ease-emphasized), background .18s var(--ease-emphasized), box-shadow .18s var(--ease-emphasized), opacity .26s var(--ease-standard);will-change:transform}.ld-tile:active:not(:disabled),.ld-mtile:active:not(:disabled),.ld-opt:active:not(:disabled),.ld-chip.is-btn:active:not(:disabled),.ld-setrow:active{transition-duration:60ms}@keyframes ld-pop{0%{transform:scale(1)}40%{transform:scale(1.06)}to{transform:scale(1)}}.ld-opt.is-correct,.ld-tile.is-correct,.ld-type-field.is-correct,.ld-grid-box.is-done{animation:ld-pop .36s var(--ease-emphasized) 1}@keyframes ld-cta-in{0%{transform:translateY(2px)scale(.985)}to{transform:none}}.ld-cta:not(:disabled){animation:ld-cta-in .22s var(--ease-emphasized) 1}.ld-cta{transition:transform 90ms var(--ease-standard), box-shadow 90ms var(--ease-standard), background .22s var(--ease-emphasized), color .22s var(--ease-emphasized)}.ld-hanzi-card{transition:transform .16s var(--ease-emphasized)}.ld-hanzi-card:active{transform:scale(.96)}.ld-speak{transition:transform .14s var(--ease-emphasized), background .14s var(--ease-standard)}.ld-speak:active{transform:scale(.9)}.ld-hint{animation:ld-hint-in .16s var(--ease-emphasized) 1}@keyframes ld-hint-in{0%{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%)}}.ld-line.is-dim,.ld-narr.is-dim{transition:opacity .42s var(--ease-standard)}.ld-fill{transition:background .32s var(--ease-emphasized)}.ld-mic{transition:transform .12s var(--ease-emphasized), background .2s var(--ease-standard), box-shadow .12s var(--ease-standard)}.ld-mic:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #1565b0}@media (prefers-reduced-motion:reduce){.ld-opt,.ld-tile,.ld-cta,.ld-hanzi-card,.ld-type-field,.ld-grid-box,.ld-hint{animation:none!important}}.ld-chat{flex-direction:column;gap:10px;padding-bottom:6px;display:flex}.ld-chat-turn{flex-direction:column;gap:10px;display:flex}.ld-chat-row{align-items:flex-end;gap:8px;display:flex}.ld-chat-row.is-out{justify-content:flex-end}.ld-chat-bubble{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);border-radius:16px;flex-direction:column;gap:4px;max-width:88%;padding:8px 12px 6px;display:flex}.ld-chat-bubble.is-in{border-bottom-left-radius:4px}.ld-chat-bubble.is-out{border-color:color-mix(in oklab, var(--color-primary) 40%, var(--ld-tile-border));background:var(--ld-select-tint);border-bottom-right-radius:4px;min-width:60%}.ld-chat-bubble.is-out.is-done{opacity:.8;min-width:0}.ld-chat-bubble.is-out.is-correct{border-color:var(--color-success);background:color-mix(in oklab, var(--color-success) 10%, var(--ld-tile-bg))}.ld-chat-bubble.is-out.is-wrong{border-color:var(--color-error);background:color-mix(in oklab, var(--color-error) 10%, var(--ld-tile-bg))}.ld-chat-line{align-items:flex-start;gap:6px;display:flex}.ld-chat-line .ld-speak{width:26px;height:26px;margin-top:4px}.ld-chat-line .ld-word .zh{font-size:18px}.ld-chat-idn{color:var(--ld-muted);font-size:12px}.ld-chat-idn.is-out{text-align:right}.ld-chat-compose{flex-wrap:wrap;align-items:center;gap:6px;min-height:46px;display:flex}.ld-chat-placeholder{color:var(--ld-muted);font-size:14px;font-style:italic}.ld-bank-chat{padding-top:16px}.ld-root .ld-tile{transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard)}.ld-root .ld-opt,.ld-root .ld-mtile,.ld-root .ld-chip,.ld-root .ld-setrow{transition:border-color .18s var(--ease-emphasized), color .18s var(--ease-emphasized), background .18s var(--ease-emphasized), box-shadow .18s var(--ease-emphasized), opacity .26s var(--ease-standard)}.ld-root button:not(:disabled):active{transform:none}.ld-root .ld-drag{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:grab}.ld-root.ld-drag-layer{pointer-events:none;z-index:2000;background:0 0;min-height:0;position:fixed;inset:0}.ld-root .ld-tile.is-lifted{cursor:grabbing;box-shadow:0 14px 30px color-mix(in oklab, var(--color-on-surface) 22%, transparent), 0 2px 0 var(--ld-tile-border);will-change:transform;transition:none}.ld-root .ld-dropgap{border-style:dashed;border-color:color-mix(in oklab, var(--ld-select) 55%, var(--ld-tile-border));background:color-mix(in oklab, var(--ld-select) 7%, transparent);color:#0000;cursor:default}.ld-root .ld-dropgap .py{color:#0000}.ld-root .ld-blank.is-target{border-color:var(--ld-select);background:color-mix(in oklab, var(--ld-select) 9%, transparent);transition:background .12s var(--ease-standard), border-color .12s var(--ease-standard);border-radius:8px 8px 0 0}.ld-root{--color-success:#2f7d5b;--color-on-success:#fff;--color-success-container:#e6f3ea;--color-on-success-container:#1f5a40;--ld-success-deep:#1f5a40;--color-error:#b3262a;--color-on-error:#fff;--color-error-container:#fbe9e6;--color-on-error-container:#7a1e20;--ld-error-deep:#7a1a1c;--ld-crimson:#9b2e30;--ld-crimson-deep:#6f1e20;--ld-gold:#e0a526;--ld-gold-edge:#f0c24b99;--ld-tile-bg:#fffdf8;--ld-tile-border:#e6d9c6;--ld-track:#efe5d6;--ld-lantern-bg:#fff4e8;--ld-lantern-border:#f0d9bd}.ld-root.dark{--color-success:#5fbf93;--color-on-success:#0f2a1f;--color-success-container:#173529;--color-on-success-container:#bfe8d3;--ld-success-deep:#2f7d5b;--color-error:#ef8783;--color-on-error:#3a0d0e;--color-error-container:#3b1a19;--color-on-error-container:#ffd8d4;--ld-error-deep:#b3262a;--ld-crimson:#b33a3c;--ld-crimson-deep:#7a2324;--ld-track:var(--color-surface-container-highest);--ld-lantern-bg:color-mix(in oklab, #b3262a 16%, var(--color-surface));--ld-lantern-border:color-mix(in oklab, #b3262a 35%, var(--color-surface))}.ld-root .ld-cta{letter-spacing:.01em;text-transform:none;color:#fff;background:var(--ld-crimson);height:54px;box-shadow:0 4px 0 var(--ld-crimson-deep), inset 0 0 0 2px var(--ld-gold-edge);border-radius:16px;font-size:17px}.ld-root .ld-cta:active:not(:disabled){box-shadow:0 0 0 var(--ld-crimson-deep), inset 0 0 0 2px var(--ld-gold-edge);transform:translateY(4px)}.ld-root .ld-cta:disabled{background:var(--ld-ghost);color:var(--ld-muted);box-shadow:none}.ld-root .ld-sheet:not(.is-wrong) .ld-cta:not(.ld-cta--ghost){background:var(--color-success);color:var(--color-on-success);box-shadow:0 4px 0 var(--ld-success-deep), inset 0 0 0 2px var(--ld-gold-edge)}.ld-root .ld-sheet:not(.is-wrong) .ld-cta:not(.ld-cta--ghost):active{box-shadow:0 0 0 var(--ld-success-deep), inset 0 0 0 2px var(--ld-gold-edge)}.ld-root .ld-cta--danger{background:var(--ld-crimson);color:#fff;box-shadow:0 4px 0 var(--ld-crimson-deep), inset 0 0 0 2px var(--ld-gold-edge)}.ld-root .ld-cta--ghost{height:48px;color:var(--color-success);border:2px solid var(--color-success);box-shadow:0 4px 0 var(--color-success);background:0 0}.ld-root .ld-cta--ghost.is-wrong{color:var(--color-error);border-color:var(--color-error);box-shadow:0 4px 0 var(--color-error)}.ld-root .ld-cta--info{background:#1f8ee8;box-shadow:0 4px #1565b0}.ld-root .ld-track{background:var(--ld-track);height:12px}.ld-root .ld-fill{background:linear-gradient(90deg, var(--ld-crimson), #b3262a 78%, var(--ld-gold));min-width:14px}.ld-root .ld-fill.is-combo{background:linear-gradient(90deg,#b3262a,#d4691c 60%,#f0c24b)}.ld-root .ld-fill:after{background:var(--ld-gold);border-radius:50%;width:14px;height:14px;top:50%;left:auto;right:-4px;transform:translateY(-50%);box-shadow:0 0 0 4px #f0c24b47,0 0 12px #f0c24b8c}.ld-root .ld-spark,.ld-root .is-combo~.ld-spark{background:var(--ld-gold)}.ld-lantern{background:var(--ld-lantern-bg);border:1px solid var(--ld-lantern-border);height:34px;font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:#b3262a;border-radius:999px;align-items:center;gap:4px;padding:0 10px 0 6px;font-size:15px;font-weight:800;display:flex}.ld-root.dark .ld-lantern{color:#ffb4ae}.ld-lantern svg{transition:filter .3s var(--ease-standard)}.ld-lantern.is-lit svg{filter:drop-shadow(0 0 6px #ffbe46bf)}.ld-root .ld-sheet{box-shadow:0 -8px 24px color-mix(in oklab, var(--color-success) 22%, transparent);border-radius:28px 28px 0 0}.ld-root .ld-sheet.is-wrong{background:radial-gradient(60% 90% at 100% 0%, color-mix(in oklab, var(--color-error) 16%, transparent), transparent 70%), var(--color-error-container);box-shadow:0 -8px 24px color-mix(in oklab, var(--color-error) 20%, transparent)}.ld-root .is-wrong .ld-sheet-title{color:var(--color-on-error-container)}.ld-seal{background:var(--color-success);color:#fdf8ec;width:42px;height:42px;font-family:var(--ld-hanzi);box-shadow:inset 0 0 0 2px var(--color-success), inset 0 0 0 4px #fdf8ecb3;border-radius:8px;flex:none;place-items:center;font-size:25px;font-weight:900;line-height:1;display:grid}.ld-root.dark .ld-seal{color:#0f2a1f;box-shadow:inset 0 0 0 2px var(--color-success), inset 0 0 0 4px #0f2a1f80}.ld-sheet-answer{flex-direction:column;gap:2px;margin-top:-4px;display:flex}.ld-sheet-label{color:var(--color-on-error-container);opacity:.85;font-size:13px;font-weight:600}.ld-sheet-correct{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--color-on-surface);font-size:20px;font-weight:800}.ld-sheet-correct.zh{font-family:var(--ld-hanzi);font-size:28px;font-weight:900}.ld-brush{width:200px;max-width:70%;height:10px;overflow:visible}.ld-brush path{fill:none;stroke:var(--color-error);stroke-width:4px;stroke-linecap:round;opacity:.75}.ld-root{background-image:url(/texture/paper-grain-light.png);background-size:256px 256px;background-attachment:fixed}.ld-root.dark{background-image:url(/texture/paper-grain-dark.png)}.ld-root .ld-bottom:before{content:"";z-index:-1;pointer-events:none;background:url(/texture/paper-grain-light.png) 0 0/256px 256px fixed;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 30%);mask-image:linear-gradient(#0000,#000 30%)}.ld-root.dark .ld-bottom:before{background-image:url(/texture/paper-grain-dark.png)}.ld-root.ld-drag-layer,.ld-root.dark.ld-drag-layer{background-image:none}.ld-loop{background:bottom/contain no-repeat;width:100%;height:100%;display:block}.ld-char .ld-loop img{animation:none}.ld-char .ld-loop{aspect-ratio:1;width:100%;height:auto}.ld-intro{flex-direction:column;align-items:center;gap:14px;margin:6px 0 10px;display:flex}.ld-intro-word{justify-content:center;align-items:center;gap:16px;display:flex}.ld-intro-hanzi{flex-direction:column;align-items:center;gap:10px;display:flex}.ld-intro .ld-hanzi-card{cursor:pointer;color:inherit;padding:0}.ld-intro-pic{object-fit:contain;cursor:pointer;width:132px;height:132px}.ld-intro.has-pic .ld-hanzi-card{height:112px}.ld-intro.has-pic .ld-hanzi-card .zh{font-size:52px}.ld-intro .ld-hanzi-card{width:auto;min-width:132px;padding:0 14px}.ld-intro.has-pic .ld-hanzi-card{min-width:112px;padding:0 10px}.ld-intro-meaning{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.ld-intro-label{font-family:var(--font-manrope), Noto Sans SC, sans-serif;color:var(--ld-muted);font-size:13px;font-weight:600}.ld-intro-idn{font-family:var(--font-manrope), Noto Sans SC, sans-serif;font-size:22px;font-weight:800;line-height:1.25}.ld-intro-example{border:2px solid var(--ld-tile-border);background:var(--ld-tile-bg);border-radius:16px;flex-direction:column;align-self:stretch;gap:6px;padding:12px 14px;display:flex}.ld-intro-line{align-items:center;gap:8px;min-width:0;display:flex}.ld-intro-line .ld-bubble{background:0 0;border:0;align-self:auto;padding:0;font-size:16px}.ld-intro-avatar{width:30px;height:30px;font-family:var(--ld-hanzi);color:#fff;border-radius:50%;flex:none;place-items:center;font-size:15px;font-weight:700;display:grid}.ld-intro-avatar.is-xiaoming{background:#2f7d5b}.ld-intro-avatar.is-xiaoling{background:#1f8ee8}.ld-intro-example-idn{color:var(--ld-muted);font-size:14px}@media (max-width:359px){.ld-intro{gap:10px}.ld-intro-example-label{display:none}.ld-intro-pic{width:104px;height:104px}.ld-intro.has-pic .ld-hanzi-card{min-width:96px;height:96px}.ld-intro.has-pic .ld-hanzi-card .zh{font-size:44px}.ld-intro-idn{font-size:20px}}@media (max-height:640px){.ld-intro{gap:8px;margin-top:2px}.ld-intro-hanzi{gap:6px}.ld-intro-pic{width:92px;height:92px}.ld-intro .ld-hanzi-card{min-width:88px;height:88px}.ld-intro .ld-hanzi-card .zh{font-size:44px}.ld-intro.has-pic .ld-hanzi-card{min-width:88px;height:88px}.ld-intro.has-pic .ld-hanzi-card .zh{font-size:40px}.ld-intro-idn{font-size:19px}.ld-intro-example{overscroll-behavior:contain;gap:4px;max-height:150px;padding:8px 12px;overflow-y:auto}.ld-intro-line .ld-bubble{font-size:15px;line-height:1.4}.ld-intro-example-idn{font-size:13px}}.ld-report-scrim{z-index:40;background:#14100c73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.ld-report{box-sizing:border-box;width:100%;max-width:560px;padding:18px 16px calc(16px + env(safe-area-inset-bottom));background:var(--color-surface);color:var(--color-on-surface);border-radius:24px 24px 0 0;flex-direction:column;gap:12px;display:flex}.ld-report-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ld-report-title{font-family:var(--font-manrope), Noto Sans SC, sans-serif;font-size:18px;font-weight:700}.ld-report-sub{color:var(--ld-muted);margin-top:2px;font-size:13px}.ld-report-reasons{flex-wrap:wrap;gap:8px;display:flex}.ld-report-reason{border:1.5px solid var(--ld-line);min-height:36px;color:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:9999px;padding:6px 14px;font-size:14px}.ld-report-reason.is-on{border-color:var(--color-primary);background:color-mix(in oklab, var(--color-primary) 10%, transparent);color:var(--color-primary);font-weight:600}.ld-report-text{box-sizing:border-box;resize:none;border:1.5px solid var(--ld-line);width:100%;color:inherit;font:inherit;background:0 0;border-radius:14px;padding:10px 12px;font-size:15px}.ld-report-text:focus{border-color:var(--color-primary);outline:none}.ld-report-error{color:var(--color-error);margin:0;font-size:13px}.ld-report-done{margin:4px 0 8px;font-size:15px;line-height:22px}:is(.app-ios,.app-android) .ld-root,:is(.app-ios,.app-android) .ld-shell{min-height:calc(100dvh - var(--app-inset-top))}:is(.app-ios,.app-android) .ld-top{padding-top:14px}:is(.app-ios,.app-android) .ld-menu{top:56px}
