@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&family=Noto+Sans+TC:wght@400;500;700&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Sans+KR:wght@400;500;700&family=Noto+Serif+SC:wght@400;500;600;700&display=swap";@import"https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.7.0/style.css";.loom-loading-state{display:flex;align-items:center;gap:8px;box-sizing:border-box;color:var(--text-muted);font-size:var(--ui-md);line-height:1.35}.loom-loading-state--page{justify-content:center;width:min(var(--content-max-default),100%);margin:0 auto;padding:48px 24px}.loom-loading-state--card{border:1px solid var(--border-soft);border-radius:var(--r);background:var(--surface);padding:16px;box-shadow:var(--shadow-sm)}.loom-loading-state--inline{display:inline-flex;font-size:var(--ui-note)}.loom-loading-state--compact{display:inline-flex;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:color-mix(in srgb,var(--warm-50) 72%,var(--surface));padding:7px 9px;font-size:var(--ui-note);font-weight:600}.loom-loading-state__indicator{width:7px;height:7px;flex:0 0 auto;border-radius:999px;background:color-mix(in srgb,var(--accent) 84%,var(--warm-500));animation:loom-loading-indicator-pulse 1.15s ease-in-out infinite}.loom-loading-state__label{min-width:0}.loom-loading-state__body{flex-basis:100%}.loom-route-gate-loading{box-sizing:border-box}.loom-route-gate-loading--route{position:fixed;top:calc(52px + var(--loom-safe-area-top, 0px));left:0;right:0;z-index:245;height:2px;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,transparent);opacity:1;pointer-events:none;transition:opacity .18s ease}.loom-shell-study-focus .loom-route-gate-loading--route{top:var(--loom-safe-area-top, 0px)}.loom-route-gate-loading--exiting{opacity:0}.loom-route-gate-loading--contained{position:relative;top:auto;left:auto;right:auto;z-index:auto;width:100%}.loom-route-gate-loading__bar{display:block;width:44%;min-width:140px;height:100%;border-radius:999px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--accent) 58%,var(--warm-500)) 10%,color-mix(in srgb,var(--accent) 84%,var(--warm-500)) 50%,color-mix(in srgb,var(--accent) 58%,var(--warm-500)) 90%,transparent 100%);animation:loom-route-gate-progress 1.2s ease-in-out infinite}.loom-route-gate-loading--auth{width:min(420px,100%);margin:0 auto;padding:28px 16px}.loom-route-gate-loading__auth-card{display:grid;gap:14px;box-sizing:border-box;width:100%;border:1px solid var(--border-soft);border-radius:var(--r);background:var(--surface);padding:16px;box-shadow:var(--shadow-sm)}.loom-route-gate-loading__auth-status{font-weight:600}.loom-route-gate-loading__auth-fields{display:grid;gap:10px}.loom-route-gate-loading__auth-field{display:grid;gap:6px}.loom-loading-skeleton{--loom-loading-skeleton-width: 100%;--loom-loading-skeleton-height: 12px;position:relative;display:block;width:var(--loom-loading-skeleton-width, 100%);height:var(--loom-loading-skeleton-height, 12px);overflow:hidden;border-radius:var(--r-sm);background:color-mix(in srgb,var(--slate-500) 15%,white)}.loom-loading-skeleton--block{border-radius:var(--r)}.loom-loading-skeleton--circle{border-radius:999px}.loom-loading-skeleton[data-animation=pulse]{animation:loom-loading-skeleton-pulse 1.3s ease-in-out infinite}.loom-loading-skeleton[data-animation=sheen]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.68) 44%,rgba(255,255,255,.86) 52%,transparent 74%);transform:translate(-100%);animation:loom-loading-skeleton-sheen 1.35s ease-in-out infinite}.loom-loading-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loom-form-fields-loading{display:block}.loom-form-fields-loading__fields{display:grid;gap:16px}.loom-form-fields-loading__field{display:grid;gap:8px}.loom-form-fields-loading__help{background:color-mix(in srgb,var(--warm-100) 62%,white)}.loom-form-fields-loading__actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;padding-top:2px}.loom-list-records-loading,.loom-word-rows-loading{overflow:hidden;border:1px solid var(--border);border-radius:var(--collection-surface-radius);background:var(--surface)}.loom-list-records-loading__row,.loom-word-rows-loading__row{box-sizing:border-box}.loom-list-records-loading__row+.loom-list-records-loading__row,.loom-word-rows-loading__row+.loom-word-rows-loading__row{border-top:1px solid var(--warm-100)}.loom-list-records-loading__row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:17px 20px}.loom-list-records-loading__copy{min-width:0;display:grid;gap:8px}.loom-list-records-loading__meta{justify-self:end}.loom-word-rows-loading__row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:14px 18px}.loom-word-rows-loading__content{min-width:0;display:flex;align-items:center;gap:10px}.loom-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:flex-start;justify-content:flex-end;gap:8px;box-sizing:border-box;padding:12px;border-radius:inherit;background:color-mix(in srgb,var(--warm-50) 88%,transparent);color:var(--text-soft);font-size:var(--ui-note);font-weight:700;pointer-events:none}.loom-loading-overlay--progress{display:block;overflow:hidden;padding:0;background:color-mix(in srgb,var(--warm-50) 78%,transparent)}.loom-loading-overlay__progress{position:absolute;top:0;left:0;display:block;width:42%;min-width:140px;height:2px;border-radius:999px;background:color-mix(in srgb,var(--accent) 82%,var(--warm-500));animation:loom-loading-overlay-progress 1.15s ease-in-out infinite}.loom-loading-overlay--spinner{background:color-mix(in srgb,var(--warm-50) 78%,transparent)}.loom-loading-overlay__spinner{width:16px;height:16px;box-sizing:border-box;border:2px solid color-mix(in srgb,var(--slate-500) 22%,transparent);border-top-color:color-mix(in srgb,var(--accent) 78%,var(--warm-500));border-radius:999px;animation:loom-loading-overlay-spin .85s linear infinite}@keyframes loom-loading-indicator-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes loom-loading-skeleton-pulse{0%,to{opacity:.58}50%{opacity:.88}}@keyframes loom-loading-skeleton-sheen{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes loom-route-gate-progress{0%{transform:translate(-110%)}45%{transform:translate(65%)}to{transform:translate(235%)}}@keyframes loom-loading-overlay-progress{0%{transform:translate(-115%)}45%{transform:translate(70%)}to{transform:translate(240%)}}@keyframes loom-loading-overlay-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loom-route-gate-loading__bar,.loom-loading-overlay__progress,.loom-loading-overlay__spinner,.loom-loading-state__indicator,.loom-loading-skeleton[data-animation=pulse],.loom-loading-skeleton[data-animation=sheen]:after{animation:none}.loom-route-gate-loading__bar,.loom-loading-overlay__progress{width:100%;transform:none}.loom-loading-skeleton[data-animation=sheen]:after{opacity:0}.loom-route-gate-loading--route{transition:none}}@media(max-width:899px){.loom-route-gate-loading--route{top:var(--loom-safe-area-top, 0px)}.loom-route-gate-loading--auth{padding:20px 16px}.loom-list-records-loading__row{padding:15px 16px}.loom-word-rows-loading__row{padding:12px 14px}.loom-word-rows-loading__content{gap:8px;flex-wrap:wrap}}.loom-bottom-sheet-root{z-index:240;--loom-bottom-sheet-backdrop-top-offset: env(safe-area-inset-top);--loom-bottom-sheet-backdrop-bottom-offset: 0px}.loom-bottom-sheet-root-exclude-mobile-nav-backdrop{--loom-bottom-sheet-backdrop-bottom-offset: var(--loom-bottom-sheet-mobile-nav-total-height, 0px)}.loom-bottom-sheet-toolbar-underlay{display:none}.loom-bottom-sheet-backdrop{top:var(--loom-bottom-sheet-backdrop-top-offset)!important;height:calc(100% - var(--loom-bottom-sheet-backdrop-top-offset) - var(--loom-bottom-sheet-backdrop-bottom-offset))!important;background:var(--overlay-scrim);border:none}.loom-bottom-sheet-backdrop--static{opacity:1!important;transition:opacity 90ms var(--ease-standard)}.loom-bottom-sheet-root[data-sheet-state=closing] .loom-bottom-sheet-backdrop--static{opacity:0!important}.loom-bottom-sheet-container{background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:18px 18px 0 0;box-shadow:var(--shadow-lg);overflow:hidden}.loom-bottom-sheet-container--compact{border-radius:12px 12px 0 0}.loom-bottom-sheet-container--compact .loom-bottom-sheet-header{padding-top:16px}.loom-bottom-sheet-root--debug .loom-bottom-sheet-container{outline:2px dashed rgba(196,125,26,.8);outline-offset:-2px}.loom-bottom-sheet-header{display:grid;gap:6px;padding:10px 16px 0}.loom-bottom-sheet-handle-row{display:flex;justify-content:center;width:100%}.loom-bottom-sheet-handle{width:40px;height:5px;border-radius:999px;background:var(--warm-200)}.loom-bottom-sheet-header-row{min-height:32px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.loom-bottom-sheet-title,.loom-bottom-sheet-title-spacer{min-width:0}.loom-bottom-sheet-title{margin:0;font-size:21px;line-height:1.1;font-weight:600;color:var(--text)}.loom-bottom-sheet-close{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.loom-bottom-sheet-close:active{background:var(--warm-50);color:var(--text);border-color:var(--warm-200)}@media(hover:hover)and (pointer:fine){.loom-bottom-sheet-close:hover{background:var(--warm-50);color:var(--text);border-color:var(--warm-200)}}.loom-bottom-sheet-content{min-height:0}.loom-bottom-sheet-scroller{min-height:0;padding:0 16px 8px}.loom-bottom-sheet-tail{flex:0 0 auto;min-height:calc(env(safe-area-inset-bottom) + 6px);background:inherit}@media(display-mode:standalone),(display-mode:fullscreen){.loom-bottom-sheet-root{--loom-bottom-sheet-backdrop-top-offset: 0px}.loom-bottom-sheet-toolbar-underlay{position:fixed;left:0;right:0;bottom:0;z-index:0;display:block;height:max(84px,calc(env(safe-area-inset-bottom) + 60px));pointer-events:none;background:var(--surface)}.loom-bottom-sheet-tail{min-height:calc(max(14px,env(safe-area-inset-bottom)) + 8px);background:var(--surface)}.loom-bottom-sheet-root-exclude-mobile-nav-backdrop .loom-bottom-sheet-toolbar-underlay{display:none}.loom-bottom-sheet-root-exclude-mobile-nav-backdrop .loom-bottom-sheet-tail{background:inherit}}@media(prefers-reduced-motion:reduce){.loom-bottom-sheet-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}@media(max-width:899px){:root{--loom-bottom-sheet-mobile-nav-safe-area: max(4px, env(safe-area-inset-bottom));--loom-bottom-sheet-mobile-nav-total-height: calc(56px + var(--loom-bottom-sheet-mobile-nav-safe-area))}}@media(max-width:899px)and (display-mode:standalone),(max-width:899px)and (display-mode:fullscreen){:root{--loom-bottom-sheet-mobile-nav-safe-area: calc(max(4px, env(safe-area-inset-bottom)) + 8px) ;--loom-bottom-sheet-mobile-nav-total-height: calc(56px + var(--loom-bottom-sheet-mobile-nav-safe-area))}}.loom-status-dot{--loom-status-dot-new-color: var(--status-new);display:inline-flex;width:7px;height:7px;border-radius:999px;flex-shrink:0;background:var(--status-untracked);transition:background var(--motion-fast) ease,opacity var(--motion-fast) ease}.loom-status-dot--md{width:8px;height:8px}.loom-status-dot--new-neutral{--loom-status-dot-new-color: var(--status-dot-idle)}.loom-status-dot[data-status=UNTRACKED]{background:var(--status-untracked)}.loom-status-dot[data-status=NEW]{background:var(--loom-status-dot-new-color)}.loom-status-dot[data-status=LEARNING]{background:var(--status-learning)}.loom-status-dot[data-status=REVIEW]{background:var(--status-review)}.loom-status-dot[data-status=KNOWN]{background:var(--status-known)}.loom-status-dot[data-status=BLOCKED]{background:var(--forgot)}.loom-status-dot[data-active=false]{opacity:.28}.loom-dictionary-page{max-width:var(--content-max-default);margin:0 auto;display:grid;gap:14px;padding:24px var(--page-gutter-desktop) 40px;box-sizing:border-box;--loom-dictionary-readable-ratio: calc(var(--loom-readable-scale, 1.36) / 1.36);--loom-search-history-chip-bg: var(--surface);--loom-search-history-chip-border: var(--warm-200);--loom-search-history-chip-color: var(--text);--loom-search-history-chip-hover-bg: var(--warm-100);--loom-search-history-chip-hover-color: var(--text);--loom-search-history-heading-size: calc(11px * var(--loom-dictionary-readable-ratio, 1));--loom-search-history-query-chip-size: calc(13px * var(--loom-dictionary-readable-ratio, 1));--loom-search-row-hanzi-size: calc(23px * var(--loom-dictionary-readable-ratio, 1));--loom-search-row-pin-size: calc(12px * var(--loom-dictionary-readable-ratio, 1));--loom-search-row-def-size: calc(14px * var(--loom-dictionary-readable-ratio, 1))}.loom-dictionary-panel{background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:18px}.loom-dictionary-title{margin:0;font-size:26px;font-weight:600;color:var(--text)}.loom-dictionary-subtitle{margin:6px 0 0;color:var(--text-muted);font-size:14px}.loom-search-input-row{margin-top:14px;display:flex;align-items:center;gap:10px;border:1.5px solid var(--border);border-radius:14px;background:var(--warm-50);padding:10px 12px;box-sizing:border-box;transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard)}.loom-search-input-row:focus-within{border-color:var(--primary-mid);box-shadow:var(--focus-ring-primary-soft);background:var(--surface)}.loom-search-input{flex:1;border:none;outline:none;background:transparent;font-size:16px;color:var(--text);font-family:var(--font-ui);user-select:text;-webkit-user-select:text}.loom-search-input::placeholder{color:var(--text-muted)}.loom-search-submit{border:none;background:transparent;color:var(--text-muted);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;border-radius:999px;transition:color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard)}.loom-search-submit:active{color:var(--text);background:var(--warm-100)}.loom-search-measured-resize{margin-top:10px;min-height:0;min-width:0}.loom-search-measured-resize.is-animating{will-change:height}.loom-search-sheet-content{min-height:90px;min-width:0;--loom-search-history-chip-bg: var(--warm-50);--loom-search-history-chip-border: var(--border);--loom-search-history-chip-color: var(--warm-700);--loom-search-history-chip-hover-bg: var(--warm-100);--loom-search-history-chip-hover-color: var(--text)}.loom-search-meta{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.loom-search-note,.loom-search-error{margin:0 0 10px;font-size:13px}.loom-search-note{color:var(--text-muted)}.loom-search-loading-status{margin:0 0 10px}.loom-search-error{color:var(--forgot)}.loom-search-empty{border:1px dashed var(--border);border-radius:12px;padding:16px;font-size:14px;color:var(--text-muted);background:var(--warm-50)}.loom-search-history{display:grid;gap:12px}.loom-search-history-section{display:grid;gap:8px}.loom-search-history-heading{margin:0;font-size:var(--loom-search-history-heading-size, 11px);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.loom-search-history-query-list{display:flex;flex-wrap:wrap;gap:8px}.loom-search-history-query-chip{border:1px solid var(--loom-search-history-chip-border, var(--border));border-radius:999px;background:var(--loom-search-history-chip-bg, var(--surface));color:var(--loom-search-history-chip-color, var(--text));padding:6px 10px;font-size:var(--loom-search-history-query-chip-size, 13px);font-family:var(--font-ui);cursor:pointer;box-shadow:0 1px #00000005;transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.loom-search-history-query-chip:active{background:var(--loom-search-history-chip-hover-bg, var(--warm-100));border-color:var(--loom-search-history-chip-border, var(--border));color:var(--loom-search-history-chip-hover-color, var(--text))}.loom-search-results{display:grid;gap:0;min-width:0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);--loom-search-hanzi-col-max: 168px;--loom-search-pin-col-max: 196px}.loom-search-row{width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:none;border-radius:0;background:transparent;text-align:left;display:grid;grid-template-columns:7px fit-content(var(--loom-search-hanzi-col-max)) fit-content(var(--loom-search-pin-col-max)) minmax(0,1fr);align-items:center;column-gap:10px;row-gap:2px;border-top:1px solid var(--border-soft);margin-top:-1px;padding:10px;cursor:pointer;color:var(--text);transition:background var(--motion-fast) var(--ease-standard)}.loom-search-row.has-accessory{grid-template-columns:7px fit-content(var(--loom-search-hanzi-col-max)) fit-content(var(--loom-search-pin-col-max)) minmax(0,1fr) auto}.loom-search-row:first-of-type{margin-top:0}.loom-search-row:active,.loom-search-row.active{background:var(--warm-100)}.loom-search-row:focus-visible{outline:var(--focus-ring-primary-strong);outline-offset:1px;background:var(--warm-100)}.loom-search-row.is-disabled{cursor:default}.loom-search-row.is-disabled:active,.loom-search-row.is-disabled.active{background:transparent}.loom-search-row-status{align-self:center;margin-top:0}.loom-search-row-hanzi{font-size:var(--loom-search-row-hanzi-size, 23px);min-width:0;overflow-wrap:break-word;word-break:break-all;white-space:normal;line-height:1;font-family:var(--font-hanzi);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.loom-search-row-pin{min-width:0;overflow-wrap:break-word;word-break:normal;white-space:normal;line-height:1.28;font-size:var(--loom-search-row-pin-size, 12px);font-weight:600;color:var(--slate-600);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.loom-search-row-def{min-width:0;font-size:var(--loom-search-row-def-size, 14px);color:var(--warm-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}.loom-search-row-accessory{display:inline-flex;align-items:center;justify-content:flex-end;min-width:28px}.loom-search-row-action{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;background:var(--warm-50);color:var(--text-muted);box-sizing:border-box;transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.loom-search-row-action.is-add{border-color:var(--border);background:color-mix(in srgb,var(--warm-50) 72%,var(--surface));color:var(--text-soft)}.loom-search-row-action.is-added{border-color:color-mix(in srgb,var(--teal-700) 58%,var(--border));background:color-mix(in srgb,var(--teal-50) 80%,var(--surface));color:var(--teal-800)}.loom-search-row-action.is-adding,.loom-search-row-action.is-removing{background:var(--warm-50);color:var(--text-soft)}.loom-search-row-action.is-in-list{border-color:color-mix(in srgb,var(--teal-700) 44%,var(--border));background:color-mix(in srgb,var(--teal-50) 62%,var(--surface));color:color-mix(in srgb,var(--teal-800) 82%,var(--text))}.loom-search-row-action.is-adding svg,.loom-search-row-action.is-removing svg{animation:loom-search-row-action-spin .9s linear infinite}.loom-search-row-action-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@keyframes loom-search-row-action-spin{to{transform:rotate(360deg)}}.loom-search-see-all{display:block;width:100%;margin-top:8px;padding:10px;border:none;border-radius:10px;background:var(--warm-50);color:var(--text-muted);font-size:13px;font-family:var(--font-ui);font-weight:600;cursor:pointer;text-align:center;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.loom-search-see-all:active{background:var(--warm-100);color:var(--text)}.loom-search-progress-footer{margin-top:8px;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px}.loom-search-progress-toggle{align-self:center;min-width:92px;margin:0;padding:0;border:none;background:transparent;color:var(--teal-800);font-size:13px;font-weight:500;font-family:var(--font-ui);cursor:pointer;text-align:left;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.loom-search-progress-toggle:active:not(:disabled){background:transparent;color:var(--teal-800);text-decoration:underline}.loom-search-progress-toggle:disabled{opacity:.7;cursor:default}.loom-search-progress-footer-right{margin-left:auto;display:inline-flex;align-items:center;gap:8px}.loom-search-progress-meta{font-size:12px;color:var(--text-muted)}.loom-search-progress-top-button{width:26px;height:26px;border-radius:999px;border:none;background:var(--warm-50);color:var(--text-muted);font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.loom-search-progress-top-button:active{background:var(--warm-100);color:var(--text)}.loom-modal-overlay.loom-search-overlay{background:var(--overlay-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media(min-width:561px){.loom-modal-overlay.loom-search-overlay{--loom-search-modal-top-offset: clamp(32px, 7vh, 72px);align-items:flex-start;padding:var(--loom-search-modal-top-offset) 16px 16px}.loom-modal-dialog.loom-search-sheet{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - var(--loom-search-modal-top-offset) - 16px);overflow-y:auto;overflow-x:hidden;border-radius:22px;background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:14px 18px 12px;box-sizing:border-box}.loom-modal-dialog.loom-search-sheet .loom-search-sheet-content{min-height:180px}}@media(max-width:899px){.loom-dictionary-page{padding:18px var(--page-gutter-mobile) var(--loom-mobile-nav-clearance, 96px)}}.loom-search-label{display:block;margin-bottom:7px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}@media(max-width:899px){.loom-dictionary-page{gap:10px}.loom-search-results{--loom-search-hanzi-col-max: 152px;--loom-search-pin-col-max: 180px}.loom-dictionary-panel{border-radius:14px;padding:14px}.loom-dictionary-title{font-size:23px}.loom-search-row-def{font-size:13px}.loom-search-progress-meta{font-size:11px}}@media(hover:hover)and (pointer:fine){.loom-search-submit:hover{color:var(--text);background:var(--warm-100)}.loom-search-history-query-chip:hover{background:var(--loom-search-history-chip-hover-bg, var(--warm-100));border-color:var(--loom-search-history-chip-border, var(--border));color:var(--loom-search-history-chip-hover-color, var(--text))}.loom-search-row:hover:not(:disabled){background:var(--warm-100)}.loom-search-results.is-hover-suppressed .loom-search-row:hover:not(.active):not(:disabled){background:transparent}.loom-search-see-all:hover{background:var(--warm-100);color:var(--text)}.loom-search-progress-toggle:hover:not(:disabled){background:transparent;color:var(--teal-800);text-decoration:underline}.loom-search-progress-top-button:hover{background:var(--warm-100);color:var(--text)}}.loom-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1410;display:flex;align-items:center;justify-content:center;background:#1018206b;padding:16px;overflow-y:auto}.loom-modal-dialog{width:min(760px,100%);max-height:min(88vh,900px);overflow:auto;background:#fffcf7fa;border:1px solid rgba(39,53,72,.1);border-radius:28px;box-shadow:0 24px 60px #10182038;padding:20px}.loom-modal-dialog--compact{width:min(var(--loom-modal-compact-width, 860px),calc(100vw - 32px));padding:18px;border-radius:12px;box-shadow:0 12px 32px #1018202e}.loom-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.loom-modal-title{margin:0;font-size:34px;font-weight:400;letter-spacing:-.02em;color:var(--text)}.loom-modal-dialog--compact .loom-modal-header{align-items:start;margin-bottom:8px}.loom-modal-dialog--compact .loom-modal-title{font-size:28px;font-weight:500;line-height:1.12}.loom-modal-close{border:none;background:transparent;color:var(--text-soft);font-size:13px;font-weight:600;cursor:pointer}@keyframes loom-modal-top-sheet-enter{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@media(max-width:560px){.loom-modal-overlay{--loom-modal-nav-anchor: var( --loom-mobile-nav-total-height, calc(56px + max(4px, env(safe-area-inset-bottom))) );align-items:flex-end;padding:8px 0 var(--loom-modal-nav-anchor)}.loom-modal-dialog{width:100%;max-height:calc(100dvh - var(--loom-modal-nav-anchor) - 8px);border-radius:26px 26px 0 0;padding:18px 16px calc(28px + env(safe-area-inset-bottom))}.loom-modal-dialog--compact{border-radius:12px 12px 0 0;padding:16px 14px calc(18px + env(safe-area-inset-bottom))}.loom-modal-title{font-size:30px}.loom-modal-dialog--compact .loom-modal-title{font-size:24px}.loom-modal-overlay--mobile-top-sheet{align-items:flex-start;justify-content:center;padding:0;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loom-modal-overlay--mobile-top-sheet .loom-modal-dialog{width:100vw;max-height:82dvh;border-radius:0 0 18px 18px;border-top:none;padding:calc(12px + env(safe-area-inset-top)) 12px 10px;animation:loom-modal-top-sheet-enter .4s cubic-bezier(.22,1,.36,1)}}@media(prefers-reduced-motion:reduce){.loom-modal-overlay--mobile-top-sheet .loom-modal-dialog{animation:none}}.loom-search-icon{color:var(--text-muted);flex-shrink:0;pointer-events:none}.loom-search-clear{border:none;background:transparent;color:var(--text-muted);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;padding:0;border-radius:999px;transition:color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard)}.loom-search-clear:active{color:var(--text);background:var(--warm-100)}@media(hover:hover)and (pointer:fine){.loom-search-clear:hover{color:var(--text);background:var(--warm-100)}}.loom-shell{box-sizing:border-box;min-height:100dvh;background:var(--bg);color:var(--text);--loom-safe-area-top: 0px;--loom-mobile-nav-safe-area: 0px;--loom-mobile-nav-total-height: 0px;--loom-mobile-nav-clearance: 0px}.loom-shell-study-focus{background:transparent}.loom-shell.loom-shell-standalone{--loom-safe-area-top: env(safe-area-inset-top)}.loom-shell.loom-shell-standalone:not(.loom-shell-study-focus){padding-top:var(--loom-safe-area-top)}.loom-shell.loom-shell-standalone:not(.loom-shell-study-focus) .loom-top-nav{top:var(--loom-safe-area-top)}.loom-shell.loom-shell-standalone:not(.loom-shell-study-focus) .loom-client-update-banner{top:calc(52px + var(--loom-safe-area-top))}.loom-client-update-banner{position:sticky;top:52px;z-index:260;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;box-sizing:border-box;padding:12px 24px;border-bottom:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));background:color-mix(in srgb,var(--surface) 90%,var(--warm-50));box-shadow:var(--shadow-sm)}.loom-client-update-copy{display:grid;gap:3px;flex:1}.loom-client-update-copy p,.loom-client-update-card p,.loom-client-update-card h2{margin:0}.loom-client-update-eyebrow{font-size:var(--ui-sm);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong, var(--accent))}.loom-client-update-actions{display:inline-flex;align-items:center;align-self:center;gap:8px;flex-shrink:0}.loom-client-update-primary,.loom-client-update-dismiss{border-radius:var(--r-sm);font-family:var(--font-ui);font-size:var(--ui-note);cursor:pointer}.loom-client-update-primary{border:none;background:var(--accent);color:var(--white);padding:8px 12px}.loom-client-update-dismiss{width:32px;height:32px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center}.loom-client-update-blocker{position:fixed;top:0;right:0;bottom:0;left:0;z-index:320;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.loom-client-update-card{width:min(420px,100%);display:grid;gap:12px;padding:24px;border-radius:calc(var(--r) + 4px);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.loom-client-update-card-required{text-align:center}.loom-top-nav{position:sticky;top:0;z-index:200;height:52px;background:var(--slate-900);border-bottom:1px solid rgba(255,255,255,.08)}.loom-top-nav-inner{height:100%;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.loom-brand{display:inline-flex;align-items:center;gap:10px;color:var(--white);text-decoration:none;font-weight:600}.loom-brand-mark{width:28px;height:28px;border-radius:7px}.loom-brand-name{font-size:var(--ui-lg)}.loom-top-links{display:inline-flex;align-items:center;gap:8px}.loom-top-links>a,.loom-nav-btn{border:none;background:transparent;color:#ffffffbf;border-radius:var(--r-sm);padding:6px 10px;font-size:var(--ui-note);font-family:var(--font-ui);cursor:pointer;text-decoration:none}.loom-top-links>a:active,.loom-nav-btn:active{background:#ffffff1f;color:var(--white)}.loom-top-links>a.active{background:#ffffff1f;color:var(--white);position:relative}.loom-top-links>a.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:18px;height:3px;border-radius:2px;background:var(--teal-500)}.loom-nav-search-btn{display:inline-flex;align-items:center;gap:8px}.loom-kbd{font-size:var(--ui-xs);font-family:var(--font-ui);color:#fff6;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:1px 5px;line-height:1.4}.loom-user-menu-wrap{position:relative}.loom-user-avatar-btn{width:32px;height:32px;border-radius:50%;border:none;background:#ffffff29;color:var(--white);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard)}.loom-user-avatar-btn:active{background:#ffffff47}.loom-user-dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:6px;z-index:210}.loom-user-dropdown-email{display:block;padding:8px 10px;font-size:var(--ui-caption);color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:4px}.loom-user-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:var(--r-sm);font-size:var(--ui-note);font-family:var(--font-ui);color:var(--text);text-decoration:none;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard)}.loom-user-dropdown-item:active{background:var(--warm-100)}@media(hover:hover)and (pointer:fine){.loom-top-links>a:hover,.loom-nav-btn:hover{background:#ffffff1f;color:var(--white)}.loom-user-avatar-btn:hover{background:#ffffff47}.loom-user-dropdown-item:hover{background:var(--warm-100)}}.loom-main{width:100%}.loom-main-dictionary{padding-bottom:0}.loom-main-study-focus{max-width:none;padding:0}.loom-bottom-nav,.loom-more-scrim{display:none}@media(max-width:899px){.loom-shell{--loom-mobile-nav-safe-area: max(4px, env(safe-area-inset-bottom));--loom-mobile-nav-total-height: calc(56px + var(--loom-mobile-nav-safe-area));--loom-mobile-nav-clearance: calc(var(--loom-mobile-nav-total-height) + 8px)}.loom-shell.loom-shell-standalone{--loom-mobile-nav-safe-area: calc(max(4px, env(safe-area-inset-bottom)) + 8px) ;--loom-mobile-nav-total-height: calc(56px + var(--loom-mobile-nav-safe-area));--loom-mobile-nav-clearance: calc(var(--loom-mobile-nav-total-height) + 8px)}.loom-client-update-banner{top:0;align-items:center;padding:12px 14px}.loom-shell.loom-shell-standalone:not(.loom-shell-study-focus) .loom-client-update-banner{top:var(--loom-safe-area-top)}.loom-client-update-actions{margin-left:auto}.loom-top-nav{display:none}.loom-main,.loom-main-dictionary{padding-bottom:var(--loom-mobile-nav-clearance)}.loom-main-study-focus{padding-bottom:0}.loom-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:230;box-sizing:border-box;height:var(--loom-mobile-nav-total-height);background:var(--slate-900);border-top:1px solid rgba(255,255,255,.08);display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:2px 10px var(--loom-mobile-nav-safe-area)}.loom-bottom-nav.is-sheet-presented{pointer-events:none}.loom-bottom-item{border:none;background:transparent;color:#ffffff8c;font-size:var(--ui-2xs);font-family:var(--font-ui);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:var(--r-sm);cursor:pointer;padding:2px 0;line-height:1.1}.loom-bottom-item.active{color:var(--white);background:#ffffff1f;font-weight:600;box-shadow:inset 0 2px 0 var(--teal-500)}.loom-more-sheet{padding-top:2px}.loom-more-sheet-nav{display:flex;flex-direction:column;gap:4px}.loom-more-sheet-item{display:flex;align-items:center;gap:12px;padding:14px 12px;border:none;background:transparent;border-radius:var(--r);font-size:var(--ui-lg);font-family:var(--font-ui);color:var(--text);text-decoration:none;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard);width:100%;text-align:left;-webkit-tap-highlight-color:transparent}@media(hover:hover)and (pointer:fine){.loom-more-sheet-item:hover{background:var(--warm-50)}}}/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-700:oklch(50.5% .213 27.518);--color-slate-200:oklch(92.9% .013 255.508);--color-white:#fff;--spacing:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-red-200{border-color:var(--color-red-200)}.border-slate-200{border-color:var(--color-slate-200)}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing) * 4)}.text-red-700{color:var(--color-red-700)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.select-all{-webkit-user-select:all;user-select:all}.\[vite-proxy\:api\]{vite-proxy:api}}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@font-face{font-family:KaiTi;src:local("KaiTi"),local("Kaiti SC"),local("STKaiti"),url(/app-fonts/kaiti-regular.woff2) format("woff2"),url(/app-fonts/kaiti-regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:HanziExtBFallback;src:url(/app-fonts/hanzi-extb-fallback.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:LoomGlyphFallback;src:url(/app-fonts/loom-glyph-fallback.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+303B,U+337B-337E,U+9FCF,U+9FD4,U+9FB6,U+9FCD,U+9FB4,U+2EBC,U+2E9C,U+2E87,U+9FB9,U+2E8A,U+2EAB,U+21A93,U+9FB8,U+9FB1,U+2EA2,U+9FB0,U+9FB5,U+9FB7,U+233BD,U+2ED6,U+28805,U+2ECF,U+FA5B,U+2EC0,U+26276,U+278C8,U+2ECC,U+2EC3,U+2EDE,U+2EE4}@font-face{font-family:MissingGlyphFallback;src:local("MissingGlyphFallback"),url(/app-fonts/missing-glyphs-fallback.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--slate-900: #273548;--slate-800: #354b62;--slate-700: #435f7a;--slate-600: #4e6e8c;--slate-500: #6680a0;--slate-200: #c8d4e4;--slate-50: #f3f5f9;--amber-700: #92580a;--amber-200: #f0d9a8;--amber-50: #fdf8ee;--warm-900: #2e2820;--warm-700: #564d44;--warm-500: #7a6e63;--warm-200: #d8d0c8;--warm-100: #ede8e2;--warm-50: #f8f5f0;--white: #ffffff;--teal-800: #14635a;--teal-700: #1a7a6e;--teal-500: #3d918a;--teal-300: #7dbdb8;--teal-200: #b4dad6;--teal-100: #d6edeb;--teal-50: #edf6f5;--indigo-800: #473d72;--indigo-700: #5a4d8a;--indigo-500: #7b6eaa;--indigo-300: #a9a0c8;--indigo-200: #cec8e4;--indigo-100: #e3dff0;--indigo-50: #f3f1f9;--bg: var(--warm-50);--surface: var(--white);--border: var(--warm-200);--border-soft: var(--warm-100);--text: var(--warm-900);--text-muted: var(--warm-500);--text-soft: var(--warm-700);--control-disabled-fg: var(--warm-200);--native-select-chevron-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' fill='none' stroke='%237a6e63' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6'/%3E%3C/svg%3E");--native-select-chevron-position: right 10px center;--native-select-chevron-size: 12px 12px;--native-select-chevron-padding-right: 30px;--primary-mid: #6680a0;--accent: #c47d1a;--forgot: #b33a2e;--hard: #b87820;--got-it: #2a6596;--easy: #3d7a52;--status-untracked: #7b8190;--status-untracked-bg: #f0f0f0;--status-new: #349d9d;--status-new-text: #247575;--status-new-bg: #e4f4f4;--status-learning: var(--hard);--status-review: var(--got-it);--status-known: #468b5e;--status-dot-idle: #c0b6ad;--status-review-bg: #edf3f8;--status-known-bg: #edf5ef;--status-blocked-bg: #fdf0ef;--status-blocked-border: #edc9c4;--status-boosted: var(--indigo-700);--status-boosted-bg: var(--indigo-50);--status-boosted-border: var(--indigo-300);--grade-forgot-bg-soft: #fdf0ef;--grade-hard-bg-soft: #fdf6ea;--grade-gotit-bg-soft: #eaf3f8;--grade-easy-bg-soft: #edf6f1;--font-ui: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;--font-display: ui-serif, Georgia, "Times New Roman", serif;--font-hanzi: var( --loom-hanzi-font-family, "KaiTi", "Kaiti SC", "STKaiti", "HanziExtBFallback", "LoomGlyphFallback", "Noto Serif CJK SC", "Noto Serif CJK TC", "Noto Serif CJK JP", "Noto Serif CJK KR", "Noto Serif SC", "Noto Sans CJK SC", "Noto Sans CJK TC", "Noto Sans CJK JP", "Noto Sans CJK KR", "Noto Sans SC", "Noto Sans TC", "Noto Sans JP", "Noto Sans KR", "Songti SC", "STSong", "SimSun", "MissingGlyphFallback", serif );--loom-readable-scale: 1.36;--ui-2xs: 9.5px;--ui-xs: 10px;--ui-sm: 11px;--ui-caption: 12px;--ui-note: 13px;--ui-md: 14px;--ui-lg: 15px;--rd-pinyin-seg: calc(10.5px * var(--loom-readable-scale, 1));--rd-pinyin: calc(11px * var(--loom-readable-scale, 1));--rd-def: calc(11.5px * var(--loom-readable-scale, 1));--rd-pinyin-legacy: calc(12px * var(--loom-readable-scale, 1));--rd-english: calc(12.5px * var(--loom-readable-scale, 1));--rd-nav: calc(13px * var(--loom-readable-scale, 1));--rd-hanzi: calc(16px * var(--loom-readable-scale, 1));--rd-hanzi-example: calc(18px * var(--loom-readable-scale, 1));--rd-hanzi-breakdown: calc(20px * var(--loom-readable-scale, 1));--r-sm: 6px;--r: 8px;--r-xl: 14px;--page-gutter-mobile: 10px;--page-gutter-tablet: 16px;--page-gutter-desktop: 24px;--content-max-default: 980px;--content-max-collection: 1080px;--collection-surface-radius: 12px;--collection-card-padding-x: 20px;--collection-card-padding-y: 20px;--dictionary-layout-max: 1280px;--dictionary-detail-left-col: 290px;--dictionary-detail-right-col: 280px;--dictionary-detail-col-gap: 20px;--dictionary-detail-col-gap-compact: 18px;--dictionary-detail-main-col-max: calc( var(--dictionary-layout-max) - var(--dictionary-detail-left-col) - var(--dictionary-detail-right-col) - var(--dictionary-detail-col-gap) - var(--dictionary-detail-col-gap) );--shadow-sm: 0 1px 2px rgba(30, 26, 22, .06);--shadow: 0 2px 6px rgba(30, 26, 22, .08);--shadow-lg: 0 6px 12px rgba(30, 26, 22, .1);--shadow-md: 0 4px 8px rgba(30, 26, 22, .09);--focus-ring-primary-soft: 0 0 0 2px rgba(102, 128, 160, .18);--focus-ring-primary-strong: 2px solid rgba(102, 128, 160, .32);--overlay-scrim: rgba(39, 53, 72, .55);--inverse-border-soft: rgba(255, 255, 255, .2);--inverse-border: rgba(255, 255, 255, .28);--list-split-height-desktop: 38px;--list-split-height-mobile: 44px;--list-split-toggle-width: 52px;--list-split-plus-size: 17px;--list-split-plus-width: 12px;--motion-fast: .16s;--motion-base: .22s;--motion-slow: .3s;--ease-standard: cubic-bezier(.22, 1, .36, 1)}.loom-separator-dot{display:inline-flex;width:4px;height:4px;border-radius:999px;background:var(--border);flex-shrink:0}input[type=search]{-moz-appearance:none;appearance:none;-webkit-appearance:none}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}.loom-collection-page{min-height:100dvh;width:100%;background:var(--bg);padding:24px var(--page-gutter-desktop) 44px}.loom-collection-wrap{width:min(var(--content-max-collection),100%);margin:0 auto;display:grid;gap:16px}.loom-collection-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--collection-surface-radius);box-shadow:var(--shadow);padding:var(--collection-card-padding-y) var(--collection-card-padding-x)}.loom-collection-empty,.loom-collection-loading{margin:0;border:1px dashed var(--border);border-radius:var(--r);padding:18px;color:var(--text-muted);background:var(--surface)}@media(max-width:899px){.loom-collection-page{padding:16px var(--page-gutter-mobile) 32px}.loom-collection-wrap{gap:16px}.loom-collection-card{padding:20px 18px}}.loom-list-records{border:1px solid var(--border);border-radius:var(--collection-surface-radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.loom-list-content-reveal{animation:loom-list-content-reveal var(--motion-fast) var(--ease-standard) both}.loom-list-record-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 20px;color:inherit;text-decoration:none;transition:background-color var(--motion-fast) var(--ease-standard)}.loom-list-record-row+.loom-list-record-row{border-top:1px solid var(--warm-100)}.loom-list-record-row.is-clickable:active{background:var(--warm-50)}.loom-list-record-copy{min-width:0;display:grid;gap:6px}.loom-list-record-title-line{min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.loom-list-record-title{color:var(--text);font-size:17px;font-weight:700;line-height:1.25;text-decoration:none}.loom-list-record-stretched-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.loom-list-record-description{margin:0;color:var(--text-muted);font-size:14px;line-height:1.5}.loom-list-record-description-inline{display:inline}.loom-list-record-meta{display:grid;gap:6px;justify-items:end;align-self:center;color:var(--text-soft);font-size:13px;white-space:nowrap}.loom-list-record-title-line>.loom-list-record-meta{display:inline-flex;align-items:baseline;justify-items:start;gap:10px}.loom-list-record-action{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:end;gap:18px;min-width:0}@media(hover:hover)and (pointer:fine){.loom-list-record-row.is-clickable:hover{background:var(--warm-50)}.loom-list-record-row.is-clickable:hover .loom-list-record-title{color:var(--slate-800)}}@keyframes loom-list-content-reveal{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.loom-list-content-reveal{animation:none}}@media(max-width:899px){.loom-list-record-row{grid-template-columns:1fr;gap:10px;padding:16px}.loom-list-record-meta{justify-items:start}.loom-list-record-action{justify-content:start}}.loom-official-preview-list{display:grid;gap:6px;align-content:start;border-top:1px solid var(--border)}.loom-official-preview-row.loom-list-record-row{position:relative;display:grid;grid-template-columns:1fr;align-items:stretch;gap:6px;border-top:0;padding-top:12px;padding-inline:0;padding-bottom:0;color:inherit;text-decoration:none;transition:background-color var(--motion-fast) var(--ease-standard)}.loom-official-preview-row.loom-list-record-row+.loom-official-preview-row.loom-list-record-row{border-top:1px solid var(--border-soft)}.loom-official-preview-row.loom-list-record-row.is-clickable:active{background:var(--warm-50)}.loom-official-preview-row .loom-official-preview-label{min-width:0;color:var(--text);font-size:15px;font-weight:600;line-height:1.25;text-decoration:none}.loom-official-preview-row .loom-official-preview-description{min-width:0;margin:0;color:var(--text-muted);font-size:13px;line-height:1.5}.loom-official-preview-line{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:baseline;column-gap:12px;min-width:0}.loom-official-preview-line-description{align-items:center}.loom-official-preview-count{justify-self:end;color:var(--text-soft);font-size:13px;line-height:1.5;white-space:nowrap}.loom-official-node-list .loom-official-preview-row.loom-list-record-row{gap:8px;border-top:none;padding:18px 20px}.loom-official-node-list .loom-official-preview-row.loom-list-record-row+.loom-official-preview-row.loom-list-record-row{border-top:1px solid var(--warm-100)}.loom-official-node-list .loom-official-preview-row .loom-official-preview-label{font-size:17px;font-weight:700}.loom-official-node-list .loom-official-preview-row .loom-official-preview-description{font-size:14px}@media(hover:hover)and (pointer:fine){.loom-official-preview-row.loom-list-record-row.is-clickable:hover{background:var(--warm-50)}.loom-official-preview-row.loom-list-record-row.is-clickable:hover .loom-official-preview-label{color:var(--slate-800)}}@media(max-width:899px){.loom-official-preview-line{column-gap:10px}}.loom-segmented-control{--loom-segmented-columns: 3;display:grid;grid-template-columns:repeat(var(--loom-segmented-columns),minmax(0,1fr));gap:2px;padding:3px;border:1px solid var(--border-soft);border-radius:var(--r);background:var(--warm-100, rgba(0, 0, 0, .04))}.loom-segmented-control__option{display:inline-flex;align-items:center;justify-content:center;position:relative;isolation:isolate;gap:8px;min-height:40px;padding:8px 10px;border:none;border-radius:calc(var(--r) - 2px);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font-ui);font-size:var(--ui-note);font-weight:500;line-height:1;text-align:center;transition:color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.loom-segmented-control__option.is-active{color:var(--text)}.loom-segmented-control__option:disabled{cursor:default}.loom-segmented-control__indicator{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--surface);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000f;z-index:0}.loom-segmented-control__label{position:relative;z-index:1}.loom-segmented-control__option:focus-visible{outline:var(--focus-ring-primary-strong);outline-offset:-1px}.loom-segmented-control--compact{gap:2px;padding:3px}.loom-segmented-control--compact .loom-segmented-control__option{min-height:36px;padding:8px;font-size:12px}@media(hover:hover)and (pointer:fine){.loom-segmented-control__option:hover:not(:disabled){color:var(--text)}}@media(max-width:899px){.loom-segmented-control--compact .loom-segmented-control__option{min-height:34px;padding:7px;font-size:11px}}.loom-overflow-menu-paper{border:1px solid var(--border);border-radius:var(--collection-surface-radius);box-shadow:var(--shadow-md)}.loom-overflow-popover-paper{overflow:hidden}.loom-overflow-popover{min-width:286px;padding:14px 14px 12px;box-sizing:border-box}.loom-overflow-popover--actions{min-width:164px;padding:8px}.loom-overflow-popover--actions .loom-overflow-action-group{margin-top:0;padding-top:0;border-top:none}.loom-overflow-trigger.MuiIconButton-root{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--warm-300, transparent);color:var(--text-muted);background:transparent;cursor:pointer;font-family:var(--font-ui);font-size:16px;font-weight:600;line-height:1;padding:0;margin:0;transition:color var(--motion-fast) ease,border-color var(--motion-fast) ease,background-color var(--motion-fast) ease}.loom-overflow-trigger-dot{display:inline-block;font-size:24px;font-weight:700;line-height:.9;transform:translateY(-.5px)}.loom-top-actions-right{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.loom-overflow-script-group,.loom-overflow-size-group,.loom-overflow-audio-group,.loom-overflow-action-group{width:100%;box-sizing:border-box}.loom-overflow-script-group,.loom-overflow-size-group,.loom-overflow-audio-group{display:grid;gap:10px}.loom-overflow-size-group,.loom-overflow-audio-group,.loom-overflow-action-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--warm-200)}.loom-overflow-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.loom-overflow-section-title{color:var(--text-soft);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.loom-overflow-script-toggle{display:grid;gap:2px;padding:3px;border:1px solid var(--border-soft);border-radius:var(--r);background:var(--warm-100, rgba(0, 0, 0, .04))}.loom-overflow-script-toggle{grid-template-columns:repeat(2,minmax(0,1fr))}.loom-overflow-script-option{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 10px;border:none;border-radius:calc(var(--r) - 2px);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font-ui);font-size:var(--ui-note);font-weight:500;line-height:1;transition:color var(--motion-fast) var(--ease-standard)}.loom-overflow-script-option.is-active{color:var(--text)}.loom-overflow-script-option:disabled{cursor:default}.loom-overflow-script-glyph{color:var(--text);font-family:var(--font-hanzi);font-size:26px;line-height:1}.loom-overflow-script-copy{display:grid;gap:2px}.loom-overflow-script-option-label{color:currentColor;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.loom-overflow-size-row{display:block}.loom-overflow-size-slider.MuiSlider-root{width:100%;min-width:0;color:var(--warm-500);height:4px;padding:2px 0}.loom-overflow-size-slider .MuiSlider-rail{opacity:1;height:4px;border-radius:999px;background:color-mix(in srgb,var(--surface) 55%,var(--warm-200) 45%)}.loom-overflow-size-slider .MuiSlider-track{height:4px;border:none;border-radius:999px;background:var(--warm-500)}.loom-overflow-size-slider .MuiSlider-mark{width:2px;height:10px;border-radius:999px;background:var(--warm-500);opacity:.4;top:50%;transform:translate(-50%,-50%)}.loom-overflow-size-slider .MuiSlider-markActive{opacity:.6;background:var(--warm-500)}.loom-overflow-size-slider .MuiSlider-thumb{width:16px;height:16px;border-radius:50%;border:2px solid var(--surface);background:var(--slate-700);box-shadow:0 1px 3px #14100c33}.loom-overflow-size-slider .MuiSlider-thumb:before{box-shadow:none}.loom-overflow-size-slider .MuiSlider-thumb.Mui-focusVisible,.loom-overflow-size-slider .MuiSlider-thumb.Mui-active{box-shadow:0 0 0 4px #35475f2e,0 1px 3px #14100c33}.loom-overflow-size-slider .MuiSlider-thumb input{cursor:pointer}.loom-overflow-audio-group{gap:12px}.loom-overflow-inline-setting{display:flex;align-items:center;justify-content:space-between;gap:16px}.loom-overflow-inline-setting-label,.loom-overflow-field-label{color:var(--text);font-size:15px;font-weight:600;line-height:1.2}.loom-overflow-field{display:grid;gap:6px}.loom-overflow-segmented{width:100%}.loom-overflow-segmented-speed{--loom-segmented-columns: 5}.loom-overflow-segmented-volume{--loom-segmented-columns: 3}.loom-overflow-switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;width:42px;height:24px;border:0;border-radius:999px;background:var(--warm-200);cursor:pointer;flex:0 0 auto;padding:0;transition:background-color var(--motion-fast) ease}.loom-overflow-switch.is-on{background:var(--teal-500)}.loom-overflow-switch-knob{display:block;position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--white);box-shadow:0 1px 3px #14100c29;transition:transform var(--motion-fast) ease}.loom-overflow-switch.is-on .loom-overflow-switch-knob{transform:translate(18px)}.loom-overflow-switch:focus-visible,.loom-overflow-script-option:focus-visible,.loom-overflow-action-button:focus-visible{outline:var(--focus-ring-primary-strong);outline-offset:1px}.loom-overflow-action-group{display:grid;gap:2px}.loom-overflow-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:inline-flex;align-items:center;justify-content:flex-start;width:100%;min-height:38px;border:none;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;font-family:var(--font-ui);font-size:14px;font-weight:600;letter-spacing:.01em;line-height:1;padding:0 8px;text-align:left;text-transform:none;box-shadow:none;transition:border-color var(--motion-fast) ease,color var(--motion-fast) ease,background-color var(--motion-fast) ease}.loom-overflow-action-button-danger{color:var(--forgot)}@media(hover:hover)and (pointer:fine){.loom-overflow-size-slider .MuiSlider-thumb:hover{box-shadow:0 0 0 4px #35475f2e,0 1px 3px #14100c33}.loom-overflow-trigger.MuiIconButton-root:hover{color:var(--text);border-color:transparent;background:var(--warm-100)}.loom-overflow-script-option:hover:not(:disabled){color:var(--text)}.loom-overflow-action-button-default:hover{background:color-mix(in srgb,var(--surface) 86%,var(--warm-100) 14%)}.loom-overflow-action-button-danger:hover{background:color-mix(in srgb,var(--surface) 88%,var(--forgot) 12%);color:color-mix(in srgb,var(--forgot) 92%,var(--warm-900))}}@media(max-width:899px){.loom-overflow-menu-paper{width:calc(100vw - 24px);max-width:360px}.loom-overflow-menu-paper--actions{width:auto;max-width:min(220px,calc(100vw - 24px))}.loom-overflow-popover{min-width:0;padding:12px 12px 10px}.loom-overflow-popover--actions{min-width:148px;padding:6px}.loom-overflow-script-option{min-height:36px;padding:8px 9px}.loom-overflow-script-glyph{font-size:24px}.loom-overflow-inline-setting-label,.loom-overflow-field-label{font-size:14px}}.loom-numeric-option-group{display:flex;flex-wrap:wrap;gap:4px}.loom-numeric-option-button{width:46px;min-height:38px;padding:8px 0;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg);color:var(--text-soft);cursor:pointer;font-family:var(--font-ui);font-size:var(--ui-md);line-height:1;text-align:center;touch-action:manipulation;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard);-webkit-tap-highlight-color:transparent}.loom-numeric-option-button:active{background:var(--warm-100)}.loom-numeric-option-input{width:52px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-family:var(--font-ui);font-size:var(--ui-note);text-align:center}.loom-numeric-option-input:focus{outline:var(--focus-ring-primary-strong);box-shadow:var(--focus-ring-primary-soft)}.loom-numeric-option-input.is-invalid{border-color:var(--forgot)}
