
html{--fn_p:#27BEA5;--fn_sf:#FFFFFF;--fn_fg:#281F15;color-scheme:light;--fn_p2:#2ABBB4;--fn_pt:#1A7F6E;--fn_a:#266F9D;--fn_on:#09342D;--fn_bg:#FBFAF9;--fn_mu:#7D6E5E;--fn_bd:#E6DED5}
html{--fn_f:"HarmonyOS Sans SC","MiSans","PingFang SC","Microsoft YaHei",sans-serif;--fn_hf:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;--fn_w:1020px;--fn_r:0px;--fn_g:1.25rem}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:4.2rem}
body{font:16px/1.75 var(--fn_f);background:var(--fn_bg);color:var(--fn_fg);overflow-wrap:anywhere;margin:0}
a{color:var(--fn_pt);text-underline-offset:3px}
summary:focus-visible,a:focus-visible{outline:2px solid var(--fn_pt);outline-offset:3px;border-radius:2px}
svg{display:block}
h3,h2,h1{color:var(--fn_fg);line-height:1.3;margin:0;font-family:var(--fn_hf)}
.fn_skip{position:absolute;top:0;left:-999px}
.fn_skip:focus{padding:.55rem 1.05rem;background:var(--fn_sf);z-index:20;top:1.05rem;left:1.05rem}
.fn_progress{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--fn_a);transform:scaleX(0);transform-origin:0 50%;z-index:15}
.fn_shell{padding:0 1.05rem;margin:0 auto;max-width:var(--fn_w)}
/* masthead */
.fn_mast{padding:calc(var(--fn_g)*1.2) 0 0}
.fn_dateline{border-bottom:1px solid var(--fn_bd);display:flex;letter-spacing:.06em;color:var(--fn_mu);justify-content:space-between;padding-bottom:.55rem;font-size:.8rem;gap:1.05rem;flex-wrap:wrap}
.fn_brand{display:flex;text-decoration:none;color:var(--fn_fg);gap:.85rem;justify-content:center;align-items:center;padding:calc(var(--fn_g)*1.4) 0 calc(var(--fn_g)*1.1)}
.fn_brand .fn_logo{width:44px;height:44px;flex:none}
.fn_brand b{font-weight:800;letter-spacing:.04em;line-height:1.1;font-size:clamp(2rem,5.4vw,3.55rem);font-family:var(--fn_hf)}
.fn_rule{border-bottom:1px solid var(--fn_fg);border-top:3px solid var(--fn_fg);margin:0;height:6px}
/* category bar */
.fn_cats{border-bottom:1px solid var(--fn_bd);background:var(--fn_bg);position:sticky;top:0;z-index:10}
.fn_cats ul{display:flex;padding:0 1.05rem;margin:0 auto;max-width:var(--fn_w);overflow-x:auto;scrollbar-width:none;gap:.2rem;list-style:none}
.fn_cats ul::-webkit-scrollbar{display:none}
.fn_cats a{font-weight:600;font-size:.95rem;text-decoration:none;border-bottom:2px solid transparent;color:var(--fn_fg);padding:.75rem .9rem;display:block;white-space:nowrap}
.fn_cats a:hover{color:var(--fn_pt);border-bottom-color:var(--fn_p)}
.fn_cats li:first-child a{padding-left:0}
/* body grid */
.fn_body{padding-top:calc(var(--fn_g)*2.2);display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:calc(var(--fn_g)*3);padding-bottom:calc(var(--fn_g)*3)}
.fn_main{min-width:0}
.fn_kicker{font-weight:700;color:var(--fn_a);letter-spacing:.18em;font-size:.8rem;text-transform:uppercase;margin:0 0 .85rem;display:inline-block}
.fn_kicker::before{width:1.7rem;content:"";background:var(--fn_a);margin-right:.65rem;vertical-align:middle;display:inline-block;height:2px}
.fn_lead h1{letter-spacing:-.005em;font-weight:800;line-height:1.18;font-size:clamp(1.9rem,4.6vw,3.15rem)}
.fn_dek{margin:1.05rem 0 0;max-width:40em;color:var(--fn_mu);line-height:1.7;font-size:1.2rem}
.fn_byline{margin:1.15rem 0 0;border-bottom:1px solid var(--fn_bd);font-size:.85rem;display:flex;gap:.4rem 1.25rem;border-top:1px solid var(--fn_bd);color:var(--fn_mu);padding:.75rem 0;flex-wrap:wrap}
.fn_cover{margin:calc(var(--fn_g)*1.6) 0 0}
.fn_cover_art{aspect-ratio:3/2;overflow:hidden;border-radius:var(--fn_r);background:linear-gradient(135deg,color-mix(in srgb,var(--fn_p) 16%,var(--fn_bg)),color-mix(in srgb,var(--fn_p2) 6%,var(--fn_sf)))}
.fn_cover_art .fn_decor{height:100%;width:100%}
.fn_cover figcaption{font-size:.85rem;color:var(--fn_mu);padding-left:.75rem;border-left:2px solid var(--fn_a);margin-top:.55rem}
/* reading */
.fn_read{margin-top:calc(var(--fn_g)*2.4)}
.fn_article{line-height:1.95;max-width:40em;font-size:1.1rem;font-family:var(--fn_hf)}
.fn_article+.fn_article{padding-top:calc(var(--fn_g)*2.2);border-top:1px solid var(--fn_bd);margin-top:calc(var(--fn_g)*2.6)}
.fn_article h2{font-weight:800;margin-bottom:1.05rem;font-size:clamp(1.45rem,3vw,1.95rem)}
.fn_article h3{padding-left:.75rem;border-left:3px solid var(--fn_p);font-size:1.2rem;margin:1.9rem 0 .4rem}
.fn_article p{margin:0 0 1.1rem}
.fn_article ol,.fn_article ul{margin:0 0 1.15rem;padding-left:1.35rem}
.fn_article li{margin:.3rem 0}
.fn_article li::marker{color:var(--fn_pt)}
.fn_article>p:first-of-type::first-letter{margin:.08em .12em 0 0;font-weight:800;font-size:3.3em;color:var(--fn_pt);line-height:.9;float:left}
/* sections in main */
.fn_sec{margin-top:calc(var(--fn_g)*3.2)}
.fn_sec_h{display:flex;border-top:3px solid var(--fn_fg);gap:.85rem;margin-bottom:1.25rem;align-items:baseline;padding-top:.65rem}
.fn_sec_h h2{font-weight:800;font-size:1.5rem}
.fn_sec_h span{color:var(--fn_mu);letter-spacing:.16em;white-space:nowrap;font-size:.8rem}
.fn_sub{color:var(--fn_mu);margin:-.4rem 0 1.35rem;font-size:1rem}
.fn_pulls{display:grid;gap:calc(var(--fn_g)*1.2);grid-template-columns:repeat(2,minmax(0,1fr))}
.fn_note{border-top:4px solid var(--fn_p);background:var(--fn_sf);padding:1.7rem 1.15rem 1.15rem;position:relative;border-radius:0 0 var(--fn_r) var(--fn_r)}
.fn_note.fn_con{border-top-color:var(--fn_a)}
.fn_note.fn_tip_n{border-top-color:var(--fn_mu)}
.fn_note::before{position:absolute;color:color-mix(in srgb,var(--fn_p) 35%,transparent);content:"\201C";right:.95rem;font:800 3.8rem/1 var(--fn_hf);top:-.1rem}
.fn_verdict{font-weight:700;color:var(--fn_pt);font-size:.8rem;letter-spacing:.1em}
.fn_note.fn_con .fn_verdict{color:var(--fn_a)}
.fn_note h3{line-height:1.45;font-size:1.2rem;margin:.35rem 0 .45rem}
.fn_note p{color:var(--fn_mu);margin:0;font-size:1rem}
.fn_stepset h3{font-size:1.15rem;margin-bottom:.85rem}
.fn_steps{counter-reset:fn_st;margin:0;padding:0;list-style:none}
.fn_steps li{margin-left:1.05rem;border-left:1px dashed var(--fn_bd);padding:0 0 1.15rem 3.15rem;counter-increment:fn_st;position:relative}
.fn_steps li:last-child{border-left-color:transparent}
.fn_steps li::before{content:counter(fn_st);position:absolute;left:-1rem;top:0;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--fn_bg);border:2px solid var(--fn_p);display:grid;place-items:center;font-weight:800;font-size:.95rem;color:var(--fn_pt)}
.fn_steps b,.fn_steps strong{display:block;padding-top:.2rem}
.fn_steps p{color:var(--fn_mu);font-size:1rem;margin:.2rem 0 0}
.fn_tablewrap{overflow-x:auto;border:1px solid var(--fn_bd);border-radius:var(--fn_r)}
.fn_compare{width:100%;border-collapse:collapse;font-size:.95rem;min-width:31.5rem}
.fn_compare caption{font-weight:700;caption-side:top;text-align:left;padding:.75rem .95rem}
.fn_compare td,.fn_compare th{border-top:1px solid var(--fn_bd);padding:.65rem .95rem;text-align:left;vertical-align:top}
.fn_compare thead th{font-size:.85rem;letter-spacing:.04em;background:var(--fn_sf)}
.fn_compare tbody th{font-weight:600}
.fn_letters{display:grid;gap:0}
.fn_letter{border-bottom:1px solid var(--fn_bd);padding:1.05rem 0}
.fn_letter h3{display:flex;font-size:1.1rem;gap:.65rem}
.fn_letter h3::before{font-size:.85rem;display:grid;background:var(--fn_p);margin-top:.1rem;color:var(--fn_on);width:1.6rem;height:1.6rem;place-items:center;border-radius:var(--fn_r);flex:none;content:"问"}
.fn_letter p{margin:.45rem 0 0 2.2rem;color:var(--fn_mu)}
/* sidebar */
.fn_side{display:flex;gap:calc(var(--fn_g)*1.8);min-width:0;flex-direction:column}
.fn_latest h2,.fn_box h2{border-bottom:2px solid var(--fn_fg);font-weight:800;font-family:var(--fn_f);font-size:.85rem;padding-bottom:.45rem;letter-spacing:.18em;margin:0 0 .85rem}
.fn_dl{background:var(--fn_sf);border:1px solid var(--fn_bd);border-radius:var(--fn_r);padding:1.15rem}
.fn_dl h2{border-bottom-color:var(--fn_p)}
.fn_dl p{font-size:.9rem;color:var(--fn_mu);margin:0 0 .85rem}
.fn_dl ul{display:grid;margin:0;gap:.55rem;padding:0;grid-template-columns:1fr 1fr;list-style:none}
.fn_dl a{display:flex;align-items:center;gap:.45rem;padding:.65rem .7rem;border-radius:var(--fn_r);background:var(--fn_bg);border:1px solid var(--fn_bd);color:var(--fn_fg);text-decoration:none;font-size:.9rem;font-weight:600}
.fn_dl a:hover{border-color:var(--fn_p)}
.fn_dl svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--fn_pt);stroke-width:1.8}
.fn_gloss{display:grid;gap:.8rem;margin:0}
.fn_gloss dt{font-weight:700;font-size:.95rem}
.fn_gloss dd{font-size:.9rem;color:var(--fn_mu);margin:.1rem 0 0;line-height:1.6}
.fn_rel{display:flex;flex-direction:column}
.fn_rel a{font-size:.95rem;text-decoration:none;padding:.55rem 0;color:var(--fn_fg);border-bottom:1px dotted var(--fn_bd)}
.fn_rel a::before{color:var(--fn_pt);content:"→";margin-right:.55rem}
.fn_rel a:hover{color:var(--fn_pt)}
.fn_latest ul{counter-reset:fn_lt;margin:0;padding:0;list-style:none}
.fn_latest li{counter-increment:fn_lt;padding:.6rem 0;font-size:.95rem;border-bottom:1px solid var(--fn_bd);display:flex;line-height:1.5;gap:.75rem}
.fn_latest li::before{font:800 1.35rem/1 var(--fn_hf);color:var(--fn_a);content:counter(fn_lt);min-width:1.15rem}
.fn_latest a{text-decoration:none;color:var(--fn_fg)}
.fn_latest a:hover{color:var(--fn_pt);text-decoration:underline}
.fn_tags{display:flex;gap:.4rem;flex-wrap:wrap}
.fn_tags a{font-size:.85rem;padding:.25rem .7rem;border:1px solid var(--fn_bd);border-radius:999px;color:var(--fn_mu);text-decoration:none}
.fn_tags a:nth-child(3n+1){font-size:.95rem;color:var(--fn_fg)}
.fn_tags a:hover{border-color:var(--fn_p);color:var(--fn_pt)}
/* colophon */
.fn_colophon{text-align:center;font-size:.9rem;border-top:1px solid var(--fn_bd);color:var(--fn_mu);padding:calc(var(--fn_g)*2) 1.05rem calc(var(--fn_g)*2.4)}
.fn_colophon .fn_logo{width:28px;height:28px;margin:0 auto .55rem}
.fn_colophon b{font-size:1.15rem;letter-spacing:.05em;color:var(--fn_fg);display:block;font-family:var(--fn_hf)}
.fn_colophon p{margin:.3rem 0}
@media (max-width:900px){
.fn_body{grid-template-columns:minmax(0,1fr);gap:calc(var(--fn_g)*2.6)}
.fn_side{grid-template-columns:repeat(auto-fit,minmax(15.75rem,1fr));display:grid}
}
@media (max-width:560px){
body{font-size:15px}
.fn_pulls{grid-template-columns:minmax(0,1fr)}
.fn_article{font-size:1.05rem;line-height:1.85}
.fn_dateline span:last-child{display:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fn_progress{display:none}}
.fn_mast2_in{padding:.95rem 0 .85rem;display:flex;justify-content:space-between;align-items:center;gap:1.05rem;border-bottom:3px double var(--fn_fg)}
.fn_mast2 .fn_brand{justify-content:flex-start;padding:0}
.fn_mast2 .fn_brand b{font-size:clamp(1.45rem,3.4vw,2.2rem)}
.fn_mast2 .fn_dateline{border:0;align-items:flex-end;padding:0;flex-direction:column;gap:.1rem}
.fn_mast3 .fn_brand{padding-top:1.25rem}
.fn_pulls_1{grid-template-columns:1fr}
.fn_letters_2{gap:1.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.fn_colophon2{display:grid;gap:2.1rem;margin:0 auto;max-width:var(--fn_w);padding-left:1.05rem;padding-right:1.05rem;text-align:left;grid-template-columns:1fr 1fr}
.fn_colophon2 .fn_brand{padding:0 0 .55rem;justify-content:flex-start}
.fn_colophon2 .fn_brand b{font-size:1.45rem}
@media (max-width:640px){.fn_colophon2,.fn_letters_2{grid-template-columns:1fr}.fn_mast2_in{align-items:flex-start;flex-direction:column}.fn_mast2 .fn_dateline{align-items:flex-start}}


.fn_ext{margin:.95rem 0 0;font-size:.85rem;color:var(--fn_mu)}.fn_ext span{opacity:.8;margin-right:.55rem}.fn_ext a{color:var(--fn_mu)}
h1{text-wrap:balance}