@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2) format("woff2"),url(/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2) format("woff2"),url(/assets/nunito-vietnamese-400-normal-DtOtW02z.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2) format("woff2"),url(/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2) format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2) format("woff2"),url(/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2) format("woff2"),url(/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(/assets/nunito-latin-ext-600-normal-BKUpuB78.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2) format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2) format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2) format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(/assets/nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=peach]{--brand: #FF7F6A;--brand-ink: #E0604B;--brand-2: #FFE4DD;--brand-3: #FFF3EF}[data-theme=mint]{--brand: #2FB58E;--brand-ink: #1F9372;--brand-2: #D3F2E7;--brand-3: #EEFAF5}[data-theme=sky]{--brand: #3B9BE0;--brand-ink: #2B7CBD;--brand-2: #D9ECFB;--brand-3: #F0F7FE}[data-theme=taro]{--brand: #9673E0;--brand-ink: #7553C4;--brand-2: #E9E1FA;--brand-3: #F6F2FD}:root{--bg: #F7F5F2;--card: #FFFFFF;--ink: #2F2A27;--ink-2: #5F5853;--muted: #9C948D;--line: #ECE7E1;--line-2: #F3EFEA;--peach-l: #FFEDE7;--mint-l: #E3F6EE;--sky-l: #E6F2FC;--taro-l: #F0EBFC;--sun: #FFCF56;--sun-l: #FFF5D9;--ok: #2FA672;--bad: #E5534B;--hl: #FFF0B8;--heart: #F0577A;--r: 16px;--r-s: 12px;--shadow: 0 1px 2px rgba(47, 42, 39, .04), 0 4px 16px rgba(47, 42, 39, .05);--shadow-pop: 0 12px 36px rgba(47, 42, 39, .16);font-family:Nunito,-apple-system,PingFang SC,HarmonyOS Sans SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--brand-ink);text-decoration:none}h1,h2,h3,h4{margin:0 0 12px;line-height:1.3;font-weight:800;text-wrap:balance}h2{font-size:22px}h3{font-size:17px}h4{font-size:15px;display:flex;align-items:center;gap:6px}p{margin:0 0 8px;line-height:1.65}button{font:inherit;cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:not-allowed}svg{flex:none}::selection{background:var(--brand-2)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes popIn{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes pulse{50%{opacity:.6}}.bounce{animation:bounce 2.2s ease-in-out infinite}.pop-in{animation:popIn .18s ease-out}.mascot{display:block;flex:none;overflow:visible}.row{display:flex;align-items:center}.row.between{justify-content:space-between}.row.center,.center{justify-content:center;text-align:center}.gap{gap:12px}.gap-s{gap:6px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:13px}.nowrap{white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ok{color:var(--ok);font-weight:700}.error{color:var(--bad);font-size:14px;background:#fdeeee;padding:8px 12px;border-radius:10px}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blur{filter:blur(5px);-webkit-user-select:none;user-select:none;transition:filter .2s}.blur:hover{filter:blur(3px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:15px;font-weight:700;transition:.15s;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand-ink)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover:not(:disabled){background:var(--brand-ink);border-color:var(--brand-ink);color:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn.lg{padding:13px 28px;font-size:16px}.btn.sm{padding:6px 14px;font-size:13px}.btn.block{display:flex;width:100%}.btn.danger-outline{color:var(--bad);border-color:#f5cfcc;margin-top:8px}.chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-size:13px;font-weight:700;white-space:nowrap;transition:.15s}.chip:hover:not(:disabled){border-color:var(--brand);color:var(--brand-ink)}.chip.on{background:var(--brand-3);border-color:var(--brand);color:var(--brand-ink)}.chip.danger{color:var(--bad)}.chip.rec{background:var(--bad);color:#fff;border-color:var(--bad);animation:pulse 1s infinite}.chip.known{background:var(--mint-l);border-color:var(--ok);color:var(--ok)}.chip.unknown{background:#fdeeee;border-color:var(--bad);color:var(--bad)}.tiny{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:0;background:transparent;color:var(--muted);min-width:32px;min-height:32px;padding:4px 6px;border-radius:10px;font-size:13px;font-weight:700;transition:.12s}.tiny:hover{background:var(--line-2);color:var(--ink)}.tiny.star{color:#f2a900}.tiny.danger{color:var(--bad)}.icon-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--card);display:inline-grid;place-items:center;color:var(--ink-2);transition:.12s}.icon-btn:hover{border-color:var(--brand);color:var(--brand-ink)}.icon-btn.ghost{border-color:transparent;background:transparent}.icon-btn.ghost:hover{background:var(--line-2);color:var(--ink)}.icon-btn.is-on{color:var(--heart)}.input,.select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;font-size:15px;color:var(--ink);transition:.15s}.input:focus,.select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-2)}.input:disabled{background:var(--line-2);color:var(--muted)}.input.sm,.select.sm{padding:6px 10px;font-size:13px;border-radius:9px}.select{width:auto;cursor:pointer}textarea.input{resize:vertical;line-height:1.55}select.select,select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background:#fff 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='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%239C948D' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center}select.select.sm{padding-right:26px;background-position:right 8px center}.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:0 14px;transition:.15s}.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-2)}.search input{border:0;outline:0;background:transparent;font:inherit;font-size:15px;padding:10px 0;width:100%;color:var(--ink)}.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--brand-3);color:var(--brand-ink)}.t-peach{background:var(--peach-l);color:#d3644f}.t-mint{background:var(--mint-l);color:#1f9372}.t-sky{background:var(--sky-l);color:#2b7cbd}.t-taro{background:var(--taro-l);color:#7553c4}.t-sun{background:var(--sun-l);color:#a87c00}.tags{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.lvl{padding:2px 9px;border-radius:999px;font-size:12px;font-weight:800;background:var(--mint-l);color:#1f9372;white-space:nowrap}.lvl-中级{background:var(--sun-l);color:#a87c00}.lvl-高级{background:var(--peach-l);color:#d3644f}.badge{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--line-2);color:var(--ink-2);white-space:nowrap}.badge.published{background:var(--mint-l);color:#1f9372}.badge.banned,.badge.error{background:#fdeeee;color:var(--bad)}.badge.running{background:var(--brand-3);color:var(--brand-ink)}.lang-tag{display:inline-block;min-width:26px;padding:1px 6px;border-radius:6px;background:var(--line-2);font-size:11px;font-weight:800;color:var(--ink-2);text-align:center}.cc-code{font-size:11px;font-weight:800;color:var(--muted)}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:14px}.empty{padding:48px 20px;text-align:center;color:var(--muted);display:grid;justify-items:center;gap:10px}.empty p{max-width:360px}.spinner{display:grid;justify-items:center;gap:6px;padding:60px;color:var(--muted);font-weight:700}.notice{display:flex;align-items:center;gap:8px;background:var(--sun-l);border:1px solid #F3DD94;padding:10px 14px;border-radius:12px;margin-bottom:12px;font-size:14px}.toasts{position:fixed;top:calc(14px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:1100;display:grid;gap:8px;width:max-content;max-width:calc(100vw - 32px)}.toast{background:#2f2a27eb;color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;font-weight:700;box-shadow:var(--shadow-pop);animation:popIn .18s ease-out;text-align:center}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#2f2a2759;display:grid;place-items:center;z-index:900;padding:16px;animation:fadeIn .15s}.modal{position:relative;background:var(--card);border-radius:22px;padding:26px 22px 22px;width:100%;max-height:90vh;overflow:auto;box-shadow:var(--shadow-pop)}.modal-x{position:absolute;right:12px;top:12px;border:0;background:var(--line-2);width:32px;height:32px;border-radius:50%;font-size:18px;color:var(--ink-2);line-height:1}.form{display:grid;gap:14px}.form label,label.grow,.field{display:grid;gap:6px;font-size:13px;color:var(--ink-2);font-weight:700}.check{display:flex!important;align-items:center;gap:8px;font-size:14px;color:var(--ink);font-weight:600;cursor:pointer}.check input{accent-color:var(--brand);width:16px;height:16px}.center-page{display:grid;place-items:center;gap:12px;padding:80px 16px}.switch{position:relative;display:inline-block;width:42px;height:24px;flex:none}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;background:#ddd6cf;border-radius:24px;transition:.2s;cursor:pointer}.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px #00000026}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:before{transform:translate(18px)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;font-size:14px;font-weight:600;cursor:pointer;border-top:1px solid var(--line-2)}.seg{display:inline-flex;background:var(--line-2);border-radius:999px;padding:3px;gap:2px}.seg button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;padding:7px 14px;border-radius:999px;font-size:14px;color:var(--ink-2);white-space:nowrap;font-weight:700;transition:.15s}.seg button.on{background:var(--card);color:var(--brand-ink);box-shadow:0 1px 3px #2f2a271a}.seg.sm button{padding:5px 11px;font-size:13px}.seg.wide{display:flex}.seg.wide button{flex:1;justify-content:center}.seg.wrap{flex-wrap:wrap;border-radius:14px}.dd-trigger{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-2);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap;max-width:100%}.dd-trigger:hover{border-color:var(--brand);color:var(--brand-ink)}.dd-trigger:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-2)}.dd-trigger.is-set{background:var(--brand-3);border-color:var(--brand);color:var(--brand-ink)}.dd-trigger.is-open{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-2)}.dd-trigger.dd-sm{min-height:34px;padding:5px 11px;font-size:13px}.dd-text{overflow:hidden;text-overflow:ellipsis;max-width:170px}.dd-chev{flex:none;opacity:.6;transition:transform .2s}.dd-trigger.is-open .dd-chev{transform:rotate(180deg)}.dd-icon{flex:none;line-height:1;display:inline-flex}.dd-pop{position:fixed;z-index:1000;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:6px;overflow:auto;box-shadow:var(--shadow-pop);animation:popIn .15s ease-out;overscroll-behavior:contain}.dd-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.dd-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer;white-space:nowrap}.dd-option.active,.dd-option:hover{background:var(--line-2)}.dd-option.on{color:var(--brand-ink);font-weight:800;background:var(--brand-3)}.dd-check{margin-left:auto;flex:none;color:var(--brand)}.dd-item-icon{color:var(--muted)}.dd-option.on .dd-item-icon{color:var(--brand)}.dd-sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#2f2a2759;display:flex;align-items:flex-end;animation:fadeIn .15s}.dd-sheet{width:100%;background:var(--card);border-radius:22px 22px 0 0;padding:6px 14px calc(14px + env(safe-area-inset-bottom));max-height:80dvh;display:flex;flex-direction:column;animation:slideUp .22s cubic-bezier(.2,.8,.3,1)}.dd-sheet-handle{width:40px;height:5px;border-radius:99px;background:var(--line);margin:6px auto 4px;flex:none}.dd-sheet-title{text-align:center;font-weight:800;font-size:15px;padding:6px 0 10px;color:var(--ink-2);flex:none}.dd-sheet-body{overflow:auto;overscroll-behavior:contain}.dd-sheet .dd-option{min-height:50px;font-size:16px;padding:12px 14px;border-radius:14px}.settings{display:grid;gap:4px;padding:6px 6px 2px;min-width:280px}.set-row{display:grid;gap:8px;padding:8px 2px 10px}.set-row>span{font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.02em}.set-row .seg{justify-self:start}.logo{display:flex;align-items:center;gap:8px;color:var(--ink)}.logo-bird{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--brand-3)}.logo-text{display:grid;line-height:1.15}.logo-text b{font-size:17px;font-weight:800}.logo-text small{font-size:11px;color:var(--muted);font-weight:700}.topnav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:14px;padding:10px 24px;padding-top:max(10px,env(safe-area-inset-top));background:#ffffffe6;-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}.topnav-links{display:flex;gap:2px;margin-left:auto}.topnav-links a{padding:8px 14px;border-radius:10px;color:var(--ink-2);font-size:14px;font-weight:700;white-space:nowrap;transition:.15s}.topnav-links a:hover{background:var(--line-2);color:var(--ink)}.topnav-links a.active{background:var(--brand-3);color:var(--brand-ink)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-2);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;flex:none}.avatar.xl{width:64px;height:64px;font-size:26px}.tabbar{display:none}.page{max-width:1200px;margin:0 auto;padding:24px}.page.narrow{max-width:760px}.page-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px}.page-head h2{margin:0}.blob{position:absolute;border-radius:50%;filter:blur(30px);opacity:.55;z-index:0;pointer-events:none}.blob.b1{width:340px;height:340px;background:var(--brand-2);top:-120px;left:-100px}.blob.b2{width:280px;height:280px;background:var(--mint-l);top:140px;right:-80px}.blob.b3{width:220px;height:220px;background:var(--sky-l);top:560px;left:6%}.landing{position:relative;overflow:hidden}.landing>*:not(.blob){position:relative;z-index:1}.landing>.landing-nav,.auth-wrap>.auth-top{z-index:20}.landing-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 24px;max-width:1100px;margin:0 auto}.hero{text-align:center;padding:24px 16px 40px;max-width:820px;margin:0 auto}.hero-bird{display:grid;justify-items:center;gap:6px;margin-bottom:8px}.bubble{position:relative;background:#fff;padding:10px 16px;border-radius:18px;border:1px solid var(--line);font-weight:700;color:var(--ink-2);max-width:420px;font-size:15px}.bubble:after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-8px;border:8px solid transparent;border-top-color:#fff;border-bottom:0}.eyebrow{color:var(--brand-ink);font-weight:800;font-size:15px;margin:8px 0 0}.hero h1{font-size:clamp(30px,5.4vw,50px);margin:8px 0 14px;line-height:1.2}.hero-sub{color:var(--ink-2);font-size:17px;margin:0 auto 26px;max-width:620px}.section{max-width:1100px;margin:0 auto;padding:36px 16px}.section h2{text-align:center;margin-bottom:24px;font-size:26px}.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.feature{border-radius:var(--r);padding:18px;background:#fff;border:1px solid var(--line)}.feature-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:var(--brand-ink)}.f-peach .feature-icon{background:var(--peach-l);color:#d3644f}.f-mint .feature-icon{background:var(--mint-l);color:#1f9372}.f-sky .feature-icon{background:var(--sky-l);color:#2b7cbd}.f-taro .feature-icon{background:var(--taro-l);color:#7553c4}.f-sun .feature-icon{background:var(--sun-l);color:#a87c00}.feature b{display:block;margin:12px 0 4px;font-size:16px}.feature p{color:var(--ink-2);font-size:14px;margin:0}.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.steps li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}.steps em{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;font-style:normal;font-weight:800}.steps b{display:block;margin:10px 0 4px}.steps p{color:var(--ink-2);font-size:14px;margin:0}.price-card{position:relative;max-width:400px;margin:34px auto 0;background:var(--card);border-radius:24px;padding:46px 26px 24px;text-align:center;display:grid;gap:10px;border:1px solid var(--line);box-shadow:var(--shadow)}.price-bird{position:absolute;top:-44px;left:50%;margin-left:-40px}.footer{text-align:center;padding:28px 16px 40px;color:var(--muted);font-size:13px}.tiny-note{font-size:11px;opacity:.8}.member{display:grid;gap:12px}.member-bird{justify-self:center;margin-top:-6px}.member-badge{justify-self:center;display:inline-block;background:var(--brand);color:#fff;padding:4px 14px;border-radius:999px;font-weight:800;font-size:12px;letter-spacing:.06em}.member-badge.sm{font-size:11px;padding:3px 10px}.member-price{display:flex;align-items:baseline;justify-content:center;gap:10px}.member-price b{font-size:42px;color:var(--brand-ink);font-weight:800}.member-price s{color:var(--muted)}.member-list{margin:0;padding:0;list-style:none;text-align:left;display:grid;gap:6px;font-size:14px}.member-list li{background:var(--line-2);padding:9px 12px 9px 36px;border-radius:10px;position:relative}.member-list li:before{content:"";position:absolute;left:12px;top:50%;width:16px;height:16px;margin-top:-8px;background:var(--brand);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat}.auth-wrap{position:relative;overflow:hidden;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top))}.auth-wrap>*:not(.blob){position:relative;z-index:1}.auth-top{width:100%;max-width:1000px;display:flex;justify-content:space-between;align-items:center}.auth-card{width:100%;max-width:400px;margin:60px 0 30px;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:54px 24px 24px;box-shadow:var(--shadow);display:grid;gap:14px;position:relative}.auth-card h1{text-align:center;font-size:22px;margin:0}.auth-bird{position:absolute;top:-48px;left:50%;margin-left:-42px}.auth-card label{display:grid;gap:6px;font-size:13px;color:var(--ink-2);font-weight:700}.phone-row{display:grid;grid-template-columns:auto 1fr;gap:8px}.phone-row .dd-trigger{min-height:46px;border-radius:12px}.library{display:grid;grid-template-columns:280px 1fr;gap:22px;padding:22px 24px;max-width:1440px;margin:0 auto}.lib-side{position:sticky;top:80px;align-self:start;max-height:calc(100vh - 96px);overflow:auto}.hello-card{display:flex;align-items:center;gap:10px;background:var(--brand-3);border-color:transparent}.hello-card p{margin:0;font-weight:700;font-size:14px}.stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.stat3>div{border-radius:12px;padding:10px 4px;background:var(--line-2)}.stat3 b{display:block;font-size:20px;font-weight:800}.stat3 span{font-size:12px;color:var(--ink-2);font-weight:600}.calendar b{font-size:14px;text-transform:capitalize}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px;text-align:center;font-size:12px}.cal-w{color:var(--muted);font-weight:700}.cal-d{border-radius:50%;aspect-ratio:1;display:grid;place-items:center;font-weight:600}.cal-d.on{background:var(--brand);color:#fff}.cal-d.today{box-shadow:0 0 0 1.5px var(--brand) inset}.ann{background:var(--line-2);border-radius:10px;padding:10px 12px;margin-bottom:8px}.ann p{margin:0;font-size:13px}.ann small{color:var(--muted);font-size:11px}.lib-strip{display:none}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.filters .search{min-width:240px}.filter-chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.clear-filters{color:var(--brand-ink)}.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.vcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;color:var(--ink);transition:.2s;display:flex;flex-direction:column}.vcard-cover{position:relative;aspect-ratio:16/9;background:var(--brand-3);overflow:hidden}.vcard-cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-ph{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:4px;font-size:14px;font-weight:800;color:var(--brand-ink);padding:12px;text-align:center;background:linear-gradient(135deg,var(--brand-3),var(--sky-l))}.vcard-dur{position:absolute;right:8px;bottom:8px;background:#2f2a27b3;color:#fff;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px}.vcard-free{position:absolute;left:8px;top:8px;background:var(--sun);color:#5c4300;font-size:12px;font-weight:800;padding:2px 9px;border-radius:999px}.heart{position:absolute;right:8px;top:8px;width:34px;height:34px;border-radius:50%;border:0;background:#ffffffeb;color:var(--heart);display:grid;place-items:center;transition:.15s}.vcard-prog{position:absolute;left:0;right:0;bottom:0;height:3px;background:#ffffff80}.vcard-prog i{display:block;height:100%;background:var(--brand)}.vcard-body{padding:12px 14px 14px;flex:1;display:flex;flex-direction:column}.vcard-body h3{font-size:16px;margin-bottom:6px}.vcard-body p{font-size:13px;color:var(--ink-2);margin-bottom:2px}.vcard-body>.row:last-child{margin-top:auto}.author{max-width:120px}@media(hover:hover){.vcard:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.heart:hover{transform:scale(1.08)}}.learn{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.learn-head{flex:none;display:flex;align-items:center;gap:6px;min-height:56px;padding:6px 12px;padding-top:max(6px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));background:#fff;border-bottom:1px solid var(--line)}.learn-title{flex:1;min-width:0;display:grid}.learn-title h1{font-size:16px;margin:0}.learn-meta{font-size:12px;color:var(--muted);font-weight:600}.learn-head .lang-btn{min-height:34px;padding:5px 10px}.learn-body{flex:1;min-height:0;display:grid;gap:16px;padding:16px 20px;width:100%;max-width:1640px;margin:0 auto;grid-template-columns:minmax(0,1.35fr) minmax(360px,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"stage reader" "panel reader" "intro reader"}.stage{grid-area:stage;min-height:0}.player{position:relative;aspect-ratio:16/9;background:#1f1b19;border-radius:var(--r);overflow:hidden}.player video{width:100%;height:100%;display:block;object-fit:contain;background:#1f1b19;cursor:pointer}.player-big-play{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:62px;height:62px;border-radius:50%;border:0;background:#ffffffeb;color:var(--brand);display:grid;place-items:center;box-shadow:0 6px 20px #00000040}.player-big-play svg{margin-left:4px}.player-fs{position:absolute;right:10px;bottom:10px;width:32px;height:32px;border-radius:10px;border:0;background:#00000073;color:#fff;display:grid;place-items:center;opacity:.85}.paywall{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#fff;font-weight:700}.paywall img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:blur(8px) brightness(.5)}.paywall>div{position:relative;display:grid;justify-items:center;gap:8px;padding:16px}.cpanel{grid-area:panel;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 14px 8px}.cp-progress{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.cp-progress input[type=range]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:99px;margin:0;cursor:pointer;background:linear-gradient(var(--brand),var(--brand)) 0 / var(--pct, 0%) 100% no-repeat,var(--line)}.cp-progress input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--brand);box-shadow:0 1px 4px #00000026}.cp-progress input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:#fff;border:3px solid var(--brand)}.cp-row{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:6px}.tool-btn{display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:none;color:var(--ink-2);font-size:11px;font-weight:700;min-width:56px;padding:6px 4px;border-radius:12px;cursor:pointer;transition:.12s}.tool-btn:hover{background:var(--line-2);color:var(--ink)}.tool-btn.on,.tool-btn.is-open{color:var(--brand-ink)}.tool-ico{position:relative;display:inline-flex}.tool-badge{position:absolute;top:-5px;right:-10px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--brand);color:#fff;font-size:10px;font-style:normal;font-weight:800;line-height:16px;text-align:center}.tool-label{max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-btn{width:44px;height:44px;border:0;background:none;border-radius:50%;color:var(--ink);display:grid;place-items:center;transition:.12s}.cp-btn:hover{background:var(--line-2)}.cp-play{width:52px;height:52px;border-radius:50%;border:0;background:var(--brand);color:#fff;display:grid;place-items:center;flex:none;transition:.12s;box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 35%,transparent)}.cp-play:hover{background:var(--brand-ink)}.cp-play .nudge{margin-left:3px}.intro{grid-area:intro;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;overflow:auto;min-height:0;align-self:start;max-height:100%}.intro p{font-size:14px;color:var(--ink-2)}.reader{grid-area:reader;position:relative;display:flex;flex-direction:column;min-height:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.reader-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line-2)}.practice-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 12px;border-radius:999px;background:var(--brand-3);color:var(--brand-ink);font-size:13px;font-weight:800}.practice-tag button{border:0;background:none;color:inherit;display:grid;place-items:center;width:22px;height:22px;border-radius:50%}.sub-list{flex:1;min-height:0;overflow:auto;padding:8px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding:40px}.sub{padding:10px 14px 12px;border-radius:12px;cursor:pointer;border-left:3px solid transparent;transition:background .15s}.sub+.sub{margin-top:2px}.sub.cur{background:var(--brand-3);border-left-color:var(--brand)}.sub-top{display:flex;justify-content:space-between;align-items:center;min-height:28px}.sub-time{font-size:12px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.sub.cur .sub-time{color:var(--brand-ink)}.sub-actions{display:flex;gap:0}.sub .en{font-size:17px;line-height:1.65;margin:2px 0;color:var(--ink);font-weight:600}.sub .tr{font-size:14px;color:var(--ink-2);margin:0}.font-s .sub .en{font-size:15px}.font-l .sub .en{font-size:20px}.font-l .sub .tr{font-size:16px}.w{border-radius:5px;transition:background .12s,color .12s,box-shadow .12s}.wd{cursor:pointer}.w.speaking{background:var(--brand-2);color:var(--brand-ink);box-shadow:0 0 0 2px var(--brand-2)}.hl{text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:2px;text-underline-offset:5px;font-weight:800;cursor:pointer;border-radius:5px}.sel,.hl.sel{background:var(--hl)}@media(hover:hover){.sub:hover{background:#fbfaf8}.sub.cur:hover{background:var(--brand-3)}.wd:hover,.hl:hover{background:var(--hl)}}.cloze{border:0;border-bottom:2px solid var(--brand);background:var(--brand-3);font:inherit;font-weight:700;padding:0 5px;border-radius:6px 6px 0 0;color:var(--ink)}.cloze:focus{outline:none;background:#fff}.cloze.right{border-color:var(--ok);background:var(--mint-l)}.cloze.wrong{border-color:var(--bad);background:#fdeeee}.shadow-bar{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.cards-seg{margin:4px 4px 10px}.locked-more{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:16px;color:var(--ink-2);font-weight:700;background:var(--sun-l);border-radius:12px;margin:8px}.follow-fab{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--brand-ink);font-size:13px;font-weight:800;box-shadow:var(--shadow-pop);animation:popIn .18s ease-out}.word-pop{position:fixed;z-index:200;width:320px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-pop);padding:14px;display:grid;gap:6px}.word-pop p{margin:0}.pop-word{font-size:19px;color:var(--brand-ink)}.pos{color:var(--brand);font-style:italic;margin-right:4px;font-weight:700}.fc-layout{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:calc(100vh - 61px)}.fc-side{padding:16px;display:flex;flex-direction:column;gap:12px;height:calc(100vh - 61px);height:calc(100dvh - 61px);position:sticky;top:61px;min-width:0}.fc-videos{overflow:auto;display:grid;gap:2px;align-content:start;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:6px}.fc-video{text-align:left;border:0;background:none;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;transition:.12s}.fc-video:hover{background:var(--line-2)}.fc-video.on{background:var(--brand-3);color:var(--brand-ink);font-weight:800}.fc-main{padding:18px 24px 30px;display:grid;gap:14px;align-content:start;min-width:0}.fc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.fcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:6px;align-content:start;margin-bottom:10px}.fc-grid .fcard{margin:0}.fcard.known{border-color:#bfe6d3}.fcard.unknown{border-color:#f5cfcc}.fcard-text{font-size:18px;color:var(--ink)}.fcard p{margin:0;font-size:14px}blockquote{margin:4px 0;padding:9px 12px;background:var(--line-2);border-radius:10px;font-size:13px;line-height:1.6;color:var(--ink-2)}.study{display:grid;gap:14px;text-align:center}.study-progress{height:6px;border-radius:99px;background:var(--line-2);overflow:hidden}.study-progress i{display:block;height:100%;background:var(--brand);transition:width .3s}.study-card{min-height:230px;display:grid;align-content:center;justify-items:center;gap:8px;border-radius:20px;background:var(--brand-3);padding:22px;cursor:pointer}.study-card b{font-size:28px}.study-card.flipped{background:var(--mint-l)}.study-card blockquote{background:#ffffffb3}.manage-bar{margin:4px 0 12px}.group-date{font-size:12px;color:var(--muted);margin:18px 4px 8px;font-weight:800}.fav-item{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:8px}.fav-item.sel{border-color:var(--brand);background:var(--brand-3)}.fav-item .en{font-size:15.5px;margin:0 0 2px;font-weight:600}.fav-item .tr{font-size:13.5px;color:var(--ink-2);margin:0 0 6px}.fav-item input{accent-color:var(--brand)}.profile-card{display:flex;align-items:center;gap:16px}.profile-card h2{margin:0 0 2px;font-size:20px}.profile-card p{margin:0 0 6px}.kv{display:grid;grid-template-columns:110px 1fr;gap:8px;margin:0 0 14px;font-size:14px}.kv dt{color:var(--muted);font-weight:700}.kv dd{margin:0;font-weight:600}.pref-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.pref-row>span{width:90px;font-weight:700;color:var(--ink-2);font-size:14px}.theme-dot{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-weight:700;font-size:13px}.theme-dot i{width:14px;height:14px;border-radius:50%}.theme-dot[data-t=peach] i{background:#ff7f6a}.theme-dot[data-t=mint] i{background:#2fb58e}.theme-dot[data-t=sky] i{background:#3b9be0}.theme-dot[data-t=taro] i{background:#9673e0}.theme-dot.on{border-color:var(--brand);background:var(--brand-3)}.admin{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.admin-side{background:var(--card);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh}.admin-side nav{display:grid;gap:2px;flex:1;align-content:start}.admin-side nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--ink-2);font-size:14px;font-weight:700}.admin-side nav a:hover{background:var(--line-2)}.admin-side nav a.active{background:var(--brand-3);color:var(--brand-ink)}.admin-side>a{display:inline-flex;align-items:center;gap:4px}.admin-main{padding:24px 28px;min-width:0}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px}.tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.tile span{font-size:13px;color:var(--muted);font-weight:700}.tile b{display:block;font-size:24px;margin-top:4px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.bars{display:flex;align-items:flex-end;gap:6px;height:160px}.bar{flex:1;max-width:48px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.bar i{width:100%;background:var(--brand);border-radius:8px 8px 3px 3px;min-height:3px}.bar span{font-size:10px;color:var(--muted);margin-top:4px}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:14px;margin-bottom:16px}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle}.table th{background:#fbfaf8;font-weight:800;font-size:13px;color:var(--ink-2)}.table tr:last-child td{border-bottom:0}.table tr.dim td{opacity:.5}.thumb{width:76px;height:43px;object-fit:cover;border-radius:8px;display:block}.thumb.ph{background:var(--brand-3)}.fresh-codes{display:grid;gap:8px;margin-top:12px;justify-items:start}.preview{width:100%;max-height:260px;border-radius:12px;background:#1f1b19;object-fit:contain}.se-toolbar{margin-bottom:10px}.job-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;margin-top:12px;font-size:14px;font-weight:600;background:var(--card);border:1px solid var(--line)}.job-bar>span:first-child{display:inline-flex;align-items:center;gap:6px}.job-bar.running{background:var(--brand-3)}.job-bar.done{background:var(--mint-l)}.job-bar.error{background:#fdeeee}.dot-spin{display:inline-block;width:12px;height:12px;border:2px solid var(--brand);border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.sub-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px;align-items:start}.se-left{position:sticky;top:12px;display:grid;gap:10px}.se-left video{width:100%;border-radius:12px;background:#1f1b19}.se-rows{max-height:calc(100vh - 230px);overflow:auto;display:grid;gap:8px;padding-right:4px}.se-row{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;display:grid;gap:6px}.se-row.cur{border-color:var(--brand);background:var(--brand-3)}.se-time{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.se-time .input{width:90px}.card-table{display:grid;gap:6px;overflow-x:auto}.ct-head,.ct-row{display:grid;grid-template-columns:96px 140px 100px 56px 1fr 1fr 1fr 1.6fr 50px;gap:6px;align-items:start;min-width:1100px}.ct-head{font-size:12px;color:var(--muted);padding:0 2px;font-weight:800}.ct-row{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px}.ct-row>div{display:grid;gap:4px}@media(min-width:961px){.learn{--video-max-h: max(200px, calc(100dvh - 343px) )}.learn-body{grid-template-rows:auto auto minmax(110px,1fr);overflow-y:auto}.player{max-height:var(--video-max-h);width:min(100%,calc(var(--video-max-h) * 16 / 9));margin:0 auto}.intro{max-height:100%}}@media(min-width:961px)and (max-height:600px){.learn-body{grid-template-rows:auto auto auto}.intro p.muted{display:none}}@media(pointer:coarse){.input,.search input,textarea,select,.cloze,.input.sm,.select.sm{font-size:16px}.tiny{min-width:38px;min-height:38px}.seg button,.chip,.dd-trigger.dd-sm{min-height:36px}.icon-btn{width:42px;height:42px}.check input,.fav-item input{width:20px;height:20px}.heart{width:38px;height:38px}}@media(hover:none){.vcard:active{transform:scale(.985)}}@media(min-width:1600px){.library{max-width:1680px;grid-template-columns:300px 1fr}.vgrid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}}@media(max-width:1100px){.library{display:flex;flex-direction:column;gap:14px}.lib-main{order:1}.lib-side{order:2;position:static;max-height:none;overflow:visible;display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.side-only{display:none}.lib-strip{display:flex;align-items:center;gap:14px;padding:12px 16px;margin-bottom:14px;border-radius:var(--r);background:var(--brand-3)}.lib-strip p{margin:0;font-weight:700;font-size:14px}.lib-strip .stat3{flex:none;width:300px}.lib-strip .stat3>div{padding:6px 4px;background:#ffffffbf}.lib-strip .stat3 b{font-size:17px}.learn-body{grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);gap:12px;padding:12px}}@media(max-width:960px){.learn-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"stage" "reader" "panel";padding:0;gap:0}.intro{display:none}.stage{background:#1f1b19}.player{border-radius:0;max-height:40dvh;width:min(100%,calc(40dvh * 16 / 9));margin:0 auto}.reader{border:0;border-radius:0;background:var(--bg)}.reader-head{background:#fff;padding:8px 12px}.sub-list{padding:6px 8px 12px}.sub{background:transparent}.sub.cur{background:#fff;box-shadow:var(--shadow)}.cpanel{border:0;border-top:1px solid var(--line);border-radius:0;padding:6px 10px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px #2f2a270d}.cp-row{margin-top:4px}.follow-fab{bottom:12px}.fc-layout{grid-template-columns:230px minmax(0,1fr)}.admin{grid-template-columns:1fr}.admin-side{position:sticky;top:0;z-index:30;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px 14px;gap:10px;border-right:0;border-bottom:1px solid var(--line)}.admin-side nav{display:flex;overflow-x:auto;scrollbar-width:none}.admin-side nav a{white-space:nowrap}.admin-main .table{display:block;overflow-x:auto;white-space:nowrap}.grid2,.sub-editor{grid-template-columns:1fr}.se-left{position:static}.hide-sm{display:none!important}}@media(max-width:720px){body{font-size:15px}h2{font-size:20px}.topnav{padding:8px 14px;padding-top:max(8px,env(safe-area-inset-top));gap:8px}.topnav-links{display:none}.topnav .lang-btn{margin-left:auto}.topnav .logo-text small{display:none}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fffffff5;-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));justify-content:space-around}.tabbar a{display:grid;justify-items:center;gap:2px;padding:5px 2px;color:var(--muted);font-size:10.5px;font-weight:700;flex:1;min-width:0}.tabbar a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.tabbar a.active{color:var(--brand-ink)}.app{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.library,.page,.admin-main{padding:12px 16px}.lib-strip{flex-wrap:wrap;padding:12px 14px;gap:10px}.lib-strip p{flex:1;min-width:160px}.lib-strip .stat3{width:100%}.lib-side{grid-template-columns:1fr}.filters{gap:10px}.filters .search{flex:1 1 100%;min-width:0}.filter-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:2px 16px;flex:1 1 100%}.filter-chips>*{flex:none}.filters .count{display:none}.vgrid{gap:14px}.fc-layout{grid-template-columns:minmax(0,1fr);min-height:0}.fc-side{position:static;height:auto;padding:12px 16px 0}.fc-videos{display:flex;overflow-x:auto;padding:6px;gap:6px;scrollbar-width:none}.fc-video{flex:none;white-space:nowrap;max-width:70vw;overflow:hidden;text-overflow:ellipsis;background:var(--line-2)}.fc-main{padding:12px 16px 24px}.seg.wide button{padding:7px 8px}.learn-head{min-height:50px;gap:2px;padding-left:max(6px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.learn-title h1{font-size:15px}.tool-btn{min-width:0;flex:1;font-size:10.5px;padding:4px 2px}.cp-btn{width:40px;height:40px}.cp-play{width:48px;height:48px}.cp-row{gap:0}.sub{padding:8px 12px 10px}.sub .en{font-size:16.5px}.font-l .sub .en{font-size:19px}.word-pop{left:10px!important;right:10px;top:auto!important;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;max-height:55dvh;overflow:auto;border-radius:20px;animation:slideUp .22s ease-out}.modal-mask{align-items:end;padding:0}.modal,.modal.pop-in{border-radius:22px 22px 0 0;max-height:90dvh;padding:24px 18px calc(18px + env(safe-area-inset-bottom));animation:slideUp .25s cubic-bezier(.2,.8,.3,1)}.hero h1{font-size:clamp(26px,8vw,34px)}.hero-sub{font-size:15px}.hero{padding-top:8px}.section{padding:26px 16px}.auth-card{margin-top:56px;padding:50px 18px 22px}.pref-row>span{width:100%}.kv{grid-template-columns:90px 1fr}.hide-xs{display:none!important}}@media(max-width:560px){.vgrid{grid-template-columns:1fr}}@media(max-width:380px){.topnav .logo-text{display:none}.stat3 b{font-size:17px}.tool-label{max-width:52px}}@media(max-width:960px)and (orientation:landscape)and (max-height:560px){.learn-head{min-height:44px}.learn-body{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"stage reader" "panel reader"}.stage{display:flex;align-items:center;min-height:0}.player{max-height:100%;width:100%;height:100%;aspect-ratio:auto}.reader{border-left:1px solid var(--line)}.cpanel{border-top:1px solid var(--line);padding-bottom:calc(4px + env(safe-area-inset-bottom))}.tabbar{display:none}.app{padding-bottom:0}}@media print{.learn-head,.stage,.cpanel,.intro,.reader-head,.shadow-bar,.tiny,.word-pop,.toasts,.tabbar,.follow-fab{display:none!important}.learn,.learn-body{display:block;height:auto;padding:0;overflow:visible}.reader{border:0}.sub-list{overflow:visible}.sub{break-inside:avoid;padding:4px 0}.sub.cur{background:none;box-shadow:none}.blur{filter:none}}.spin{animation:spin .9s linear infinite}.ve{display:grid;gap:14px}.ve-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:10px 0;margin:-10px 0 0;background:var(--bg);border-bottom:1px solid var(--line)}.ve-head .grow{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ve-head h2{margin:0;font-size:19px;max-width:100%}.ve-tabs{justify-self:start}.ve-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}.ve-col .panel{margin-bottom:14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.panel-head h3{margin:0;font-size:16px;display:inline-flex;align-items:center;gap:6px}.lang-dot{width:6px;height:6px;border-radius:50%;background:var(--line);display:inline-block}.lang-dot.ok{background:var(--ok)}.preview.cover{aspect-ratio:16 / 9;object-fit:cover;max-height:none}.cover-empty{aspect-ratio:16 / 9;border-radius:12px;border:1.5px dashed var(--line);display:grid;place-items:center;color:var(--muted);font-size:14px}.input.empty{background:#fff8e6;border-color:#f3dd94}.small-note{font-size:13px;color:var(--ink-2)}.empty-mini{padding:24px;text-align:center;color:var(--muted);background:var(--card);border:1px dashed var(--line);border-radius:12px}.pipe{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.pipe.running{background:var(--brand-3);border-color:var(--brand-2)}.pipe.done{background:var(--mint-l);border-color:transparent}.pipe.error{background:#fdeeee;border-color:transparent}.pipe-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;flex-wrap:wrap}.pipe.done .pipe-title{color:#1f9372}.pipe.error .pipe-title{color:var(--bad)}.pipe-steps{list-style:none;margin:12px 0 0;padding:0;display:flex;gap:6px;flex-wrap:wrap}.pipe-steps li{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:5px 10px 5px 5px;border-radius:999px;background:#fff9;font-weight:600}.pipe-steps li i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;background:var(--line-2)}.pipe-steps li.done{color:var(--ink-2)}.pipe-steps li.done i{background:var(--ok);color:#fff}.pipe-steps li.cur{color:var(--brand-ink);background:#fff}.pipe-steps li.cur i{background:var(--brand);color:#fff}.upload-stage{display:grid;gap:14px;max-width:760px}.dropzone{display:grid;justify-items:center;align-content:center;gap:8px;min-height:260px;padding:24px;text-align:center;cursor:pointer;border:2px dashed var(--line);border-radius:18px;background:var(--card);color:var(--ink-2);transition:.15s}.dropzone:hover,.dropzone.drag{border-color:var(--brand);background:var(--brand-3);color:var(--brand-ink)}.dropzone.busy{cursor:progress;border-style:solid;border-color:var(--brand-2)}.dropzone b{font-size:16px;color:var(--ink)}.bar-line{width:min(320px,80%);height:6px;border-radius:99px;background:var(--line-2);overflow:hidden}.bar-line i{display:block;height:100%;background:var(--brand);transition:width .2s}.upload-opts{display:grid;gap:10px}.url-alt summary{cursor:pointer;font-size:13px;color:var(--muted)}.url-alt .row{margin-top:8px}.url-alt .input{flex:1}@media(max-width:900px){.ve-grid{grid-template-columns:minmax(0,1fr)}.ve-grid .ve-col:last-child{order:-1}}@media(max-width:600px){.ve-head{flex-wrap:wrap}.ve-head .grow{flex-basis:calc(100% - 50px)}.pipe-steps li{font-size:12px}}fieldset.plain{border:0;padding:0;margin:0;min-width:0}fieldset.plain:disabled{opacity:.55}.heart,.cp-play,.player-big-play,.icon-btn,.cp-btn,.modal-x{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.heart>svg,.cp-play>svg,.player-big-play>svg,.icon-btn>svg{display:block;flex:none}.player-big-play svg{margin-left:3px}.cp-play .nudge{margin-left:2px}.se-row.flagged{border-color:#f3dd94;background:#fffcf0}.se-row.flagged.cur{border-color:var(--brand)}.flag-note{display:grid;gap:4px;font-size:12.5px;color:var(--ink-2);background:#fff6d6;border-radius:8px;padding:8px 10px;justify-items:start}.flag-note p{margin:0;line-height:1.5}.flag-note b{color:#9a6b00;margin-right:4px}.flag-note .diff{display:inline-block;margin:0 4px;font-family:ui-monospace,Menlo,monospace}@media(max-width:520px){.landing-nav{padding:12px 14px;gap:8px}.landing-nav .logo-text small{white-space:nowrap}html:not([lang^=zh]) .landing-nav .logo-text small{display:none}.landing-nav .btn{padding-left:12px;padding-right:12px;white-space:nowrap}.landing-nav>.row{flex-shrink:1;min-width:0}}@media(max-width:380px){.landing-nav{padding-left:10px;padding-right:10px;gap:6px}.landing-nav>.row{gap:6px}.landing-nav .logo{gap:6px}}.cs-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;background:var(--line-2);color:var(--ink-2);white-space:nowrap}.cs-badge.ok{background:var(--mint-l);color:#1f9372}.cs-badge.warn{background:#fff3d6;color:#a86b00}.cs-badge.bad{background:#fdeeee;color:var(--bad)}.cs-panel{border-left:4px solid var(--line)}.cs-panel.ok{border-left-color:var(--ok)}.cs-panel.warn{border-left-color:#f0b429}.cs-panel.bad{border-left-color:var(--bad)}.cs-issues{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.cs-issues li{background:#fffcf4;border:1px solid #F6E3B4;border-radius:12px;padding:10px 12px;font-size:13.5px;display:grid;gap:4px}.cs-panel.bad .cs-issues li{background:#fff8f7;border-color:#f6c9c5}.cs-issues li.sys{background:var(--line-2);border-color:var(--line)}.cs-issues p{margin:0;line-height:1.5}.cs-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cs-cat{font-size:12px;font-weight:700;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 8px}.cs-text{font-weight:700;color:var(--ink)}.cs-note{margin:10px 0 0;font-size:12.5px;color:var(--muted)}.section-sub{text-align:center;color:var(--ink-2);margin:-6px 0 16px}.landing .vgrid{margin-bottom:16px}.for-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.faq{display:grid;gap:10px;max-width:820px;margin:0 auto}.faq details{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 18px}.faq summary{cursor:pointer;font-weight:800;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:12px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--brand-ink);font-weight:900}.faq details[open] summary:after{content:"–"}.faq details p{margin:10px 0 0;color:var(--ink-2);line-height:1.7}@media(max-width:720px){.for-grid{grid-template-columns:minmax(0,1fr)}}.pipe.cs-block{background:#fdeeee;border-color:transparent}.pipe.cs-block .pipe-title{color:var(--bad)}.pipe.cs-review{background:#fff3d6;border-color:transparent}.pipe.cs-review .pipe-title{color:#a86b00}.cs-mini{border:1px solid var(--line,#eee);border-radius:10px;padding:6px 10px;margin:0 0 10px;font-size:13px;background:var(--card,#fff)}.cs-mini summary{display:flex;align-items:center;gap:6px;flex-wrap:wrap;cursor:pointer;list-style:none}.cs-mini summary::-webkit-details-marker{display:none}.cs-mini summary .tiny{margin-left:auto}.cs-mini.ok summary{color:#1f9372}.cs-mini.warn summary{color:#b7791f}.cs-mini.bad summary{color:#d64545}.cs-mini .cs-issues{margin-top:8px}.cs-mini .cs-note{margin:6px 0 0;font-size:12px;color:var(--muted,#999)}
