:root{--bg:#f6f4ee;--ink:#0f2a3d;--t:#1f2b33;--m:#66727b;--teal:#0e7c7b;--mint:#7fd4c1;--coral:#ff8a65;--line:#e2ded3;--card:#fffdf8;--sans:"Noto Sans CJK SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--mono:ui-monospace,"JetBrains Mono",Menlo,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--t);font-family:var(--sans);line-height:1.75;-webkit-font-smoothing:antialiased}
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
a{color:var(--teal)}
header{position:sticky;top:0;z-index:20;background:rgba(246,244,238,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:.3s}header.s{border-color:var(--line);box-shadow:0 6px 24px -18px rgba(15,42,61,.4)}
nav{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;gap:1rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none;font-weight:800;letter-spacing:-.01em}.brand img{width:32px}.brand small{font-weight:400;color:var(--m);font-size:.8rem}
.links{display:flex;gap:.3rem;flex-wrap:wrap}.links a{color:var(--t);text-decoration:none;padding:.35rem .85rem;border-radius:99px;font-size:.92rem;transition:.25s}.links a:hover{background:rgba(14,124,123,.08)}.links a.on{background:var(--ink);color:#fff}
main{max-width:1180px;margin:auto;padding:0 1.5rem}
.eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.22em;color:var(--teal);margin:0}
.hero{padding:7rem 0 4rem}.hero h1{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.12;letter-spacing:-.03em;color:var(--ink);margin:.8rem 0 1.4rem}
.hl{background:linear-gradient(transparent 62%,rgba(127,212,193,.55) 62%);background-size:0 100%;background-repeat:no-repeat;animation:hl 1.4s .6s forwards cubic-bezier(.6,0,.2,1)}@keyframes hl{to{background-size:100% 100%}}
.lead{max-width:720px;font-size:1.08rem;color:#36444d}.en{color:var(--m);font-size:.92rem;max-width:720px}.muted{color:var(--m)}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.4rem}.chips span{font-size:.82rem;padding:.28rem .8rem;border:1px solid var(--line);border-radius:99px;background:var(--card)}
section{padding:2.5rem 0}h2{display:flex;align-items:center;gap:.8rem;color:var(--ink);font-size:1.5rem;margin:0 0 1.6rem}h2 i{font-style:normal;font-family:var(--mono);font-size:.8rem;color:#fff;background:var(--teal);border-radius:6px;padding:.1rem .45rem}
.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.tool{position:relative;display:block;text-decoration:none;color:var(--t);background:var(--card);border:1px solid var(--line);border-radius:20px;padding:1.8rem;overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.tool:after{content:"";position:absolute;right:-60px;top:-60px;width:160px;height:160px;border-radius:50%;background:radial-gradient(rgba(127,212,193,.45),transparent 70%);transition:.5s}
.tool:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(15,42,61,.55);border-color:var(--mint)}.tool:hover:after{transform:scale(1.8)}
.tool .n{font-family:var(--mono);color:var(--coral);font-size:.8rem}.tool h3{color:var(--ink);margin:.4rem 0;font-size:1.3rem}.tool h3 em,h1 em{font-style:normal;color:var(--m);font-weight:400;font-size:.7em}.tool b{color:var(--teal);font-size:.9rem}
.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:.8rem;margin-bottom:1.2rem}.step{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;position:relative}.step b{display:block;font-family:var(--mono);color:var(--teal)}.step:not(:last-child):after{content:"→";position:absolute;right:-.75rem;top:40%;color:var(--mint)}
.ph{font-size:.88em;padding:0 .4rem;border:1px dashed var(--coral);color:#c1532f;border-radius:4px}
.phead{padding:4.5rem 0 1.5rem}.phead h1{font-size:clamp(2rem,4.5vw,3.2rem);color:var(--ink);margin:.4rem 0;letter-spacing:-.02em}
.filters{position:sticky;top:62px;z-index:5;display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;background:rgba(255,253,248,.9);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;padding:.8rem 1rem;margin-bottom:1rem}
.filters input,.filters select{font:inherit;border:1px solid var(--line);border-radius:10px;padding:.4rem .7rem;background:#fff}#q{flex:1;min-width:220px}#y1,#y2{width:5.5rem}.ck{display:flex;gap:.3rem;align-items:center}#cnt{font-family:var(--mono);font-size:.85rem;color:var(--m);margin-left:auto}
.tbl{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:16px}table{border-collapse:collapse;width:100%;font-size:.9rem}
th{position:sticky;top:0;text-align:left;background:#f0ede4;padding:.7rem .8rem;cursor:pointer;white-space:nowrap;user-select:none}th:hover{color:var(--teal)}
td{padding:.65rem .8rem;border-top:1px solid var(--line);vertical-align:top}tr.r{cursor:pointer;transition:background .2s}tr.r:hover{background:rgba(127,212,193,.12)}
td.t{font-weight:600;color:var(--ink);min-width:300px}td.a{color:var(--m);max-width:220px}td.y{font-family:var(--mono)}td.j{max-width:200px}
.tag{display:inline-block;font-size:.72rem;font-family:var(--mono);padding:.05rem .45rem;border-radius:5px;margin:.1rem .2rem .1rem 0;text-decoration:none}.tag.d{background:#e6eef3;color:var(--ink)}.tag.o{background:#dcf3ec;color:#0a6b5a}
tr.ab td{background:#faf8f2;color:#3c4a52;font-size:.88rem;animation:fd .35s}@keyframes fd{from{opacity:0;transform:translateY(-4px)}}
.vgrid{display:grid;grid-template-columns:1.25fr 1fr;gap:1.6rem;align-items:start}
.rep{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:14px;padding:1.1rem 1.4rem;margin-bottom:1rem;overflow-wrap:anywhere}.rep time{font-family:var(--mono);font-size:.8rem;color:var(--coral)}
.md h1,.md h2,.md h3{font-size:1.05rem;margin:.6rem 0 .3rem;color:var(--ink);display:block}.md ul{padding-left:1.2rem}.md li{margin:.2rem 0}.md strong{background:linear-gradient(transparent 60%,rgba(255,138,101,.28) 60%)}.md table{font-size:.85rem}.md td,.md th{border:1px solid var(--line);padding:.3rem .5rem}
.digest{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem 1.3rem;font-size:.85rem;max-height:80vh;overflow:auto;overflow-wrap:anywhere;position:sticky;top:80px}
.jcard{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:2.2rem;max-width:720px}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:.85rem 1.6rem;border-radius:99px;font-weight:600;transition:.3s;box-shadow:0 10px 24px -12px rgba(15,42,61,.7)}.btn:hover{background:var(--teal);transform:translateY(-2px)}
footer{max-width:1180px;margin:4rem auto 0;padding:2rem 1.5rem;display:flex;justify-content:space-between;color:var(--m);font-size:.82rem;border-top:1px solid var(--line)}
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}.rv.in{opacity:1;transform:none}
@media(max-width:900px){.tools,.vgrid{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.step:after{display:none}.hero{padding-top:4rem}.filters{top:100px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.hl{background-size:100% 100%}}
.settle *{transition:none!important;animation-duration:0s!important;animation-delay:0s!important}
