:root{--bg: #07080f;--panel-bg: rgba(12, 14, 24, .78);--glass-brd: rgba(255, 255, 255, .09);--text: #e9e7e2;--muted: #9298a8;--accent: #e5484d;--serif: "Noto Serif SC", "Source Han Serif SC", "SimSun", "宋体", serif;--sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 42%,transparent 55%,rgba(0,0,5,.55) 100%),radial-gradient(42% 34% at 8% 96%,rgba(120,20,30,.16),transparent 70%),radial-gradient(40% 32% at 94% 6%,rgba(40,60,120,.14),transparent 70%)}#brand{position:fixed;top:22px;left:26px;z-index:20;pointer-events:none;-webkit-user-select:none;user-select:none}#brand h1{font-family:var(--serif);font-size:26px;font-weight:700;letter-spacing:.35em;text-indent:.1em}#brand p{margin-top:4px;font-size:11px;letter-spacing:.22em;color:var(--muted)}#toolbar{position:fixed;top:22px;right:22px;z-index:30;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:62vw}#toolbar button{height:34px;min-width:34px;padding:0 12px;white-space:nowrap;flex:none;border-radius:17px;border:1px solid var(--glass-brd);background:var(--panel-bg);color:var(--text);font-size:13px;letter-spacing:.12em;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color .2s,color .2s;display:inline-flex;align-items:center;justify-content:center}#toolbar button:hover{border-color:#e5484d8c;color:#fff}#speed-wrap{height:34px;padding:0 12px;flex:none;border-radius:17px;border:1px solid var(--glass-brd);background:var(--panel-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.12em;color:var(--muted)}#speed-wrap input{width:74px;accent-color:#e5484d;cursor:pointer}#panel{position:fixed;top:76px;bottom:64px;left:0;width:272px;z-index:25;padding:16px 0 10px;overflow-y:auto;background:var(--panel-bg);border:1px solid var(--glass-brd);border-left:none;border-radius:0 16px 16px 0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transform:translate(calc(-100% - 20px));transition:transform .35s cubic-bezier(.2,.7,.2,1);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}body.panel-open #panel{transform:translate(0)}.panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:0 16px 10px}.panel-search{flex-basis:100%;margin-bottom:10px;height:32px;padding:0 12px;border-radius:10px;border:1px solid var(--glass-brd);background:#ffffff0a;color:var(--text);font-size:12px;letter-spacing:.06em;outline:none;transition:border-color .2s}.panel-search:focus{border-color:#e5484d8c}.panel-search::placeholder{color:var(--muted)}.panel-title{font-family:var(--serif);font-size:15px;letter-spacing:.3em}.panel-all{border:none;background:none;color:var(--muted);font-size:11px;letter-spacing:.1em;cursor:pointer}.panel-all:hover{color:var(--accent)}.panel-group-label{padding:10px 16px 4px;font-size:10px;letter-spacing:.28em;color:#9298a8bf}.panel-row{width:100%;display:flex;align-items:center;gap:10px;padding:7px 16px;border:none;background:none;color:var(--text);text-align:left;cursor:pointer;transition:background .15s}.panel-row:hover{background:#ffffff0d}.panel-row.active{background:#e5484d24}.dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--c, var(--accent));box-shadow:0 0 8px var(--c, var(--accent))}.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.row-name{font-size:13px;letter-spacing:.06em}.row-years{font-size:10px;color:var(--muted)}.row-count{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.row-caret{width:14px;flex:none;text-align:center;font-size:10px;color:var(--muted);cursor:pointer}.row-caret:hover{color:var(--accent)}.row-quotes{display:none;padding:0 10px 6px 30px}.row-quotes.open{display:block}.q-row{width:100%;display:flex;gap:8px;align-items:baseline;padding:4px 8px;border:none;background:none;color:var(--muted);font-size:11px;text-align:left;cursor:pointer;border-radius:6px}.q-row:hover{background:#ffffff0d;color:var(--text)}.q-num{flex:none;opacity:.55;font-variant-numeric:tabular-nums}.q-text{flex:1;min-width:0}.q-work{flex:none;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.5;font-size:10px}.panel-favs{display:none;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.06)}.fav-n{opacity:.6}.fav-clear{float:right;border:none;background:none;color:var(--muted);font-size:10px;letter-spacing:.1em;cursor:pointer}.fav-clear:hover{color:var(--accent)}.fav-row{width:100%;display:flex;gap:8px;align-items:center;padding:5px 16px;border:none;background:none;color:var(--text);font-size:11px;text-align:left;cursor:pointer}.fav-row:hover{background:#ffffff0d}.fav-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-who{flex:none;font-size:10px;color:var(--muted)}body.chrome-off #brand,body.chrome-off #toolbar,body.chrome-off #panel,body.chrome-off #hint,body.chrome-off #figure-caption,body.chrome-off #quote-card,body.chrome-off #tooltip{opacity:0!important;pointer-events:none}.panel-foot{display:flex;justify-content:space-between;padding:14px 16px 6px;font-size:10px;color:#9298a8b3;letter-spacing:.12em}#tooltip{position:fixed;top:0;left:0;z-index:40;max-width:300px;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid var(--glass-brd);background:#0a0c14e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:12px;pointer-events:none;opacity:0;transition:opacity .15s}#tooltip.show{opacity:1}#tooltip b{font-weight:600;letter-spacing:.05em;white-space:nowrap}#tooltip .tip-text{color:var(--muted);font-family:var(--serif)}#quote-card{position:fixed;right:26px;bottom:34px;z-index:35;width:392px;max-width:calc(100vw - 40px);padding:20px 22px 16px;border-radius:16px;border:1px solid var(--glass-brd);background:var(--panel-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 60px #00000080;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .3s,transform .35s cubic-bezier(.2,.7,.2,1)}#quote-card.show{opacity:1;transform:translateY(0);pointer-events:auto}.card-fished{font-size:10px;letter-spacing:.3em;color:#e5484de6;margin-bottom:10px}.card-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.card-name{font-size:14px;font-weight:600;letter-spacing:.08em}.card-sub{font-size:10px;color:var(--muted)}.card-close{margin-left:auto;border:none;background:none;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;padding:2px 6px}.card-close:hover{color:#fff}.card-quote{font-family:var(--serif);font-size:18px;line-height:2;letter-spacing:.02em}.card-meta{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}.card-work{font-size:12px;color:var(--muted)}.card-num{font-size:10px;color:#9298a8b3;font-variant-numeric:tabular-nums;white-space:nowrap}.card-next{margin-top:12px;flex:1;padding:8px 0;border-radius:10px;border:1px solid var(--glass-brd);background:#ffffff0a;color:var(--text);font-size:12px;letter-spacing:.15em;cursor:pointer;transition:border-color .2s}.card-next:hover{border-color:#e5484d8c}.card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.card-act{flex:1 1 auto;white-space:nowrap;margin-top:12px;padding:8px 12px;border-radius:10px;border:1px solid var(--glass-brd);background:transparent;color:var(--muted);font-size:12px;letter-spacing:.15em;cursor:pointer;transition:border-color .2s,color .2s}.card-act:hover{border-color:#e5484d8c;color:#fff}.card-act:disabled{opacity:.7;cursor:default}#hint{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:15;font-size:11px;letter-spacing:.18em;color:#9298a8d9;-webkit-user-select:none;user-select:none;pointer-events:none;transition:opacity 1.2s;white-space:normal;max-width:min(92vw,860px);text-align:center;line-height:1.9}#hint.fade{opacity:.35}#figure-caption{position:fixed;bottom:48px;left:50%;transform:translate(-50%,14px);z-index:16;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 24px);padding:8px 16px;border-radius:20px;border:1px solid var(--glass-brd);background:#0a0c148c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1)}#figure-caption.show{opacity:1;transform:translate(-50%)}#figure-caption .cap-dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--c, var(--accent));box-shadow:0 0 10px var(--c, var(--accent))}#figure-caption .cap-main{display:flex;align-items:baseline;gap:8px}#figure-caption .cap-name{font-family:var(--serif);font-size:16px;font-weight:600;letter-spacing:.18em;white-space:nowrap}#figure-caption .cap-sub{font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}#intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:none;background:radial-gradient(90% 70% at 50% 60%,#0e0c14b8,#07080ff5 78%),var(--bg);cursor:pointer}#intro.show{display:block}#intro.leave{opacity:0;transition:opacity .85s}.intro-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.intro-page{text-align:center;max-width:640px;padding:0 32px;animation:introIn .9s ease both}@keyframes introIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.intro-kicker{font-size:12px;letter-spacing:.5em;text-indent:.25em;color:var(--muted);margin-bottom:18px}.intro-title{font-family:var(--serif);font-size:clamp(52px,9vw,84px);font-weight:700;letter-spacing:.28em;text-indent:.14em;background:linear-gradient(180deg,#fff 30%,#d8b7ba 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.intro-sub{margin-top:16px;font-size:14px;letter-spacing:.3em;color:var(--muted)}.intro-credit{margin-top:40px;font-size:10px;letter-spacing:.25em;color:#9298a88c}.intro-line{font-family:var(--serif);font-size:clamp(19px,3vw,25px);line-height:2.2;letter-spacing:.06em}.intro-line em{font-style:normal;color:#e98b8e}.intro-line.small{font-size:13px;color:var(--muted);font-family:var(--sans);margin-top:26px;letter-spacing:.2em}.intro-enter{margin-top:42px;padding:12px 44px;border-radius:24px;border:1px solid rgba(229,72,77,.6);background:#e5484d1f;color:#f2d7d8;font-size:14px;letter-spacing:.35em;text-indent:.17em;cursor:pointer;transition:background .25s,transform .25s}.intro-enter:hover{background:#e5484d47;transform:translateY(-1px)}.intro-pager{position:absolute;bottom:40px;left:50%;transform:translate(-50%);font-size:11px;letter-spacing:.3em;color:var(--muted)}.intro-skip{position:absolute;top:28px;right:30px;font-size:11px;letter-spacing:.2em;color:#9298a8cc;padding:6px 10px;border:1px solid var(--glass-brd);border-radius:14px;cursor:pointer;transition:color .2s}.intro-skip:hover{color:#fff}#loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:var(--bg);transition:opacity .9s}#loading.done{opacity:0;pointer-events:none}.load-ring{width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.08);border-top-color:var(--accent);animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.load-text{font-size:12px;letter-spacing:.35em;text-indent:.17em;color:var(--muted)}.load-err{font-size:13px;color:#e98b8e;letter-spacing:.1em}@media (max-width: 720px){#brand{top:16px;left:18px}#brand h1{font-size:20px}#toolbar{top:16px;right:16px}#panel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:52vh;border-radius:16px 16px 0 0;border:1px solid var(--glass-brd);border-bottom:none;transform:translateY(110%)}body.panel-open #panel{transform:translateY(0)}#quote-card{right:12px;left:12px;bottom:14px;width:auto}.card-quote{font-size:16px}#hint{display:none}}
