:root{--paper: #f4efe4;--bg: #f6f2e9;--surface: #fffdf9;--surface-2: #faf6ec;--surface-3: #f2ece0;--ink: #24231f;--ink-2: #6a6862;--ink-3: #9d9a90;--line: #e7e0d1;--line-strong: #d8cfba;--brand: #17665f;--brand-2: #2c8a80;--brand-3: #57b3a6;--brand-4: #8fd0c6;--brand-soft: #e3f1ef;--brand-softer: #f0f7f6;--grad-brand: linear-gradient(135deg, #14524d 0%, #2c8a80 52%, #46a596 100%);--grad-brand-soft: linear-gradient(135deg, #e8f4f2 0%, #d5ebe7 100%);--seal: #bf3b2b;--seal-2: #d9614a;--seal-soft: #fdecea;--grad-seal: linear-gradient(135deg, #b0341f 0%, #d9614a 100%);--gold: #a8801f;--gold-2: #d4a548;--gold-soft: #fbf2de;--tone-green: #2f7d4f;--tone-green-bg: #e6f4ea;--tone-green-line: #c3e3ce;--tone-blue: #2f6ba8;--tone-blue-bg: #e7f0fa;--tone-blue-line: #c6dcf2;--tone-purple: #6b4fa8;--tone-purple-bg: #efe9fa;--tone-purple-line: #d8ccf0;--tone-orange: #a5671a;--tone-orange-bg: #fdf0dd;--tone-orange-line: #f2dcb8;--tone-gray: #6a6862;--tone-gray-bg: #eeece5;--tone-gray-line: #ddd9ce;--tone-red: #b23b2e;--tone-red-bg: #fbeaea;--tone-red-line: #f0cdc6;--radius: 14px;--radius-sm: 10px;--radius-lg: 22px;--shadow-1: 0 1px 2px rgba(60, 55, 45, .05), 0 2px 8px rgba(60, 55, 45, .045);--shadow-2: 0 2px 4px rgba(60, 55, 45, .06), 0 10px 24px -8px rgba(60, 55, 45, .14);--shadow-3: 0 4px 10px rgba(60, 55, 45, .07), 0 22px 44px -16px rgba(23, 102, 95, .22);--shadow: var(--shadow-1);--glow-brand: 0 0 0 3px rgba(44, 138, 128, .14);--font: "Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, "SimSun", serif;--font-ui: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--paper-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E")}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-ui);background-color:var(--bg);background-image:var(--paper-noise);color:var(--ink);line-height:1.68;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}.app-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:18px 16px 56px}.app-footer{position:relative;margin-top:8px;padding:26px 16px 30px;text-align:center;font-family:var(--font);font-size:14px;color:var(--ink-2);border-top:1px solid var(--line);background:linear-gradient(180deg,transparent,rgba(255,253,249,.7))}.app-footer:before{content:"";position:absolute;top:-1px;left:50%;transform:translate(-50%);width:120px;height:2px;border-radius:2px;background:var(--grad-brand)}.app-footer p{margin:4px 0}.muted{color:var(--ink-2)}h1,h2,h3{font-family:var(--font);font-weight:600;letter-spacing:.01em}h1{letter-spacing:.03em}a{color:var(--brand);text-decoration:none;transition:color var(--dur-1) var(--ease-out)}a:hover{color:var(--brand-2);text-decoration:underline;text-underline-offset:2px}::selection{background:#2c8a8033}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--brand-3);background-clip:content-box}.bg-decor{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-decor .blob{position:absolute;border-radius:50%;filter:blur(58px);opacity:.5;will-change:transform}.bg-decor .blob-a{width:46vw;height:46vw;min-width:340px;min-height:340px;top:-14vw;left:-10vw;background:radial-gradient(circle at 35% 35%,#46a5969e,#46a59600 70%);animation:aurora-drift-a var(--loop-slow) var(--ease-in-out) infinite}.bg-decor .blob-b{width:40vw;height:40vw;min-width:300px;min-height:300px;top:-8vw;right:-12vw;background:radial-gradient(circle at 60% 40%,#d9614a6b,#d9614a00 70%);animation:aurora-drift-b 22s var(--ease-in-out) infinite}.bg-decor .blob-c{width:44vw;height:44vw;min-width:320px;min-height:320px;bottom:-18vw;left:34%;background:radial-gradient(circle at 50% 50%,#d4a5485c,#d4a54800 70%);animation:aurora-drift-c 26s var(--ease-in-out) infinite}.nav{position:sticky;top:0;z-index:50;background:#faf7f0b8;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid rgba(231,224,209,.9);transition:box-shadow var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.nav:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(44,138,128,.5) 30%,rgba(217,97,74,.35) 70%,transparent);opacity:.75}.nav-inner{max-width:1080px;margin:0 auto;padding:11px 16px;display:flex;align-items:center;gap:14px}.nav-logo{font-family:var(--font);font-size:19px;font-weight:700;white-space:nowrap;background:var(--grad-brand);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;letter-spacing:.06em;position:relative;transition:background-position var(--dur-3) var(--ease-out)}.nav-logo:hover{background-position:100% 50%;text-decoration:none}.nav-logo:after{content:"";position:absolute;right:-7px;top:3px;width:6px;height:6px;border-radius:2px;background:var(--grad-seal);opacity:.85;transform:rotate(12deg);transition:transform var(--dur-2) var(--ease-spring)}.nav-logo:hover:after{transform:rotate(52deg) scale(1.15)}.nav-links{display:flex;gap:3px;flex:1;overflow-x:auto}.nav-links::-webkit-scrollbar{height:0}.nav-links a{position:relative;padding:7px 12px;border-radius:999px;color:var(--ink-2);font-size:15px;white-space:nowrap;transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.nav-links a:hover{color:var(--brand);background:#2c8a8014;text-decoration:none}.nav-links a.router-link-active{background:var(--grad-brand-soft);color:var(--brand);font-weight:600;box-shadow:inset 0 0 0 1px #2c8a802e}.nav-links a:after{content:"";position:absolute;left:50%;bottom:2px;height:2px;width:0;border-radius:2px;background:var(--grad-brand);transform:translate(-50%);transition:width var(--dur-2) var(--ease-out)}.nav-links a:hover:after{width:42%}.nav-links a.router-link-active:after{width:0}.nav-actions{display:flex;gap:8px;align-items:center}.nav-search{display:flex;position:relative}.nav-search input{width:118px;border-radius:999px;padding-left:30px;transition:width var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.nav-search:before{content:"🔍";position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12px;opacity:.5;pointer-events:none}.nav-search input:focus{width:200px;box-shadow:var(--glow-brand)}.nav-bell{position:relative}.badge-count{display:inline-block;min-width:18px;padding:0 5px;margin-left:6px;background:var(--grad-seal);color:#fff;border-radius:999px;font-size:11px;line-height:18px;text-align:center;font-weight:600;animation:pulse-soft 2.4s var(--ease-in-out) infinite}.dot-unread{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--seal);margin-left:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative;overflow:hidden;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:8px 16px;border-radius:10px;font-size:14px;cursor:pointer;transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out);text-decoration:none!important;-webkit-tap-highlight-color:transparent}.btn:hover{border-color:var(--brand-2);color:var(--brand);transform:translateY(-1px);box-shadow:var(--shadow-2)}.btn:active{transform:translateY(0) scale(.972);box-shadow:var(--shadow-1)}.btn:focus-visible{outline:none;box-shadow:var(--glow-brand)}.btn.primary{background:var(--grad-brand);background-size:160% 160%;border-color:transparent;color:#fff;box-shadow:0 2px 8px -2px #17665f73}.btn.primary:hover{color:#fff;filter:brightness(1.06);box-shadow:0 6px 18px -6px #17665f99;background-position:100% 50%}.btn.primary:after{content:"";position:absolute;top:0;bottom:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translate(-140%) skew(-18deg)}.btn.primary:hover:after{animation:sheen-sweep .7s var(--ease-out)}.btn.danger{color:var(--tone-red);border-color:var(--tone-red-line);background:var(--surface)}.btn.danger:hover{background:var(--tone-red-bg);border-color:var(--seal-2)}.btn.sm{padding:5px 11px;font-size:13px;border-radius:8px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn .act-icon{display:inline-block;transition:transform var(--dur-2) var(--ease-spring)}.btn:hover .act-icon{transform:scale(1.18)}.btn.just-acted{animation:heart-pop .5s var(--ease-spring)}.btn.loading:before{content:"";width:13px;height:13px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite}input,textarea,select{font:inherit;color:inherit;border:1px solid var(--line-strong);border-radius:10px;padding:9px 12px;background:var(--surface);outline:none;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}input::placeholder,textarea::placeholder{color:var(--ink-3)}input:hover,textarea:hover,select:hover{border-color:var(--brand-4)}input:focus,textarea:focus,select:focus{border-color:var(--brand-2);box-shadow:var(--glow-brand);background:#fff}textarea{width:100%;resize:vertical}label.field{display:block;margin-bottom:14px;font-size:14px;color:var(--ink-2);font-weight:500}label.field input,label.field select,label.field textarea{display:block;width:100%;margin-top:6px;color:var(--ink);font-weight:400}.form-error{background:var(--tone-red-bg);color:var(--tone-red);border-left:3px solid var(--seal);padding:11px 14px;border-radius:10px;margin-bottom:14px;font-size:14px;animation:shake .4s var(--ease-out)}.form-ok{background:var(--tone-green-bg);color:var(--tone-green);border-left:3px solid #4a9e66;padding:11px 14px;border-radius:10px;margin-bottom:14px;font-size:14px;animation:rise-in .35s var(--ease-out)}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:17px;height:17px;padding:0;border-radius:5px;border:1.5px solid var(--line-strong);background:var(--surface);display:inline-grid;place-content:center;cursor:pointer;vertical-align:-3px;transition:all var(--dur-2) var(--ease-out)}input[type=checkbox]:before{content:"✓";font-size:12px;font-weight:700;color:#fff;transform:scale(0);transition:transform var(--dur-2) var(--ease-spring)}input[type=checkbox]:checked{background:var(--grad-brand);border-color:var(--brand-2)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:hover{border-color:var(--brand-3)}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:20px;transition:box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.card:before{content:"";position:absolute;top:-1px;left:18px;right:18px;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,transparent,rgba(44,138,128,.4),rgba(217,97,74,.28),transparent);opacity:0;transition:opacity var(--dur-2) var(--ease-out)}.card:hover{box-shadow:var(--shadow-2)}.card:hover:before{opacity:1}.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;line-height:1.5;background:var(--brand-soft);color:var(--brand);border:1px solid rgba(44,138,128,.16);transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}.tag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7;flex-shrink:0}.tag.green{background:var(--tone-green-bg);color:var(--tone-green);border-color:var(--tone-green-line)}.tag.blue{background:var(--tone-blue-bg);color:var(--tone-blue);border-color:var(--tone-blue-line)}.tag.purple{background:var(--tone-purple-bg);color:var(--tone-purple);border-color:var(--tone-purple-line)}.tag.orange{background:var(--tone-orange-bg);color:var(--tone-orange);border-color:var(--tone-orange-line)}.tag.gray{background:var(--tone-gray-bg);color:var(--tone-gray);border-color:var(--tone-gray-line)}.tag.red{background:var(--tone-red-bg);color:var(--tone-red);border-color:var(--tone-red-line)}.badge-ai{white-space:nowrap}.badge-ai:hover{transform:translateY(-1px) scale(1.04)}.pill-count{font-size:13px;color:var(--ink-2)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:34px 0 14px;position:relative}.section-head h2{font-size:20px;margin:0;position:relative;padding-left:15px}.section-head h2:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:5px;height:19px;border-radius:3px;background:var(--grad-brand);box-shadow:0 2px 8px -2px #17665f99}.section-head a{font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:3px;transition:color var(--dur-2) var(--ease-out),gap var(--dur-2) var(--ease-out)}.section-head a:hover{color:var(--brand);text-decoration:none;gap:7px}.hero{position:relative;text-align:center;padding:54px 12px 34px;overflow:hidden}.hero:before{content:"";position:absolute;top:8%;left:50%;transform:translate(-50%);width:min(660px,92%);height:190px;background:radial-gradient(ellipse at center,rgba(44,138,128,.16),transparent 68%);pointer-events:none}.hero h1{position:relative;font-size:clamp(28px,5.6vw,46px);margin:0 0 14px;letter-spacing:.14em;background:linear-gradient(100deg,#0f4a45,#2c8a80 16%,#57b3a6 30%,#a8801f,#57b3a6 60%,#2c8a80 74%,#0f4a45);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:gradient-pan 16s var(--ease-in-out) infinite}.hero p{position:relative;color:var(--ink-2);font-family:var(--font);font-size:clamp(14px,2.5vw,17px);margin:0 auto;max-width:620px;line-height:1.9}.hero-seal{display:inline-grid;place-items:center;width:44px;height:44px;margin:0 auto 16px;border-radius:10px;background:var(--grad-seal);color:#fff;font-family:var(--font);font-size:19px;font-weight:700;letter-spacing:1px;box-shadow:0 6px 18px -6px #bf3b2bb3;transform:rotate(-4deg);animation:float-y 5.5s var(--ease-in-out) infinite}.hero-dots{position:absolute;inset:0;pointer-events:none}.hero-dots i{position:absolute;border-radius:50%;border:1px solid rgba(44,138,128,.35);animation:ink-ripple 6s var(--ease-out) infinite}.hero-dots i:nth-child(1){left:12%;top:26%;width:44px;height:44px;animation-delay:0s}.hero-dots i:nth-child(2){right:14%;top:40%;width:66px;height:66px;animation-delay:1.6s}.hero-dots i:nth-child(3){left:26%;bottom:12%;width:30px;height:30px;animation-delay:3.1s}.hero-dots i:nth-child(4){right:28%;top:12%;width:22px;height:22px;animation-delay:4.4s}.boards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:26px 0 8px}.board{position:relative;overflow:hidden;display:block;padding:18px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.board:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);transform:translate(-140%) skew(-18deg);pointer-events:none}.board:hover{transform:translateY(-4px);box-shadow:var(--shadow-3);text-decoration:none;border-color:transparent}.board:hover:after{animation:sheen-sweep .85s var(--ease-out)}.board .icon{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:21px;background:#ffffffbf;box-shadow:inset 0 0 0 1px #fffc,0 3px 10px -4px #3c372d4d;transition:transform var(--dur-2) var(--ease-spring)}.board:hover .icon{transform:translateY(-3px) rotate(-6deg) scale(1.08)}.board b{display:block;font-family:var(--font);margin:9px 0 3px;font-size:16px;color:var(--ink)}.board span{font-size:12px;color:var(--ink-2);line-height:1.6}.board>.icon,.board>b,.board>span{position:relative;z-index:1}.board-human{background:linear-gradient(135deg,#eaf6ee,#d9eddf);border-color:#cfe6d6}.board-human b{color:#1f6340}.board-human span{color:#4a7a5c}.board-human .icon{background:#ffffffd9}.board-ai-assist{background:linear-gradient(135deg,#eaf2fb,#d9e8f8);border-color:#cddff2}.board-ai-assist b{color:#24568a}.board-ai-assist span{color:#4e7398}.board-ai-assist .icon{background:#ffffffd9}.board-co-create{background:linear-gradient(135deg,#f1ecfb,#e3daf6);border-color:#dbd0f1}.board-co-create b{color:#533a88}.board-co-create span{color:#6f5c94}.board-co-create .icon{background:#ffffffd9}.board-ai-literature{background:linear-gradient(135deg,#fdf3e2,#f9e7c8);border-color:#f2ddba}.board-ai-literature b{color:#855317}.board-ai-literature span{color:#94703c}.board-ai-literature .icon{background:#ffffffd9}.board-all{grid-column:1 / -1;background:var(--grad-brand);background-size:200% 200%;color:#fff;border:none;box-shadow:0 10px 30px -12px #17665fa6;animation:gradient-pan 16s var(--ease-in-out) infinite}.board-all b,.board-all span{color:#fff}.board-all span{color:#ffffffd9}.board-all .icon{background:#fff3;box-shadow:inset 0 0 0 1px #ffffff59}.board-all:after{background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%)}.pledge{position:relative;background:linear-gradient(135deg,#fffdf9f7,#f8f4e9f7);border:1px solid var(--line);border-radius:var(--radius);padding:24px 24px 22px 26px;font-family:var(--font);line-height:2.05;box-shadow:var(--shadow-1);overflow:hidden}.pledge:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#2c8a80,#57b3a6 45%,#d9614a)}.pledge p{margin:0}.pledge p:first-child{font-size:16px;color:var(--ink)}.pledge p:last-child{color:var(--ink-2);font-size:14px;margin-top:8px}.work-grid{display:grid;grid-template-columns:1fr;gap:14px}.work-card{position:relative;overflow:hidden;display:flex;gap:14px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.work-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad-brand);transform:scaleY(0);transform-origin:top;transition:transform var(--dur-2) var(--ease-out)}.work-card:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 34%,rgba(255,255,255,.55) 50%,transparent 66%);transform:translate(-140%) skew(-18deg);pointer-events:none}.work-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-3);border-color:#2c8a8059;text-decoration:none}.work-card:hover:before{transform:scaleY(1)}.work-card:hover:after{animation:sheen-sweep .9s var(--ease-out)}.cover{width:76px;height:102px;border-radius:9px;object-fit:cover;flex-shrink:0;background:var(--grad-brand);box-shadow:0 4px 14px -6px #3c372d8c;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.work-card:hover .cover{transform:scale(1.05) rotate(-1.2deg);box-shadow:0 8px 20px -6px #17665f80}.cover.ph{display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font);font-size:30px;font-weight:600;text-shadow:0 2px 8px rgba(0,0,0,.22);position:relative;overflow:hidden}.cover.ph:after{content:"";position:absolute;inset:6px;border-radius:5px;border:1px solid rgba(255,255,255,.35)}.work-card .info{min-width:0;flex:1}.work-card h3{margin:0 0 6px;font-size:16px;color:var(--ink);transition:color var(--dur-2) var(--ease-out);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.work-card:hover h3{color:var(--brand)}.work-card .meta{font-size:12px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:8px}.work-card .meta span{position:relative}.work-card .meta span+span:before{content:"·";position:absolute;left:-7px;color:var(--line-strong)}.work-card .summary{font-size:13px;color:var(--ink-2);margin:6px 0 0;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stats-line{display:flex;gap:12px;font-size:12px;color:var(--ink-2);margin-top:8px;flex-wrap:wrap}.stats-line span{display:inline-flex;align-items:center;gap:3px;transition:color var(--dur-2) var(--ease-out)}.work-card:hover .stats-line{color:var(--brand)}.detail-header{display:flex;gap:18px;flex-wrap:wrap}.detail-header .cover{width:112px;height:152px}.detail-header h1{font-size:clamp(21px,3.4vw,26px);margin:0 0 10px}.detail-header .cover.ph{font-size:42px}.kv{font-size:14px;margin:4px 0;color:var(--ink-2)}.kv b{color:var(--ink);font-weight:600}.actions{display:flex;gap:10px;margin:16px 0 4px;flex-wrap:wrap}.chapters-list{list-style:none;margin:0;padding:0}.chapters-list li{border-top:1px solid var(--line)}.chapters-list li:first-child{border-top:none}.chapters-list a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 10px;color:var(--ink);font-size:14px;border-radius:9px;transition:background var(--dur-2) var(--ease-out),padding-left var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.chapters-list a:hover{background:var(--brand-softer);padding-left:16px;color:var(--brand);text-decoration:none}.chapters-list .wc{color:var(--ink-3);font-size:12px;flex-shrink:0}.reader{max-width:720px;margin:0 auto}.reader-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;padding:10px 12px;border-radius:var(--radius);background:#fffdf9b3;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.reader-body{font-family:var(--font);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:34px 26px 46px;box-shadow:var(--shadow-2);position:relative}.reader-body h2{font-size:22px;letter-spacing:.08em;padding-bottom:14px}.reader-body h2:after{content:"";display:block;width:46px;height:3px;margin:14px auto 0;border-radius:3px;background:var(--grad-brand)}.reader-body p{margin:0 0 1.15em;font-size:var(--reader-font, 18px);line-height:var(--reader-lh, 1.95);text-align:justify;text-justify:inter-ideograph;animation:fade-in .5s var(--ease-out) both}.reader-body>p:first-of-type:first-letter{float:left;font-size:3.1em;line-height:.92;padding:4px 10px 0 0;color:var(--brand);font-weight:600}.reader-body>p:nth-of-type(1){animation-delay:.02s}.reader-body>p:nth-of-type(2){animation-delay:.06s}.reader-body>p:nth-of-type(3){animation-delay:.1s}.reader-body>p:nth-of-type(4){animation-delay:.14s}.reader-body>p:nth-of-type(5){animation-delay:.18s}.reader-body>p:nth-of-type(6){animation-delay:.22s}.reader-body>p:nth-of-type(n+7){animation-delay:.26s}.reader-nav{display:flex;justify-content:space-between;margin-top:20px;gap:10px}.reader.dark{--surface: #242320;--ink: #d3cdc1;--line: #3a3833;--ink-2: #97928a;--ink-3: #6f6b63;background:#1a1917;color:var(--ink)}.reader.dark .reader-body{background:var(--surface);box-shadow:none}.reader.dark .reader-body>p:first-of-type:first-letter{color:var(--brand-3)}.reader.dark .reader-toolbar{background:#242320cc}.reader.sepia{--surface: #f6ecd9;--line: #e3d5b8;--ink: #4a3d29;--ink-2: #7d6c50;background:#efe3c8}.reader.sepia .reader-body{background:var(--surface)}.reader.sepia .reader-body>p:first-of-type:first-letter{color:#9a6a2a}html[data-reader=dark] body{background-color:#161514;background-image:none;color:#d3cdc1}html[data-reader=dark] a{color:var(--brand-3)}html[data-reader=dark] .nav{background:#1c1b19d1;border-bottom-color:#34322d}html[data-reader=dark] .nav-links a{color:#a49f96}html[data-reader=dark] .nav-links a.router-link-active{background:#57b3a629;color:var(--brand-3)}html[data-reader=dark] .nav-search input{background:#26251f;border-color:#3d3a34;color:#d3cdc1}html[data-reader=dark] .btn:not(.primary){background:#26251f;border-color:#3d3a34;color:#d3cdc1}html[data-reader=dark] .nav-logo{background:linear-gradient(100deg,#8fd0c6,#57b3a6 40%,#d4a548 75%,#8fd0c6);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}html[data-reader=dark] .app-footer{background:none;border-top-color:#34322d;color:#8a857c}html[data-reader=dark] .app-footer .muted{color:#6f6b63}html[data-reader=dark] .to-top{background:#262520f0;color:var(--brand-3);border-color:#3d3a34}html[data-reader=dark] .empty{color:#8a857c}html[data-reader=dark] ::selection{background:#57b3a652}html[data-reader=sepia] body{background-color:#eee1c4;background-image:none}.creation-notes table{width:100%;border-collapse:collapse;font-size:14px}.creation-notes td{padding:10px 6px;border-top:1px dashed var(--line)}.creation-notes tr:first-child td{border-top:none}.creation-notes td:first-child{color:var(--ink-2);width:6em}.creation-notes .notes-text{font-family:var(--font);color:var(--ink);white-space:pre-wrap;margin-top:14px;font-size:14.5px;line-height:1.95;padding:14px 16px;border-radius:10px;background:linear-gradient(135deg,#e3f1ef80,#fbf2de80);border-left:3px solid var(--brand-3)}.comment{border-top:1px solid var(--line);padding:14px 4px;border-radius:10px;transition:background var(--dur-2) var(--ease-out),padding-left var(--dur-2) var(--ease-out)}.comment:hover{background:var(--brand-softer);padding-left:12px}.comment .who{font-size:13px;color:var(--ink-3);display:flex;justify-content:space-between;gap:8px}.comment .who b{color:var(--brand)}.comment p{margin:7px 0 0;font-size:14px;white-space:pre-wrap;word-break:break-word;line-height:1.8}.form-page{max-width:460px;margin:34px auto}.form-page.wide{max-width:720px}.form-page.card{padding:26px 24px}.auth-page{position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;top:-60px;right:-60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(44,138,128,.16),transparent 68%);pointer-events:none}.auth-page:after{content:"";position:absolute;bottom:-70px;left:-50px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(217,97,74,.14),transparent 68%);pointer-events:none}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;color:var(--ink-2);font-weight:600;padding:9px 8px;border-bottom:1px solid var(--line-strong);letter-spacing:.03em;white-space:nowrap}.table td{padding:11px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr{transition:background var(--dur-2) var(--ease-out)}.table tbody tr:hover{background:var(--brand-softer)}.table-scroll{overflow-x:auto;border-radius:10px}.stat-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:22px}.stat-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 14px;text-align:center;box-shadow:var(--shadow-1);transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.stat-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--grad-brand);opacity:.45;transition:opacity var(--dur-2) var(--ease-out)}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}.stat-card:hover:before{opacity:1}.stat-card b{display:block;font-size:24px;font-family:var(--font);color:var(--brand);background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-card span{font-size:12px;color:var(--ink-2)}.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:18px;scrollbar-width:none}.tabs::-webkit-scrollbar{height:0}.tabs button{position:relative;border:none;background:none;padding:11px 15px;font:inherit;cursor:pointer;color:var(--ink-2);white-space:nowrap;border-bottom:2px solid transparent;transition:color var(--dur-2) var(--ease-out)}.tabs button:hover{color:var(--brand-2)}.tabs button.active{color:var(--brand);font-weight:600;border-bottom-color:var(--brand)}.tabs button.active:after{content:"";position:absolute;left:12%;right:12%;bottom:-2px;height:2px;background:var(--grad-brand);border-radius:2px;animation:rise-in .3s var(--ease-out)}.pager{display:flex;gap:8px;justify-content:center;margin:26px 0;flex-wrap:wrap}.pager button{min-width:40px}.pager .cur{background:var(--grad-brand);color:#fff;border-color:transparent;box-shadow:0 4px 12px -4px #17665f8c}.pager .cur:hover{color:#fff}.empty{text-align:center;color:var(--ink-2);padding:56px 16px;font-family:var(--font);font-size:15px}.empty:before{content:"📖";display:block;font-size:30px;margin-bottom:10px;opacity:.55;animation:float-y 5s var(--ease-in-out) infinite}.skeleton{position:relative;overflow:hidden;background:linear-gradient(90deg,#efeade 25%,#f7f3e9,#efeade 75%);border-radius:8px}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:shimmer 1.4s infinite}.sk-card{display:flex;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.sk-cover{width:76px;height:102px;border-radius:9px;flex-shrink:0}.sk-lines{flex:1;display:flex;flex-direction:column;gap:10px;padding-top:4px}.sk-line{height:12px;border-radius:6px}.sk-line.w40{width:40%}.sk-line.w70{width:70%}.sk-line.w90{width:90%}.author-head{display:flex;gap:18px;align-items:center;margin-bottom:22px}.avatar{width:68px;height:68px;border-radius:50%;object-fit:cover;background:var(--grad-brand-soft);display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--brand);font-family:var(--font);box-shadow:inset 0 0 0 2px #ffffffe6,0 4px 14px -6px #17665f80}.author-card{transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.author-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:#2c8a804d;text-decoration:none}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.filter-bar input:not([type=checkbox]),.filter-bar select{padding:7px 11px;font-size:14px}.filter-bar input:not([type=checkbox]){min-width:180px}.filter-bar input[type=checkbox]{padding:0;min-width:0}.report-item{margin-bottom:12px}.report-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.report-head b{font-family:var(--font)}.notify-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 10px 4px 6px;border-radius:999px;background:var(--brand-softer);border:1px solid rgba(44,138,128,.14);transition:background var(--dur-2) var(--ease-out)}.notify-toggle:hover{background:var(--brand-soft)}.timeline{list-style:none;margin:0;padding:0;font-size:14px;position:relative}.timeline li{padding:10px 0 10px 16px;border-top:1px dashed var(--line);color:var(--ink-2);position:relative}.timeline li:first-child{border-top:none}.timeline li:before{content:"";position:absolute;left:0;top:17px;width:7px;height:7px;border-radius:50%;background:var(--brand-4);box-shadow:0 0 0 3px #57b3a629}.timeline li:first-child:before{background:var(--brand-2)}.modal-mask{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:18px;background:#24231f6b;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.modal-card{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;box-shadow:0 30px 70px -22px #1728268c;position:relative;overflow:hidden}.modal-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-brand)}.modal-title{margin:0 0 8px;font-size:18px;font-family:var(--font)}.modal-hint{margin:0 0 14px;font-size:13px;color:var(--ink-2);line-height:1.7}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.modal-card textarea,.modal-card input{width:100%}.toast-host{position:fixed;right:18px;bottom:22px;z-index:300;display:flex;flex-direction:column;gap:10px;align-items:flex-end;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:9px;max-width:min(360px,80vw);padding:11px 16px;border-radius:12px;background:#1e1d1af0;color:#f4f1ea;font-size:14px;line-height:1.5;box-shadow:0 14px 34px -14px #0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-left:3px solid var(--brand-3)}.toast.ok{border-left-color:#4a9e66}.toast.err{border-left-color:var(--seal-2)}.toast.warn{border-left-color:var(--gold-2)}.scroll-progress{position:fixed;top:0;left:0;height:3px;z-index:100;background:var(--grad-brand);background-size:200% 100%;border-radius:0 3px 3px 0;transition:width .1s linear;animation:progress-glow 2.6s var(--ease-in-out) infinite;pointer-events:none}.to-top{position:fixed;right:18px;bottom:78px;z-index:90;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-strong);background:#fffdf9f0;color:var(--brand);font-size:17px;cursor:pointer;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out)}.to-top:hover{transform:translateY(-3px) scale(1.06);box-shadow:var(--shadow-3)}.to-top-enter-active,.to-top-leave-active{transition:opacity .24s var(--ease-out),transform .24s var(--ease-out)}.to-top-enter-from,.to-top-leave-to{opacity:0;transform:translateY(12px) scale(.9)}@media(max-width:639px){.nav-inner{flex-wrap:wrap;row-gap:7px;padding:9px 14px}.nav-logo{font-size:18px}.nav-actions{margin-left:auto}.nav-links{order:3;flex:1 0 100%;padding-bottom:2px}.nav-search input{width:104px}.nav-search input:focus{width:150px}.hero{padding:40px 10px 26px}.app-main{padding:14px 14px 48px}}@media(min-width:640px){.work-grid{grid-template-columns:1fr 1fr}.stat-cards{grid-template-columns:repeat(4,1fr)}}@media(min-width:900px){.boards{grid-template-columns:repeat(6,1fr)}.board-all{grid-column:span 2}.work-grid{grid-template-columns:repeat(3,1fr)}.app-main{padding:26px 16px 64px}.nav-search input{width:150px}}html,body{max-width:100%;overflow-x:hidden}@media(hover:none){.work-card:hover,.board:hover,.btn:hover,.stat-card:hover{transform:none}}:root{--dur-1: .16s;--dur-2: .28s;--dur-3: .55s;--dur-4: 1.2s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--ease-back: cubic-bezier(.22, 1.2, .36, 1);--loop-slow: 18s;--loop-mid: 9s}@keyframes rise-in{0%{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drop-in{0%{opacity:0;transform:translate3d(0,-12px,0) scale(.98)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.88)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes aurora-drift-a{0%,to{transform:translateZ(0) scale(1)}33%{transform:translate3d(6%,-5%,0) scale(1.12)}66%{transform:translate3d(-4%,4%,0) scale(.95)}}@keyframes aurora-drift-b{0%,to{transform:translateZ(0) scale(1.05)}40%{transform:translate3d(-7%,5%,0) scale(.92)}70%{transform:translate3d(5%,6%,0) scale(1.15)}}@keyframes aurora-drift-c{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(8%,6%,0) scale(1.18)}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes sheen-sweep{0%{transform:translate(-140%) skew(-18deg)}to{transform:translate(240%) skew(-18deg)}}@keyframes gradient-pan{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes heart-pop{0%{transform:scale(1)}35%{transform:scale(1.25)}60%{transform:scale(.94)}to{transform:scale(1)}}@keyframes ring-out{0%{opacity:.55;transform:scale(.7)}to{opacity:0;transform:scale(1.8)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes progress-glow{0%,to{box-shadow:0 0 #2c8a8000}50%{box-shadow:0 0 10px 1px #2c8a8080}}@keyframes pulse-soft{0%,to{box-shadow:0 0 #bf3b2b80}70%{box-shadow:0 0 0 6px #bf3b2b00}}@keyframes ink-ripple{0%{opacity:0;transform:scale(.4)}40%{opacity:.5}to{opacity:0;transform:scale(2.2)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.js-anim .reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}.js-anim .reveal.reveal-in{opacity:1;transform:none}.js-anim .reveal.from-left{transform:translate3d(-24px,0,0)}.js-anim .reveal.zoom{transform:scale(.94)}.js-anim .reveal.zoom.reveal-in{transform:none}.js-anim .stagger>*{animation:rise-in var(--dur-3) var(--ease-out) both}.stagger>*:nth-child(1){animation-delay:.02s}.stagger>*:nth-child(2){animation-delay:.06s}.stagger>*:nth-child(3){animation-delay:.1s}.stagger>*:nth-child(4){animation-delay:.14s}.stagger>*:nth-child(5){animation-delay:.18s}.stagger>*:nth-child(6){animation-delay:.22s}.stagger>*:nth-child(7){animation-delay:.26s}.stagger>*:nth-child(8){animation-delay:.3s}.stagger>*:nth-child(9){animation-delay:.34s}.stagger>*:nth-child(10){animation-delay:.38s}.stagger>*:nth-child(11){animation-delay:.42s}.stagger>*:nth-child(12){animation-delay:.46s}.stagger>*:nth-child(n+13){animation-delay:.5s}.page-enter-active{transition:opacity .34s var(--ease-out),transform .34s var(--ease-out)}.page-leave-active{transition:opacity .16s ease-in,transform .16s ease-in}.page-enter-from{opacity:0;transform:translate3d(0,14px,0)}.page-leave-to{opacity:0;transform:translate3d(0,-6px,0)}.modal-enter-active .modal-card{animation:pop-in .32s var(--ease-back) both}.modal-enter-active .modal-mask{animation:fade-in .22s ease-out both}.modal-leave-active .modal-card{animation:pop-in .2s ease-in reverse both}.modal-leave-active .modal-mask{animation:fade-in .2s ease-in reverse both}.toast-enter-active{animation:drop-in .3s var(--ease-back) both}.toast-leave-active{transition:opacity .22s ease-in,transform .22s ease-in}.toast-leave-to{opacity:0;transform:translate(18px)}.toast-move{transition:transform .28s var(--ease-out)}.collapse-enter-active,.collapse-leave-active{transition:opacity .24s var(--ease-out),max-height .32s var(--ease-out),transform .24s var(--ease-out);overflow:hidden}.collapse-enter-from,.collapse-leave-to{opacity:0;max-height:0;transform:translateY(-6px)}.collapse-enter-to,.collapse-leave-from{opacity:1;max-height:480px}.app-main{animation:fade-in .3s var(--ease-out)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.js-anim .reveal{opacity:1!important;transform:none!important}}
