/* 旋机成事 · 项目页 */
.xj-project{--ink:#1f3a5f;--ink2:#3d5a80;--green:#2e7d32;--amber:#b7791f;--red:#b3261e;--paper:#faf8f3;--line:#d9dee5;--muted:#5f6b7a;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong",Georgia,"Times New Roman",serif;
  --sans:"PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-family:var(--sans);color:#222;line-height:1.75;max-width:1080px;margin:0 auto}
.xj-project h1,.xj-project h2,.xj-project h3{font-family:var(--serif);color:var(--ink);letter-spacing:.01em}
.xj-project .wp-block-group{margin-block-start:0}
.xj-hero{background:linear-gradient(135deg,#f3f1ea 0%,#e9eef5 100%);border-radius:14px;padding:clamp(28px,5vw,64px) clamp(20px,5vw,56px) 28px;margin-bottom:28px;position:relative;overflow:hidden}
.xj-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;border:2px solid rgba(46,125,50,.18);box-shadow:0 0 0 28px rgba(31,58,95,.04),0 0 0 56px rgba(31,58,95,.03);pointer-events:none}
.xj-kicker{font-size:.85rem;letter-spacing:.12em;color:var(--muted);margin:0 0 .4em}
.xj-hero h1{font-size:clamp(2.4rem,6vw,3.8rem);margin:.1em 0 .2em;line-height:1.15}
.xj-thesis{font-family:var(--serif);font-size:clamp(1.15rem,2.4vw,1.45rem);color:var(--ink2);margin:.2em 0 .8em}
.xj-lead{max-width:44em;color:#333;font-size:1.02rem}
.xj-hero .wp-block-buttons{gap:10px;margin:1.2em 0 .6em}
.xj-hero .wp-block-button__link{background:var(--ink);color:#fff;border-radius:999px;padding:.55em 1.3em;font-size:.95rem}
.xj-hero .wp-block-button:first-child .wp-block-button__link{background:var(--green)}
.xj-hero .wp-block-button:last-child .wp-block-button__link{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.xj-nav{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:1.2em;padding-top:.9em;border-top:1px solid rgba(31,58,95,.15);font-size:.9rem}
.xj-nav a{color:var(--ink);text-decoration:none;border-bottom:1px dotted rgba(31,58,95,.4)}
.xj-nav a:hover{color:var(--green);border-color:var(--green)}
.xj-sec{padding:clamp(20px,3vw,36px) clamp(4px,2vw,20px);border-bottom:1px solid var(--line)}
.xj-sec-alt{background:var(--paper);border-radius:12px;border-bottom:0;margin:18px 0;padding-left:clamp(16px,3vw,32px);padding-right:clamp(16px,3vw,32px)}
.xj-sec h2{font-size:clamp(1.45rem,3vw,1.9rem);margin:.2em 0 .5em;scroll-margin-top:24px}
.xj-sec h3{font-size:1.12rem;margin:.1em 0 .4em}
.xj-sec-lead{color:var(--muted);max-width:48em}
.xj-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px!important;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.xj-compare:first-child{border-top:4px solid var(--ink2)}
.xj-compare:last-child{border-top:4px solid var(--green)}
.xj-note-line{border-left:4px solid var(--green);padding-left:12px;color:var(--ink)}
.xj-steps{list-style:none;padding:0;margin:.4em 0;display:grid;grid-template-columns:repeat(7,1fr);gap:8px;counter-reset:s}
.xj-steps li{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 10px 12px;text-align:center}
.xj-steps li::after{content:"→";position:absolute;right:-9px;top:22px;color:var(--green);font-weight:700;z-index:1}
.xj-steps li:last-child::after{content:"↺";right:6px;top:6px;font-size:.9rem}
.xj-steps .n{display:inline-block;width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;font-size:.8rem;line-height:26px}
.xj-steps strong{display:block;font-family:var(--serif);color:var(--ink);font-size:1.12rem;margin:.35em 0 .2em}
.xj-steps .d{display:block;font-size:.8rem;color:var(--muted);line-height:1.5}
@media (max-width:900px){.xj-steps{grid-template-columns:repeat(2,1fr)}.xj-steps li::after{display:none}}
.xj-metric{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2rem);color:var(--green);margin:0;line-height:1.25;white-space:nowrap}
.xj-metric-cap{font-size:.88rem;color:#444;margin:.4em 0 0}
.xj-tier{display:inline-block;font-size:.8rem;border-radius:4px;padding:.1em .6em;margin-top:.8em}
.xj-tier-exp{background:#ebf5ec;color:var(--green);border-left:3px solid var(--green)}
.xj-site-rotor{width:100%;max-width:440px;display:block;margin:0 auto}
.xj-site-rotor line.sheng{stroke:var(--green);stroke-width:3}
.xj-site-rotor line.sheng.back{stroke-width:5;stroke:#1b5e20}
.xj-site-rotor line.ke{stroke:var(--amber);stroke-width:1.2;stroke-dasharray:4 4;opacity:.8}
.xj-site-rotor circle{fill:#fff;stroke:var(--ink);stroke-width:2}
.xj-site-rotor .el{font-family:var(--serif);font-size:17px;fill:var(--ink);font-weight:700}
.xj-site-rotor .lb{font-size:13px;fill:#333}
.xj-layer{border-left:4px solid var(--ink2);padding:4px 0 4px 14px;margin:0 0 14px}
.xj-layer:nth-child(2){border-color:var(--green)}
.xj-layer:nth-child(3){border-color:var(--amber)}
.xj-layer p{margin:.1em 0;font-size:.95rem}
.xj-hyps{margin:0;padding-left:1.1em}
.xj-hyps li{margin:.35em 0}
.xj-status{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.xj-bar{height:12px;background:#e8ecf1;border-radius:999px;overflow:hidden}
.xj-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#66bb6a);min-width:2px}
.xj-status p{margin:.5em 0 0}
.xj-small{font-size:.8rem;color:var(--muted)}
.xj-limits{border-left:4px solid var(--amber);padding-left:12px;font-size:.93rem}
.xj-tiers{display:flex;flex-wrap:wrap;gap:8px}
.xj-tierchip{font-size:.85rem;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.35em .7em;border-left-width:4px}
.xj-tierchip b{margin-right:.5em;color:var(--ink)}
.xj-tierchip.t0{border-left-color:#1f5fa8}.xj-tierchip.t1{border-left-color:var(--green)}.xj-tierchip.t2,.xj-tierchip.t3{border-left-color:#6a3d9a}.xj-tierchip.t4{border-left-color:var(--amber)}
.xj-docs{padding-left:1.1em}
.xj-docs a{color:var(--ink)}
.xj-boundary{font-size:.88rem;color:var(--muted);background:var(--paper);border-radius:8px;padding:12px 14px}
.xj-sign{text-align:right;font-family:var(--serif);color:var(--ink2)}
.xj-project .xj-cases{max-width:none}
.xj-project .xj-case{display:block}
.xj-project p,.xj-project li{font-size:1rem}
.xj-project .xj-lead{font-size:1.02rem}
.xj-project .xj-card h3,.xj-project .xj-layer h3{font-size:1.15rem;font-weight:700}
.xj-project .xj-cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.xj-project .xj-case{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;border-top:4px solid var(--green)}
.xj-project .xj-case.xj-contrast{border-top-color:var(--red);background:#fffaf9}
.xj-project .xj-case h3{font-size:1.05rem;margin:.1em 0 .3em}
.xj-project .xj-case h3 a{color:var(--ink);text-decoration:none}
.xj-project .xj-case .xj-badge{font-size:.75rem;margin:.2em 0 .4em}
.xj-project .xj-case p{font-size:.92rem;margin:.3em 0 0}
.xj-project .xj-hyps li{font-size:.97rem}
.xj-project p.xj-metric{font-size:clamp(1.5rem,3vw,2rem)}
.xj-project p.xj-thesis{font-size:clamp(1.15rem,2.4vw,1.45rem)}
.xj-project p.xj-metric-cap{font-size:.88rem}
.xj-project p.xj-kicker{font-size:.85rem}
.xj-project p.xj-small{font-size:.8rem}
.xj-project p.xj-boundary{font-size:.88rem}
.xj-template-main{padding:0 clamp(12px,3vw,24px);margin-top:0}
.xj-langbar{max-width:1080px;margin:14px auto 12px}
.xj-project + .xj-project{margin-top:0}
.xj-langbar{display:flex;justify-content:flex-end}
.xj-langbar>.xj-langsw,.xj-langbar>.xj-langsw.alignright{float:none!important;margin:0!important}
.xj-template-main>.wp-block-xuanji-lang-section{clear:both}
.editor-styles-wrapper .xj-hero::after{display:none}
.xj-project .xj-case[hidden]{display:none}
