:root{--bg: #ffffff;--bg-soft: #f7f6f3;--bg-muted: #f1efe8;--line: #e5e3dc;--line-strong: #d3d1c7;--ink: #1f1f1d;--ink-2: #55544f;--ink-3: #86847c;--accent: #a32d2d;--accent-soft: #fcebeb;--good: #0f6e56;--good-soft: #e1f5ee;--warn: #854f0b;--warn-soft: #faeeda;--info: #185fa5;--info-soft: #e6f1fb;--radius: 10px;--radius-lg: 14px;--wrap: 760px;--gutter: 20px}@media(prefers-color-scheme:dark){:root{--bg: #1a1a18;--bg-soft: #232321;--bg-muted: #2c2c2a;--line: #3a3a37;--line-strong: #4d4d49;--ink: #f0efe9;--ink-2: #b8b6ae;--ink-3: #8a887f;--accent: #f09595;--accent-soft: #3a1f1f;--good: #9fe1cb;--good-soft: #123029;--warn: #fac775;--warn-soft: #33260d;--info: #b5d4f4;--info-soft: #12283c}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,Helvetica,Arial,sans-serif;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}.site-header{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:20}.site-header .inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px}.brand{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px;min-height:48px}.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto}.site-nav{display:flex;gap:4px;flex-wrap:wrap}.site-nav a{color:var(--ink-2);text-decoration:none;font-size:14px;padding:10px 12px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}.site-nav a:hover{background:var(--bg-muted);color:var(--ink)}.crumbs{font-size:13px;color:var(--ink-3);padding:14px 0 0}.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.crumbs li{display:flex;gap:6px;align-items:center}.crumbs a{color:var(--ink-3);text-decoration:none}.crumbs a:hover{color:var(--ink);text-decoration:underline}.crumbs li+li:before{content:"/";color:var(--line-strong)}main{padding-bottom:64px}article header.page-head{padding:22px 0 8px}h1{font-size:30px;line-height:1.25;letter-spacing:-.022em;font-weight:700;margin:0 0 12px;text-wrap:balance}@media(max-width:620px){h1{font-size:25px}}h2{font-size:22px;letter-spacing:-.014em;font-weight:700;margin:40px 0 12px;line-height:1.3;text-wrap:balance}h3{font-size:18px;font-weight:600;margin:28px 0 8px;line-height:1.35}h4{font-size:16px;font-weight:600;margin:20px 0 6px}p{margin:0 0 16px}ul,ol{margin:0 0 16px;padding-left:24px}li{margin-bottom:7px}strong{font-weight:650}a{color:var(--ink);text-underline-offset:3px}a:hover{color:var(--accent)}code{background:var(--bg-muted);border-radius:5px;padding:2px 6px;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}blockquote{margin:20px 0;padding:4px 0 4px 18px;border-left:3px solid var(--line-strong);color:var(--ink-2)}.byline{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;color:var(--ink-3);padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:26px}.byline .verified{color:var(--good);font-weight:600}.answer{background:var(--good-soft);border-radius:var(--radius-lg);padding:20px 22px;margin:0 0 28px}.answer .label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--good);margin-bottom:8px}.answer p:last-child{margin-bottom:0}.callout{border-radius:0 var(--radius) var(--radius) 0;padding:16px 20px;margin:22px 0;font-size:15.5px;border-left:3px solid var(--line-strong);background:var(--bg-soft)}.callout:last-child{margin-bottom:0}.callout.warn{border-left-color:var(--warn);background:var(--warn-soft)}.callout.alert{border-left-color:var(--accent);background:var(--accent-soft)}.callout.info{border-left-color:var(--info);background:var(--info-soft)}.callout .ct{display:block;font-weight:700;margin-bottom:5px;font-size:14px;letter-spacing:.01em}.callout.warn .ct{color:var(--warn)}.callout.alert .ct{color:var(--accent)}.callout.info .ct{color:var(--info)}.callout p:last-child{margin-bottom:0}.cta{display:block;border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:18px 20px;margin:26px 0;text-decoration:none;background:var(--bg);transition:border-color .15s ease}.cta:hover{border-color:var(--accent)}.cta .cta-title{font-weight:700;font-size:16px;color:var(--ink);display:block;margin-bottom:4px}.cta .cta-sub{font-size:14px;color:var(--ink-2);display:block;margin-bottom:12px}.cta .cta-btn{display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 20px;border-radius:999px;background:var(--accent);color:#fff;font-weight:650;font-size:15px}@media(prefers-color-scheme:dark){.cta .cta-btn{color:#1a1a18}}.cta .disclosure{display:block;font-size:12px;color:var(--ink-3);margin-top:12px;line-height:1.5}.table-scroll{overflow-x:auto;margin:22px 0;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:15px}table caption{caption-side:top;text-align:left;font-size:13.5px;color:var(--ink-2);padding-bottom:9px;font-weight:600}th{text-align:left;font-size:13px;font-weight:700;color:var(--ink-2);padding:10px 12px;border-bottom:1.5px solid var(--line-strong);background:var(--bg-soft);white-space:nowrap}td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:none}.t-verified{display:block;font-size:12.5px;color:var(--good);margin-top:8px;font-weight:600}.pc{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}@media(max-width:620px){.pc{grid-template-columns:1fr}}.pc>div{border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px}.pc .pros{border-top:3px solid var(--good)}.pc .cons{border-top:3px solid var(--accent)}.pc h3{margin:0 0 10px;font-size:14px;letter-spacing:.02em;text-transform:uppercase}.pc .pros h3{color:var(--good)}.pc .cons h3{color:var(--accent)}.pc ul{margin:0;padding-left:20px;font-size:15px}.pc li:last-child{margin-bottom:0}.faq{margin:26px 0}.faq details{border-bottom:1px solid var(--line);padding:4px 0}.faq details:first-of-type{border-top:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:600;font-size:16px;padding:14px 0;min-height:48px;display:flex;align-items:center;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";margin-left:auto;font-weight:600;color:var(--ink-3);font-size:20px;padding-left:12px}.faq details[open] summary:after{content:"−"}.faq .answer-body{padding:0 0 16px;font-size:15.5px;color:var(--ink-2)}.faq .answer-body p:last-child{margin-bottom:0}.score-pill{display:inline-flex;align-items:baseline;gap:4px;background:var(--bg-muted);border-radius:999px;padding:5px 14px;font-weight:700;font-size:15px}.score-pill small{font-size:12px;color:var(--ink-3);font-weight:600}.cards{display:grid;gap:14px;margin:24px 0}@media(min-width:640px){.cards{grid-template-columns:1fr 1fr}}.card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px;text-decoration:none;display:block;transition:border-color .15s ease}.card:hover{border-color:var(--line-strong)}.card.is-listed{border-style:dashed;cursor:default}.card.is-listed:hover{border-color:var(--line)}.card.is-listed .card-name{color:var(--ink-2)}.card.is-listed .card-top .card-score{font-weight:400}.card.is-listed .card-meta+.card-meta{margin-top:8px;font-style:italic;opacity:.85}.card .card-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.card .card-name{font-weight:700;font-size:17px;color:var(--ink)}.card .card-score{font-size:13px;font-weight:700;color:var(--ink-3);flex:0 0 auto}.card .card-desc{font-size:14.5px;color:var(--ink-2);margin:0 0 10px}.card .card-meta{font-size:13px;color:var(--ink-3);margin:0}.related{margin:44px 0 0;padding-top:26px;border-top:1px solid var(--line)}.related h2{font-size:18px;margin:0 0 14px}.related ul{list-style:none;padding:0;margin:0}.related li{margin-bottom:12px}.related a{font-weight:600;text-decoration:none}.related a:hover{text-decoration:underline}.related .why{display:block;font-size:13.5px;color:var(--ink-3);font-weight:400}ol.steps{list-style:none;padding:0;counter-reset:s}ol.steps>li{counter-increment:s;position:relative;padding-left:44px;margin-bottom:22px}ol.steps>li:before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}ol.steps>li strong{display:block;margin-bottom:3px}figure.shot{margin:22px 0}figure.shot img{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius);display:block}figure.shot figcaption{font-size:13px;color:var(--ink-3);margin-top:8px}.shot-placeholder{border:1.5px dashed var(--line-strong);border-radius:var(--radius);padding:30px 20px;text-align:center;color:var(--ink-3);font-size:13.5px;background:var(--bg-soft)}.toc{background:var(--bg-soft);border-radius:var(--radius-lg);padding:16px 20px;margin:0 0 28px;font-size:14.5px}.toc .label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}.toc ol{margin:0;padding-left:20px}.toc li{margin-bottom:5px}.toc a{text-decoration:none;color:var(--ink-2)}.toc a:hover{text-decoration:underline;color:var(--ink)}.site-footer{border-top:1px solid var(--line);padding:28px 0 40px;font-size:13.5px;color:var(--ink-3);margin-top:40px}.site-footer a{color:var(--ink-2)}.site-footer .fnav{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:12px}.site-footer .disc{line-height:1.6;margin-bottom:10px}.muted{color:var(--ink-3)}.small{font-size:13.5px}.center{text-align:center}hr{border:none;border-top:1px solid var(--line);margin:36px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:0 0 8px;z-index:100}.skip:focus{left:0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
