.read-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--acc);z-index:200;transition:width .1s linear}.art-hero{padding:24px 0 48px}.art-hero .inner{max-width:860px}.art-hero h1{font-family:var(--font-mono);font-weight:800;font-size:40px;line-height:1.16;letter-spacing:-.025em;color:var(--ink);margin:16px 0 22px;text-wrap:pretty}.art-meta{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.art-meta .dot-sep{color:var(--slate-light)}.art-meta .md{font-family:var(--font-mono);font-size:13px;color:var(--slate)}.art-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.art-tags a,.art-tags span{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--slate);background:var(--paper-2);border:1px solid var(--line);border-radius:100px;padding:5px 13px;transition:color .14s,border-color .14s}.art-tags a:hover{color:var(--acc);border-color:var(--acc-line)}.art-visual{margin-top:36px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-card)}.art-visual .bar{display:flex;align-items:center;gap:7px;padding:12px 16px;background:var(--navy-900)}.art-visual .bar i{width:11px;height:11px;border-radius:50%;display:block}.art-visual .bar .fname{font-family:var(--font-mono);font-size:12.5px;color:#8ba0b6;margin-left:10px}.art-visual .ph{aspect-ratio:21/8;border:none;border-radius:0}.art-visual .shot{aspect-ratio:21/8;overflow:hidden;background:var(--paper-3)}.art-visual .shot img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center}.toc{list-style:none;display:flex;flex-direction:column}.toc a{display:block;font-family:var(--font-mono);font-size:12.5px;line-height:1.45;color:var(--slate);padding:6px 0 6px 14px;border-left:2px solid var(--line-soft);transition:color .14s,border-color .14s}.toc a:hover{color:var(--acc)}.toc a.active{color:var(--acc);border-left-color:var(--acc);font-weight:600}.toc a.lvl3{padding-left:26px;font-size:12px}.share-row{display:flex;gap:10px;flex-wrap:wrap}.share-row a,.share-row button{width:38px;height:38px;border-radius:10px;background:var(--paper-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--slate);cursor:pointer;transition:color .15s,border-color .15s,transform .15s}.share-row a:hover,.share-row button:hover{color:var(--acc);border-color:var(--acc-line);transform:translateY(-2px)}.rail-cta .btn{width:100%;justify-content:center;margin-top:6px}.rail-cta .line{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:13px;color:var(--slate);padding:7px 0}.rail-cta .line .ic{color:var(--acc);width:18px;text-align:center}.art-prose{min-width:0;max-width:none}.art-prose>*{max-width:68ch}.art-prose h2{font-family:var(--font-mono);font-weight:800;font-size:26px;line-height:1.3;letter-spacing:-.015em;color:var(--ink);margin:64px 0 18px;scroll-margin-top:110px}.art-prose h2:first-child{margin-top:0}.art-prose h2:before{content:"#";color:var(--acc);margin-right:10px;font-weight:700}.art-prose h3{font-size:18.5px;font-weight:700;color:var(--ink);margin:36px 0 12px;letter-spacing:-.01em;scroll-margin-top:110px}.art-prose h4{font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--ink);margin:28px 0 10px}.art-prose p{font-size:16.5px;line-height:1.78;color:var(--slate);margin-bottom:18px}.art-prose p b,.art-prose li b,.art-prose p strong,.art-prose li strong{color:var(--ink);font-weight:600}.art-prose a:not(.btn){color:var(--acc);text-decoration:underline;text-underline-offset:2px}.art-prose a:not(.btn):hover{color:var(--acc-deep)}.art-prose ul,.art-prose ol{margin:0 0 20px;padding:0;list-style:none}.art-prose ul li{position:relative;padding-left:24px;margin-bottom:9px;font-size:15.5px;line-height:1.7;color:var(--slate)}.art-prose ul li:before{content:"▸";position:absolute;left:2px;top:0;color:var(--acc);font-family:var(--font-mono);font-weight:700}.art-prose ol{counter-reset:oli}.art-prose ol li{position:relative;padding-left:38px;margin-bottom:10px;font-size:15.5px;line-height:1.7;color:var(--slate);counter-increment:oli}.art-prose ol li:before{content:counter(oli,decimal-leading-zero);position:absolute;left:0;top:2px;font-family:var(--font-mono);font-size:12.5px;font-weight:700;color:var(--acc)}.art-prose img{border-radius:var(--r-md);border:1px solid var(--line);margin:28px 0}.art-prose blockquote{border-left:3px solid var(--acc);background:var(--acc-soft);border-radius:0 var(--r-md) var(--r-md) 0;padding:16px 24px;margin:26px 0}.art-prose blockquote p{font-size:16px;color:var(--ink);margin:0;font-style:italic}.art-prose :not(pre)>code{font-family:var(--font-mono);font-size:.88em;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:2px 7px;color:var(--acc-deep)}.art-prose pre{background:var(--navy-900);color:#c6d3df;border-radius:var(--r-md);padding:20px 22px;overflow-x:auto;margin:26px 0;font-family:var(--font-mono);font-size:13.5px;line-height:1.7}.art-prose pre code{background:none;border:none;padding:0;color:inherit;font-size:inherit}.art-prose table{width:100%;max-width:none;border-collapse:collapse;margin:26px 0;font-size:14.5px}.art-prose th,.art-prose td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}.art-prose thead th{font-family:var(--font-mono);font-size:12.5px;color:var(--ink);background:var(--paper-2)}.art-prose hr{border:none;border-top:1px solid var(--line);margin:40px 0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 30px;max-width:none}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:20px 20px 18px}.stat-card .v{font-family:var(--font-mono);font-weight:800;font-size:26px;letter-spacing:-.02em;color:var(--ink)}.stat-card .v small{font-size:15px;color:var(--acc);font-weight:700}.stat-card .k{font-size:13px;color:var(--slate);margin-top:5px;line-height:1.45}.callout{background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:var(--r-md);padding:20px 24px;margin:26px 0 30px;max-width:none}.callout .cl{font-family:var(--font-mono);font-size:12.5px;font-weight:700;color:var(--acc);margin-bottom:8px}.callout p{font-size:15px;line-height:1.7;margin:0;color:var(--ink)}.compare{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:26px 0 30px;max-width:none}.cmp-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column}.cmp-card .head{background:var(--navy-900);padding:18px 24px}.cmp-card .head .t{font-family:var(--font-mono);font-weight:800;font-size:18px;color:#fff}.cmp-card .head .s{font-family:var(--font-mono);font-size:12px;color:var(--acc-bright);margin-top:3px}.cmp-card .bd{padding:22px 24px;flex:1}.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 30px;max-width:none}.tier{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:22px 22px 20px}.tier .t{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--slate);margin-bottom:12px}.tier .pr{font-family:var(--font-mono);font-size:21px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}.author-box{display:flex;gap:24px;align-items:flex-start;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 32px;margin:64px 0 0;max-width:none}.author-box img{width:84px;height:84px;border-radius:50%;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;flex:none;border:3px solid #fff;box-shadow:0 4px 14px #0c22362e}.author-box .al{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--acc);margin-bottom:6px}.author-box .an{font-family:var(--font-mono);font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.01em}.author-box p{font-size:14.5px;line-height:1.65;color:var(--slate);margin:10px 0 16px}.author-box .row{display:flex;gap:12px;flex-wrap:wrap}.related{padding:88px 0 104px}.related .list-head{margin-bottom:32px}@media (max-width: 1080px){.stat-grid,.tiers{grid-template-columns:repeat(2,1fr)}}@media (max-width: 880px){.art-hero h1{font-size:28px}.stat-grid,.tiers,.compare{grid-template-columns:1fr}.author-box{flex-direction:column}}
