:root{--bg:#fff;--ink:#111;--ink-soft:#3a3a3a;--mute:#8a8a8a;--line:#ececec;--line-strong:#d6d6d6;--signal:#e23d2a;--signal-soft:#e23d2a1f;--surface:#f7f7f7;--ok:#0f7b5f;--font-display:"Instrument Sans", "Noto Sans SC", system-ui, sans-serif;--font-body:"Noto Sans SC", "Instrument Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.45, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow:hidden}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}button,input,textarea{font:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--signal);color:#fff}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{background:var(--bg);grid-template-rows:auto 1fr auto;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.cursor-field{pointer-events:none;z-index:0;transition:opacity .4s var(--ease-out);position:absolute;inset:0}.topbar{z-index:2;justify-content:space-between;align-items:center;gap:20px;padding:18px 36px 8px;display:flex;position:relative}.topbar-left{align-items:center;gap:28px;min-width:0;display:flex}.brand{cursor:pointer;align-items:center;gap:12px;display:flex}.main-nav{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:4px;padding:4px;display:flex}.nav-item{color:var(--mute);transition:color .25s, background .25s, transform .25s var(--ease-spring);border-radius:999px;padding:8px 16px;font-size:13px}.nav-item:hover{color:var(--ink)}.nav-item.is-active{color:#fff;background:var(--ink)}.brand-mark{border:1.5px solid var(--ink);border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:relative}.brand-mark:before{content:"";background:var(--ink);width:14px;height:1.5px;position:absolute}.brand-mark:after{content:"";background:var(--signal);z-index:1;border-radius:50%;width:6px;height:6px;position:relative}.brand-text{flex-direction:column;gap:2px;display:flex}.brand-name{font-family:var(--font-display);letter-spacing:.08em;font-size:18px;font-weight:700;line-height:1}.brand-sub{color:var(--mute);letter-spacing:.18em;text-transform:uppercase;font-size:11px}.top-actions{align-items:center;gap:8px;display:flex}.ghost-btn{color:var(--ink-soft);border:1px solid #0000;border-radius:999px;padding:8px 14px;font-size:13px;transition:border-color .25s,color .25s,background .25s}.ghost-btn:hover{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}.stage{z-index:1;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center;gap:28px;min-height:0;padding:12px 36px 20px;display:grid;position:relative;overflow:hidden}.stage-bili{grid-template-columns:unset;flex-direction:column;align-items:stretch;height:100%;min-height:0;display:flex;overflow:hidden}.stage-left{flex-direction:column;gap:28px;min-width:0;max-height:100%;padding-right:8px;display:flex;overflow:auto}.bili-page{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:18px;width:100%;height:100%;min-height:0;padding-bottom:28px;display:flex;overflow:hidden auto}.bili-page::-webkit-scrollbar{width:0;height:0;display:none}.bili-hero{flex-shrink:0;max-width:640px}.bili-page.is-compact .bili-hero .hero-title,.bili-page.is-compact .bili-hero .hero-desc{display:none}.bili-page.is-compact .bili-hero{max-width:none}.bili-page.is-compact .optical{flex-shrink:0;gap:8px}.bili-page.is-compact .optical.is-open .optical-slit{min-height:56px;padding-top:10px;padding-bottom:10px}.bili-page.is-compact .optical-field{min-height:28px!important}.bili-page.is-compact .optical-meta .optical-hint{display:none}.bili-search-input{height:28px;min-height:28px!important}.bili-section-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:12px;font-size:11px}.bili-user-list{flex:none;width:100%}.bili-user-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.bili-user-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:52px 1fr;align-items:center;gap:12px;padding:12px;transition:border-color .2s,box-shadow .2s;display:grid}.bili-user-card:hover{border-color:var(--ink);box-shadow:0 12px 28px #1111110d}.bili-user-face{object-fit:cover;background:var(--surface);border-radius:50%;width:52px;height:52px}.bili-user-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.bili-user-meta strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.bili-user-meta em{color:var(--mute);font-size:11px;font-style:normal;font-family:var(--font-mono)}.bili-user-sign{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.bili-space{flex-direction:column;flex:none;gap:14px;width:100%;display:flex}.bili-space-head{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;display:flex}.bili-space-profile{align-items:center;gap:14px;min-width:0;display:flex}.bili-space-face{object-fit:cover;border:1px solid var(--line);border-radius:50%;width:48px;height:48px}.bili-space-profile h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:20px}.bili-space-profile p{color:var(--mute);margin-top:4px;font-size:12px}.batch-bar{border:1px solid var(--ink);background:#fff;border-radius:18px;flex-shrink:0;padding:16px 18px;box-shadow:14px 16px #1111110a}.batch-bar-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.batch-kicker{font-family:var(--font-mono);letter-spacing:.16em;color:var(--signal);font-size:10px}.batch-hint{color:var(--mute);font-size:12px}.batch-controls{flex-direction:column;gap:12px;display:flex}.batch-field{flex-direction:column;gap:8px;display:flex}.batch-field>label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-size:11px}.batch-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.batch-chip{border:1px solid var(--line);color:var(--mute);border-radius:999px;padding:7px 12px;font-size:12px;transition:border-color .2s,color .2s,background .2s}.batch-chip:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink)}.batch-chip.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.batch-chip:disabled{opacity:.45;cursor:not-allowed}.batch-custom-input{border:1px solid var(--ink);width:72px;font-family:var(--font-mono);text-align:center;border-radius:999px;padding:7px 10px;font-size:12px}.batch-skip-input{width:88px}.batch-skip-hint{color:var(--mute);margin:0;font-size:12px;line-height:1.45}.batch-skip-hint.is-warn{color:var(--signal)}.batch-actions{justify-content:flex-end;padding-top:4px;display:flex}.batch-cancel{border:1px solid var(--signal);color:var(--signal);border-radius:999px;padding:10px 18px;font-size:13px;transition:background .2s,color .2s}.batch-cancel:hover{background:var(--signal);color:#fff}.batch-progress{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.batch-progress-meta{justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.batch-progress-meta strong{font-weight:600}.batch-progress-meta span{color:var(--mute);font-family:var(--font-mono)}.batch-progress-track{background:var(--line);border-radius:999px;height:3px;overflow:hidden}.batch-progress-track i{background:var(--signal);border-radius:inherit;height:100%;transition:width .3s var(--ease-out);display:block}.batch-current{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin-top:10px;font-size:12px;overflow:hidden}.batch-log{max-height:120px;font-family:var(--font-mono);color:var(--mute);scrollbar-width:none;margin-top:10px;font-size:11px;line-height:1.55;overflow:auto}.batch-log::-webkit-scrollbar{display:none}.bili-video-scroll{flex:none;width:100%;padding-bottom:8px}.bili-video-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.bili-video-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:16px;flex-direction:column;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.bili-video-card:hover{border-color:var(--ink);box-shadow:10px 14px #1111110a}.bili-video-cover-wrap{aspect-ratio:16/10;background:var(--surface);position:relative;overflow:hidden}.bili-video-cover{object-fit:cover;width:100%;height:100%}.bili-video-dur{color:#fff;font-family:var(--font-mono);background:#111111c7;border-radius:6px;padding:3px 7px;font-size:10px;position:absolute;bottom:8px;right:8px}.bili-video-body{flex-direction:column;gap:6px;min-height:72px;padding:12px 12px 4px;display:flex}.bili-video-body strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.4;display:-webkit-box;overflow:hidden}.bili-video-body em{color:var(--mute);font-size:11px;font-style:normal;font-family:var(--font-mono)}.bili-video-cta{color:var(--signal);padding:8px 12px 12px;font-size:12px;font-weight:500}.bili-loading,.bili-end{text-align:center;color:var(--mute);padding:18px 8px;font-size:13px}.bili-loading.is-more{padding:10px}.bili-sentinel{height:1px}.bili-empty-stage{border:1px dashed var(--line-strong);border-radius:22px;flex-direction:column;flex:1;justify-content:center;max-width:420px;min-height:180px;padding:28px;display:flex}.hero-copy{max-width:620px}.hero-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;color:var(--signal);align-items:center;gap:8px;margin-bottom:14px;font-size:11px;display:inline-flex}.hero-eyebrow:before{content:"";background:var(--signal);width:18px;height:1px}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-size:clamp(34px,5.2vw,56px);font-weight:600;line-height:1.08}.hero-title em{color:var(--signal);font-style:normal}.hero-desc{max-width:34em;color:var(--mute);margin-top:16px;font-size:15px;font-weight:300;line-height:1.7}.optical{flex-direction:column;gap:14px;display:flex}.optical-meta{justify-content:space-between;align-items:baseline;gap:12px;padding:0 4px;display:flex}.optical-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);font-size:11px}.optical-hint{color:var(--mute);font-size:12px}.optical-slit{border:1px solid var(--line-strong);min-height:56px;transition:border-color .3s, box-shadow .3s, min-height .35s var(--ease-out);cursor:text;background:#fff;border-radius:18px;padding:14px 16px;position:relative;overflow:hidden}.optical.is-open .optical-slit{border-color:var(--ink);min-height:148px;box-shadow:0 18px 50px #1111110f}.optical.is-busy .optical-slit{border-color:var(--signal);box-shadow:0 0 0 4px var(--signal-soft)}.optical-rail{opacity:.55;gap:3px;height:3px;display:flex;position:absolute;top:0;left:0;right:0}.optical-rail span{background:var(--line);flex:1}.optical.is-busy .optical-rail span:nth-child(2){background:var(--signal)}.scan-line{background:linear-gradient(180deg, transparent, var(--signal), transparent);z-index:2;pointer-events:none;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 18px #e23d2a73}.optical-field{resize:none;width:100%;font-family:var(--font-mono);color:var(--ink);background:0 0;border:none;min-height:28px;font-size:13.5px;line-height:1.65}.optical.is-open .optical-field{min-height:72px}.optical-field::placeholder{color:#b5b5b5}.optical-actions{justify-content:space-between;align-items:center;gap:12px;min-height:40px;margin-top:12px;display:flex}.platform-chip{background:var(--surface);color:var(--ink-soft);border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:inline-flex}.platform-chip i{background:var(--chip,var(--signal));border-radius:50%;width:7px;height:7px}.parse-btn{background:var(--ink);color:#fff;letter-spacing:.04em;transition:transform .25s var(--ease-spring), background .25s, opacity .25s;border-radius:999px;align-items:center;gap:10px;margin-left:auto;padding:10px 18px;font-size:13px;font-weight:500;display:inline-flex}.parse-btn:hover:not(:disabled){background:var(--signal);transform:translateY(-1px)}.parse-btn:disabled{opacity:.35;cursor:not-allowed}.parse-btn-arrow{font-family:var(--font-display);transition:transform .25s var(--ease-out)}.parse-btn:hover:not(:disabled) .parse-btn-arrow{transform:translate(3px)}.platform-row{flex-wrap:wrap;gap:8px;display:flex}.platform-pill{border:1px solid var(--line);color:var(--mute);transition:border-color .25s, color .25s, background .25s, transform .25s var(--ease-spring);border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:inline-flex}.platform-pill:hover{border-color:var(--line-strong);color:var(--ink);transform:translateY(-2px)}.platform-pill.is-active{border-color:var(--ink);color:var(--ink);background:var(--surface)}.platform-dot{background:var(--hue,var(--mute));border-radius:50%;width:6px;height:6px}.stage-right{justify-content:flex-end;align-items:stretch;height:100%;min-height:0;display:flex;position:relative}.result-placeholder{border:1px dashed var(--line-strong);width:100%;max-width:420px;min-height:360px;color:var(--mute);background:linear-gradient(135deg,#11111104,#0000 40%),#fff;border-radius:22px;flex-direction:column;justify-content:space-between;margin-left:auto;padding:28px;display:flex}.placeholder-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:28px;display:grid}.placeholder-grid i{aspect-ratio:1;border:1px solid var(--line);border-radius:8px}.placeholder-grid i:nth-child(2),.placeholder-grid i:nth-child(7){background:var(--signal-soft);border-color:#0000}.placeholder-title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;margin-bottom:8px;font-size:20px}.placeholder-desc{font-size:13px;line-height:1.65}.result-panel{border:1px solid var(--ink);background:#fff;border-radius:22px;flex-direction:column;width:100%;max-width:440px;max-height:100%;margin-left:auto;display:flex;position:relative;overflow:hidden;box-shadow:24px 28px #1111110a}.result-perforation{justify-content:space-between;padding:10px 18px 0;display:flex}.result-perforation i{background:var(--surface);border:1px solid var(--line);border-radius:50%;width:10px;height:10px}.result-head{justify-content:space-between;gap:12px;padding:14px 22px 8px;display:flex}.result-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal);margin-bottom:8px;font-size:10px}.result-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:20px;line-height:1.3}.result-author{color:var(--mute);margin-top:6px;font-size:12px}.icon-btn{border:1px solid var(--line);width:34px;height:34px;color:var(--mute);border-radius:50%;flex-shrink:0;place-items:center;transition:border-color .2s,color .2s,background .2s;display:grid}.icon-btn:hover{border-color:var(--ink);color:var(--ink);background:var(--surface)}.result-body{min-height:0;padding:8px 18px 12px;overflow:auto}.result-cover-wrap{aspect-ratio:16/10;background:var(--surface);border-radius:14px;margin-bottom:16px;position:relative;overflow:hidden}.result-cover{object-fit:cover;width:100%;height:100%}.result-cover.is-empty{background:repeating-linear-gradient(-45deg,#f2f2f2,#f2f2f2 8px,#fff 8px 16px);width:100%;height:100%}.quality-label{letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-size:11px;font-family:var(--font-mono);margin-bottom:8px}.quality-row{border:1px solid var(--line);text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:8px;padding:12px;transition:border-color .2s,background .2s;display:flex}.quality-row:hover:not(:disabled){border-color:var(--ink);background:var(--surface)}.quality-main{flex-direction:column;gap:3px;display:flex}.quality-main strong{font-size:13px;font-weight:500}.quality-main em{color:var(--mute);font-size:11px;font-style:normal;font-family:var(--font-mono)}.quality-cta{color:var(--signal);font-size:12px;font-weight:500}.result-error{color:var(--signal);margin-top:6px;font-size:12px}.result-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:auto;padding:12px 22px 18px;display:flex}.source-link{color:var(--ink-soft);border-bottom:1px solid var(--line-strong);font-size:12px;transition:color .2s,border-color .2s}.source-link:hover{color:var(--signal);border-color:var(--signal)}.mono-stamp{font-family:var(--font-mono);color:var(--mute);font-size:11px}.bottombar{z-index:2;border-top:1px solid var(--line);color:var(--mute);justify-content:space-between;align-items:center;gap:16px;padding:14px 36px 22px;font-size:12px;display:flex;position:relative}.bottom-left{align-items:center;gap:16px;display:flex}.status-dot{background:var(--ok);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #0f7b5f1f}.status-dot.is-busy{background:var(--signal);box-shadow:0 0 0 4px var(--signal-soft);animation:1.2s ease-in-out infinite pulse}.status-dot.is-error{background:var(--signal);box-shadow:0 0 0 4px var(--signal-soft)}@keyframes pulse{50%{opacity:.7;transform:scale(.85)}}.error-toast{z-index:5;background:var(--ink);color:#fff;text-align:center;border-radius:999px;max-width:min(90vw,480px);padding:12px 18px;font-size:13px;position:absolute;bottom:72px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0000002e}.drawer-backdrop{z-index:40;background:#11111152;position:fixed;inset:0}.history-drawer{border:1px solid var(--line-strong);z-index:50;background:#fff;border-bottom:none;border-radius:24px 24px 0 0;flex-direction:column;width:min(720px,100%);max-height:min(68vh,560px);display:flex;position:fixed;bottom:0;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 -20px 60px #11111114}.drawer-handle{background:var(--line-strong);border-radius:999px;width:42px;height:4px;margin:12px auto 0}.drawer-head{justify-content:space-between;align-items:flex-start;padding:14px 22px 10px;display:flex}.drawer-head h3{font-family:var(--font-display);letter-spacing:-.02em;font-size:18px}.drawer-head p{color:var(--mute);margin-top:4px;font-size:12px}.drawer-actions{align-items:center;gap:8px;display:flex}.text-btn{color:var(--mute);padding:6px 10px;font-size:12px}.text-btn:hover{color:var(--signal)}.drawer-list{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;padding:4px 12px 24px;overflow:hidden auto}.drawer-list::-webkit-scrollbar{width:0;height:0;display:none}.drawer-empty{text-align:center;color:var(--mute);padding:28px 12px;font-size:13px}.history-item{text-align:left;border-radius:14px;grid-template-columns:40px 1fr 24px;align-items:center;gap:8px;width:100%;padding:14px 12px;transition:background .2s;display:grid}.history-item:hover{background:var(--surface)}.history-index{font-family:var(--font-mono);color:var(--mute);font-size:12px}.history-body{flex-direction:column;gap:4px;min-width:0;display:flex}.history-body strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.history-body em{color:var(--mute);font-size:11px;font-style:normal}.history-go{color:var(--mute)}.about-panel{z-index:60;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.about-panel .drawer-backdrop{z-index:0;background:#1116;position:absolute;inset:0}.about-card{border:1px solid var(--ink);z-index:2;isolation:isolate;filter:none;-webkit-backdrop-filter:none;backdrop-filter:none;-webkit-font-smoothing:antialiased;background:#fff;border-radius:20px;width:min(440px,100%);padding:28px;position:relative}.about-card h3{font-family:var(--font-display);color:#111;margin-bottom:10px;font-size:22px;font-weight:700}.about-card p{color:#2a2a2a;margin-bottom:10px;font-size:14px;line-height:1.7}.about-card .note{color:#555;margin-top:16px;font-size:12px}@media (width<=960px){.stage{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;gap:18px;padding:8px 20px 12px}.topbar-left{gap:14px}.brand-sub{display:none}.topbar,.bottombar{padding-left:20px;padding-right:20px}.stage-right{min-height:280px}.result-placeholder,.result-panel{max-width:none;margin:0}.result-panel{max-height:42vh}.hero-title{font-size:clamp(28px,8vw,40px)}}@media (width<=560px){.brand-sub{display:none}.optical-meta,.bottombar{flex-direction:column;align-items:flex-start}}
