@font-face{font-family:"toWord Serif";src:url(/fonts/toword-serif-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #f6faf8;--surface: #ffffff;--surface-2: #f3f7f5;--surface-solid: #ffffff;--glass: rgba(255, 255, 255, .82);--text: #0b1a14;--text-2: #34463e;--text-3: #66776f;--text-4: #9aa8a1;--line: rgba(12, 45, 34, .08);--line-2: rgba(12, 45, 34, .13);--line-3: rgba(12, 45, 34, .22);--jade: #059669;--jade-rgb: 16, 185, 129;--jade-deep: #047857;--teal: #0d9488;--grad: linear-gradient(110deg, #10b981 0%, #0d9488 60%, #0e7490 100%);--grad-text: linear-gradient(100deg, #059669 0%, #0d9488 50%, #0891b2 100%);--on-jade: #ffffff;--amber: #b45309;--amber-rgb: 245, 158, 11;--danger: #dc2626;--radius: 22px;--shadow: 0 24px 60px rgba(16, 50, 38, .1), 0 2px 6px rgba(16, 50, 38, .04);--font-ui: -apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, "JetBrains Mono", SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-serif: "toWord Serif", "Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, "Times New Roman", serif;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--bg)}body{margin:0;background:transparent;color:var(--text);font:15px/1.65 var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:rgba(var(--jade-rgb),.22)}.bg-aurora{position:fixed;inset:0;z-index:-3;pointer-events:none;background:radial-gradient(720px 440px at 8% -8%,rgba(16,185,129,.16),transparent 66%),radial-gradient(680px 420px at 92% 0%,rgba(20,184,166,.13),transparent 66%),radial-gradient(560px 340px at 60% 12%,rgba(190,242,100,.12),transparent 70%),radial-gradient(1100px 600px at 50% 112%,rgba(14,116,144,.07),transparent 70%),linear-gradient(180deg,#f1f8f4 0%,var(--bg) 50%,#f8fbfa 100%)}.bg-grid{position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(rgba(12,45,34,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(12,45,34,.05) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 70% 55% at 50% 22%,#000 25%,transparent 78%);mask-image:radial-gradient(ellipse 70% 55% at 50% 22%,#000 25%,transparent 78%)}.bg-noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.page{display:flex;min-height:100vh;flex-direction:column}.shell{width:100%;max-width:1200px;margin:0 auto;padding-inline:28px}.main{display:flex;flex:1;align-items:center;padding-block:48px}.main:has(.grid-wide){align-items:flex-start}.grid{display:grid;width:100%;gap:56px;align-items:center}.grid-wide{align-items:start;gap:28px}@media(min-width:960px){.grid{grid-template-columns:1.08fr .92fr}.grid-wide{grid-template-columns:1.3fr 1fr;grid-template-areas:"banner banner" "left right";align-items:stretch;row-gap:0}.grid-wide .col-right{display:contents}.grid-wide #banner{grid-area:banner}.grid-wide .col-left{grid-area:left;display:flex;flex-direction:column}.grid-wide #detail-pane{display:flex;flex:1;flex-direction:column}.grid-wide .work-card{flex:1}.grid-wide #panel{grid-area:right;display:flex;flex-direction:column}.grid-wide #panel>.card{flex:1}.grid-wide #panel>.card-center{display:flex;flex-direction:column;justify-content:center}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:32px}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand-mark{display:block;width:38px;height:38px;flex-shrink:0}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-word{font:700 18px/1.15 var(--font-serif);color:var(--text);letter-spacing:.2px}.brand-sub{margin-top:3px;font-style:normal;font-size:10px;letter-spacing:1.6px;color:var(--text-4)}.topbar-right{display:inline-flex;align-items:center;gap:10px}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 16px;font-size:12px;font-weight:500;color:var(--text-2);box-shadow:0 4px 14px #10322612;text-decoration:none;white-space:nowrap}.pill .arrow{width:12px;height:12px;color:var(--jade)}.pill-lang{font-family:var(--font-mono)}.pill-balance b{color:var(--jade);font-size:13px}.pill-balance:hover{border-color:rgba(var(--jade-rgb),.4)}.account{display:inline-flex;min-width:68px;align-items:center;justify-content:flex-end;gap:10px}.link-login{font-size:13px;font-weight:600;color:var(--jade);text-decoration:none}.link-login:hover{text-decoration:underline}.col-left,.col-right{min-width:0}.badge{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-2);border-radius:999px;background:#ffffffbf;box-shadow:0 1px 2px #1032260d;padding:6px 14px 6px 10px;font-size:12.5px;color:var(--text-2)}.badge b{border-radius:999px;background:rgba(var(--jade-rgb),.12);padding:1px 9px;font-size:11.5px;font-weight:600;color:var(--jade)}.badge-dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--jade);box-shadow:0 0 0 4px rgba(var(--jade-rgb),.18)}.badge-sep{width:1px;height:12px;background:var(--line-3)}.intro h1{margin:26px 0 0;font-weight:800;letter-spacing:-.035em}.h1-line{display:flex;align-items:center;gap:.18em;font-size:clamp(44px,6.4vw,76px);line-height:1.02;color:var(--text)}.grad{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}.h1-swap{display:inline-flex;width:.82em;height:.82em;align-items:center;justify-content:center;border:1px solid var(--line-2);border-radius:.24em;background:var(--surface);box-shadow:0 2px 8px #1032260f;font-size:.58em;font-weight:500;color:var(--jade)}.h1-sub{display:block;margin-top:18px;font-size:clamp(22px,2.5vw,30px);font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--text-2);text-wrap:balance}.lede{margin:20px 0 0;max-width:33em;font-size:15.5px;line-height:1.85;color:var(--text-3);text-wrap:pretty}.hero-stats{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:0 40px;margin:34px 0 0}.hero-stats>div{display:flex;flex-direction:column;gap:4px}.hero-stats>div+div{position:relative}.hero-stats>div+div:before{content:"";position:absolute;left:-20px;top:6px;bottom:6px;width:1px;background:var(--line-2)}.hero-stats dt{margin:0;font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.hero-stats dt b{font-weight:700;color:var(--text)}.hero-stats dt small{margin-left:2px;font-size:16px;font-weight:600;color:var(--text-3)}.hero-stats dd{margin:0;font-size:12.5px;color:var(--text-3)}.price-note{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:30px 0 0;font-size:13px;color:var(--text-3)}.price-chip{display:inline-flex;align-items:baseline;gap:4px;border:1px solid rgba(var(--jade-rgb),.3);border-radius:999px;background:rgba(var(--jade-rgb),.08);padding:4px 12px;color:var(--text-2)}.price-chip b{color:var(--jade);font-weight:700}.card{position:relative;border:1px solid transparent;border-radius:var(--radius);background:linear-gradient(var(--glass),var(--glass)) padding-box,linear-gradient(150deg,rgba(var(--jade-rgb),.45),#0c2d2214 34%,#0c2d220f 66%,#0d948852) border-box;-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);padding:28px;box-shadow:var(--shadow)}.card-title{margin:0;font-size:19px;font-weight:700;letter-spacing:-.01em}.card-sub{margin:6px 0 22px;font-size:13px;color:var(--text-3);word-break:break-word}.card-error{color:var(--danger)}.card-kicker{display:block;margin-bottom:10px;font:600 11px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--jade)}.btn{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:14px;padding:13px 18px;font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s,border-color .2s,color .2s,filter .2s}.btn:active{transform:translateY(1px)}.btn+.btn{margin-top:10px}.btn-block{width:100%}.btn-primary{background:var(--grad);color:var(--on-jade);box-shadow:0 10px 24px #0d948847,inset 0 1px #ffffff40}.btn-primary:hover{filter:brightness(1.06);box-shadow:0 14px 32px #0d94885c,inset 0 1px #ffffff4d}.btn-ghost{border-color:var(--line-2);background:var(--surface);color:var(--text-2);box-shadow:0 1px 2px #1032260a}.btn-ghost:hover{border-color:rgba(var(--jade-rgb),.45);background:rgba(var(--jade-rgb),.05);color:var(--jade-deep)}.btn:disabled,.btn.is-disabled{border-color:var(--line);background:var(--surface-2);color:var(--text-4);box-shadow:none;cursor:not-allowed;filter:none;transform:none}#go[disabled]{opacity:.5;cursor:not-allowed}.btn i{font-style:normal;transition:transform .2s}.btn:hover i{transform:translate(3px)}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.btn-row .btn+.btn{margin-top:0}.actions{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.banner{margin-bottom:16px;border:1px solid rgba(var(--amber-rgb),.35);border-radius:16px;background:#fffbeb;padding:13px 18px;font-size:13px;line-height:1.8;color:#92400e}.banner a{color:var(--amber);font-weight:600}.toast{position:fixed;top:24px;left:50%;z-index:60;transform:translate(-50%);border:1px solid var(--line-2);border-radius:14px;background:#fffffff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:11px 20px;font-size:14px;color:var(--text);box-shadow:0 20px 50px #10322629;pointer-events:none}.note{margin:16px 0 0;font-size:12.5px;line-height:1.75;color:var(--text-3)}.note-warn{border:1px solid rgba(var(--amber-rgb),.35);border-radius:12px;background:#fffbeb;padding:10px 14px;color:#92400e}.tip{margin-top:16px;padding:14px 16px;border:1px solid rgba(var(--jade-rgb),.24);border-radius:14px;background:rgba(var(--jade-rgb),.06)}.tip b{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;color:var(--jade-deep)}.tip b:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--jade);box-shadow:0 0 0 3px rgba(var(--jade-rgb),.18)}.tip p{margin:0;font-size:12.5px;line-height:1.75;color:var(--text-2)}.tip p+p{margin-top:4px;color:var(--text-3)}.drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;overflow:hidden;border:1.5px dashed var(--line-3);border-radius:18px;background:#fafcfb;padding:36px 20px 30px;cursor:pointer;text-align:center;transition:border-color .2s,background .2s,box-shadow .2s}.drop:before{content:"";position:absolute;inset:0;background:radial-gradient(320px 160px at 50% 0%,rgba(var(--jade-rgb),.12),transparent 70%);opacity:.7;transition:opacity .2s;pointer-events:none}.drop:hover,.drop.is-over{border-color:rgba(var(--jade-rgb),.65);background:rgba(var(--jade-rgb),.04);box-shadow:inset 0 0 0 1px rgba(var(--jade-rgb),.12)}.drop:hover:before,.drop.is-over:before{opacity:1}.drop-icon{position:relative;display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;border-radius:16px;background:var(--grad);color:var(--on-jade);box-shadow:0 10px 24px #0d94884d;transition:transform .2s}.drop:hover .drop-icon,.drop.is-over .drop-icon{transform:translateY(-2px)}.drop-icon svg{width:24px;height:24px}.drop-title{position:relative;margin-top:8px;font-size:15px;color:var(--text)}.drop-hint{position:relative;font-size:12px;color:var(--text-3)}.drop-types{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:6px}.drop-types span{border:1px solid var(--line-2);border-radius:7px;background:var(--surface);padding:1px 8px;font:500 11.5px/1.7 var(--font-mono);color:var(--text-2)}.progress-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}.progress-head .card-sub{margin:4px 0 0}.ring{width:38px;height:38px;flex-shrink:0;border:3px solid rgba(12,45,34,.08);border-top-color:var(--jade);border-right-color:var(--teal);border-radius:50%;animation:spin .9s linear infinite}.bar{height:6px;border-radius:999px;background:#0c2d2212;overflow:hidden}.bar i{display:block;height:100%;border-radius:999px;background:var(--grad);box-shadow:0 0 12px rgba(var(--jade-rgb),.4);transition:width .2s ease}.bar-indeterminate i{width:40%!important;animation:slide 1.15s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.bar-pct{margin:8px 0 0;font:12px var(--font-mono);color:var(--text-3);text-align:right}.pane-tabs{display:inline-flex;gap:4px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:4px}.target-tabs{display:flex;margin:-18px -18px 22px}.target-tabs .pane-tab{flex:1}.pane-tab{border:0;border-radius:10px;background:transparent;padding:8px 16px;font:inherit;font-size:13px;font-weight:500;color:var(--text-3);cursor:pointer;white-space:nowrap;transition:background .18s,color .18s,box-shadow .18s}.pane-tab:hover{color:var(--text)}.pane-tab.is-active{background:var(--surface);color:var(--jade-deep);box-shadow:0 1px 3px #1032261a,inset 0 0 0 1px rgba(var(--jade-rgb),.3)}.field{display:block;margin:0 0 16px}.field-label{display:block;margin-bottom:7px;font-size:12px;font-weight:500;letter-spacing:.02em;color:var(--text-3)}.select{width:100%;-webkit-appearance:none;appearance:none;padding:11px 38px 11px 14px;border:1px solid var(--line-2);border-radius:12px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%2366776f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center,var(--surface);color:var(--text);font:inherit;font-size:14px;transition:border-color .18s,box-shadow .18s}.select:hover{border-color:var(--line-3)}.select:focus{outline:none;border-color:rgba(var(--jade-rgb),.6);box-shadow:0 0 0 3px rgba(var(--jade-rgb),.15)}input.select{padding-right:14px;background:var(--surface)}.pre-input{min-height:150px;padding:12px 14px;background:#fbfdfc;font:12px/1.6 var(--font-mono);resize:vertical;margin-bottom:6px}.check{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;font-size:13px;line-height:1.6;color:var(--text-2);cursor:pointer}.check input{margin-top:3px;accent-color:var(--jade-deep)}.report-title{margin:0;font-size:17px;font-weight:700;line-height:1.4;letter-spacing:-.01em;word-break:break-word}.report-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 18px;font-size:12.5px;color:var(--text-3)}.report-meta .dot{margin:0 4px;color:var(--text-4)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:20px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--line)}.stat{background:var(--surface-solid);padding:14px 12px}.stat b{display:block;font-size:24px;font-weight:700;line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text)}.stat span{font-size:11.5px;color:var(--text-3)}.stat:first-child b{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}.report-h{display:flex;align-items:center;gap:10px;margin:22px 0 10px;font:600 11px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}.report-h:after{content:"";flex:1;height:1px;background:var(--line)}.issues{margin:0;padding:0;list-style:none;display:grid;gap:8px}.issue{position:relative;border:1px solid var(--line);border-radius:12px;padding:10px 14px 10px 30px;font-size:12.5px;line-height:1.7}.issue:before{content:"";position:absolute;left:13px;top:17px;width:6px;height:6px;border-radius:50%}.issue em{margin-left:6px;font-style:normal;font-family:var(--font-mono);color:var(--text-4)}.issue-warn{border-color:rgba(var(--amber-rgb),.35);background:#fffbeb;color:#92400e}.issue-warn:before{background:#f59e0b;box-shadow:0 0 0 3px rgba(var(--amber-rgb),.18)}.issue-info{background:var(--surface-2);color:var(--text-2)}.issue-info:before{background:var(--text-4)}.outline{margin:0;padding:0;list-style:none;max-height:360px;overflow:auto;font-size:13px;line-height:2;color:var(--text-2)}.outline b{margin-right:4px;font:600 12.5px var(--font-mono);color:var(--jade)}.outline .ol-2{padding-left:1.2em}.outline .ol-3{padding-left:2.4em;color:var(--text-3)}.outline .ol-4{padding-left:3.6em;color:var(--text-4)}.work-card{display:flex;flex-direction:column;border:1px solid transparent;border-radius:var(--radius);background:linear-gradient(var(--glass),var(--glass)) padding-box,linear-gradient(150deg,rgba(var(--jade-rgb),.45),#0c2d2214 34%,#0c2d220f 66%,#0d948852) border-box;-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);box-shadow:var(--shadow)}.work-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 10px 0}.work-meta{padding-right:8px;font-size:11.5px;color:var(--text-3);text-align:right}.work-body{display:flex;flex:1;flex-direction:column;padding:22px 28px 28px}.work-preview{padding:10px}.note-top{margin-top:0;margin-bottom:12px}.preview-body{display:flex;height:calc(100vh - 220px);min-height:460px;flex:1 0 auto;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(160deg,#e5efea,#edf4f1)}.preview-body p{margin:0;font-size:14px;color:var(--text-3)}.preview-body .sub{max-width:20rem;text-align:center;font-size:12px;line-height:1.9;color:var(--text-4)}.preview-body .card-error{max-width:26rem;padding:0 20px;text-align:center;color:var(--danger)}.preview-scroll{justify-content:flex-start;gap:20px;padding:24px 0;overflow-y:auto;overscroll-behavior:contain}.pv-page{display:block;flex-shrink:0;width:calc(100% - 48px);height:auto;background:#fff;border-radius:3px;box-shadow:0 0 0 1px #0c2d220d,0 8px 24px #10322624}.spinner{width:40px;height:40px;flex-shrink:0;border:3px solid rgba(12,45,34,.1);border-top-color:var(--jade);border-right-color:var(--teal);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.preview-scroll,.src,.outline{scrollbar-width:thin;scrollbar-color:rgba(12,45,34,.18) transparent}.src{margin:0;max-height:70vh;overflow:auto;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#f5f8f6;font:12px/1.7 var(--font-mono);color:#23352d;white-space:pre-wrap;word-break:break-all}.foot{display:flex;flex-direction:column;align-items:center;gap:6px;padding-block:22px 28px;border-top:1px solid var(--line);text-align:center}.foot p{margin:0;font-size:10.5px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-4)}.foot .sep{margin-inline:8px;color:var(--line-3)}.foot .normal{text-transform:none;letter-spacing:normal}.foot-status{text-transform:none!important;letter-spacing:normal!important;color:var(--text-3)!important}@media(max-width:959px){.main{padding-block:32px 16px}.grid{gap:36px}}@media(max-width:640px){.shell{padding-inline:18px}.pill-lang{display:none}.card{padding:22px 18px}.target-tabs{margin:-12px -8px 20px}.work-body{padding:18px 16px 22px}.work-preview{padding:8px}.hero-stats{gap:0 28px}.hero-stats>div+div:before{left:-14px}.hero-stats dt{font-size:24px}.btn-row{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.preview-body{height:70vh;min-height:380px}}@media(max-width:420px){.brand-sub{display:none}}@media(prefers-reduced-motion:reduce){.spinner,.ring{animation-duration:2.4s}}.btn-quiet{margin-top:14px!important;border-color:transparent;background:transparent;color:var(--text-3)}.btn-quiet:hover{border-color:var(--line);background:var(--surface);color:var(--text-2)}.done-icon{display:inline-flex;width:48px;height:48px;margin-bottom:16px;align-items:center;justify-content:center;border-radius:50%;background:var(--grad);color:var(--on-jade);box-shadow:0 0 0 8px rgba(var(--jade-rgb),.12),0 12px 28px #0d94884d}.done-icon svg{width:24px;height:24px}
