
:root{--bg:#F6F6F3;--surface:#FFFFFF;--surface-2:#F1F2EE;--line:#E2E4DE;--line-2:#CDD1CA;--text:#121815;--text-2:#3A4540;--muted:#66706B;
--brand:#0F5A40;--brand-2:#0B4733;--brand-soft:#E3EFE8;--on-brand:#FFFFFF;--accent:#A87A1E;--accent-soft:#F6EEDC;
--ok:#1B7A4B;--ok-soft:#E2F2E8;--warn:#9A630E;--warn-soft:#FBF0DD;--bad:#B3311B;--bad-soft:#FBE7E2;--info:#1F5FA8;--info-soft:#E4EDF8;
--shadow:0 1px 2px rgba(16,24,20,.06),0 1px 1px rgba(16,24,20,.04);--shadow-lg:0 12px 32px rgba(16,24,20,.12);
--r-sm:6px;--r:10px;--r-lg:14px;--ui:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--serif:'Fraunces',Georgia,'Times New Roman',serif;--font:'Bricolage Grotesque',system-ui,sans-serif;color-scheme:light}
[data-theme="dark"]{--bg:#0C100E;--surface:#131916;--surface-2:#19211D;--line:#25302A;--line-2:#34413A;--text:#E8ECE9;--text-2:#BAC3BE;--muted:#8A948E;
--brand:#3FA57A;--brand-2:#56B78D;--brand-soft:#15271F;--on-brand:#06120C;--accent:#D4A84A;--accent-soft:#2A2314;
--ok:#4CC38A;--ok-soft:#13281D;--warn:#E0A94C;--warn-soft:#2A2113;--bad:#F07A63;--bad-soft:#2E1813;--info:#7EB3F0;--info-soft:#14212F;
--shadow:0 1px 2px rgba(0,0,0,.4);--shadow-lg:0 12px 32px rgba(0,0,0,.5);color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.v4{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.55 var(--ui);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}
.v4 a{color:inherit;text-decoration:none}
.v4 h1,.v4 h2,.v4 h3,.v4 h4{margin:0;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.v4 p{margin:0}
.v4 img{max-width:100%;height:auto}
.v4 :focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.v4-i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.v4-i.sm{width:15px;height:15px}.v4-i.lg{width:22px;height:22px}
.v4-num{font-variant-numeric:tabular-nums}
.v4-muted{color:var(--muted)}.v4-small{font-size:13px}.v4-xs{font-size:12px}
.v4-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.v4-row.between{justify-content:space-between}
.v4-stack>*+*{margin-top:12px}.v4-stack.lg>*+*{margin-top:20px}
.v4-grid{display:grid;gap:16px}.v4-grid.c2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.v4-grid.c3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.v4-grid.c4{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.v4-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.v4-card-b{padding:18px}.v4-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.v4-card-h h2,.v4-card-h h3{font-size:15px}
.v4-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--surface);color:var(--text);font:600 14px/1 var(--ui);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.v4-btn:hover{background:var(--surface-2)}
.v4-btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.v4-btn.primary:hover{background:var(--brand-2)}
.v4-btn.ghost{border-color:transparent;background:transparent}.v4-btn.ghost:hover{background:var(--surface-2)}
.v4-btn.danger{color:var(--bad);border-color:var(--line-2)}.v4-btn.danger:hover{background:var(--bad-soft);border-color:var(--bad)}
.v4-btn.sm{height:32px;padding:0 10px;font-size:13px}.v4-btn.block{width:100%}.v4-btn[disabled]{opacity:.5;cursor:not-allowed}
.v4-field{display:block}.v4-field+.v4-field{margin-top:14px}
.v4-label{display:block;font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:6px}
.v4-help{font-size:12.5px;color:var(--muted);margin-top:5px}
.v4-input,.v4-select,.v4-textarea{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:400 15px/1.4 var(--ui)}
.v4-textarea{min-height:96px;resize:vertical}
.v4-input:focus,.v4-select:focus,.v4-textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.v4-check{display:flex;gap:9px;align-items:flex-start;font-size:14px}.v4-check input{width:17px;height:17px;margin-top:2px;accent-color:var(--brand)}
.v4-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-2);white-space:nowrap}
.v4-badge.ok{background:var(--ok-soft);color:var(--ok)}.v4-badge.warn{background:var(--warn-soft);color:var(--warn)}.v4-badge.bad{background:var(--bad-soft);color:var(--bad)}
.v4-badge.info{background:var(--info-soft);color:var(--info)}.v4-badge.brand{background:var(--brand-soft);color:var(--brand)}.v4-badge.accent{background:var(--accent-soft);color:var(--accent)}
.v4-dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}
.v4-alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-sm);font-size:14px;border:1px solid transparent}
.v4-alert.ok{background:var(--ok-soft);color:var(--ok)}.v4-alert.bad{background:var(--bad-soft);color:var(--bad)}.v4-alert.warn{background:var(--warn-soft);color:var(--warn)}.v4-alert.info{background:var(--info-soft);color:var(--info)}
.v4-avatar{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:13px;font-weight:600;color:#fff;overflow:hidden;background:var(--brand)}
.v4-avatar img{width:100%;height:100%;object-fit:cover}.v4-avatar.lg{width:64px;height:64px;font-size:20px}
.v4-kpi{padding:16px 18px}.v4-kpi-l{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.v4-kpi-v{font-size:26px;font-weight:600;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}
.v4-kpi-d{font-size:12.5px;margin-top:2px;display:flex;align-items:center;gap:4px}.v4-kpi-d.up{color:var(--ok)}.v4-kpi-d.down{color:var(--bad)}.v4-kpi-d.flat{color:var(--muted)}
.v4-spark{display:block;width:100%;height:36px;margin-top:10px}
.v4-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.v4-table{width:100%;border-collapse:collapse;font-size:14px}
.v4-table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}
.v4-table td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.v4-table tr:last-child td{border-bottom:0}.v4-table tbody tr:hover td{background:var(--surface-2)}
.v4-table .r{text-align:right}.v4-table .nowrap{white-space:nowrap}
.v4-who{display:flex;align-items:center;gap:10px;min-width:0}.v4-who b{font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.v4-who span{font-size:12.5px;color:var(--muted)}
@media (max-width:720px){
  .v4-table.stack thead{display:none}.v4-table.stack,.v4-table.stack tbody,.v4-table.stack tr,.v4-table.stack td{display:block;width:100%}
  .v4-table.stack tr{padding:12px 14px;border-bottom:1px solid var(--line)}.v4-table.stack td{border:0;padding:3px 0;display:flex;justify-content:space-between;gap:12px}
  .v4-table.stack td[data-l]::before{content:attr(data-l);color:var(--muted);font-size:12.5px}.v4-table.stack td.main{display:block;margin-bottom:6px}.v4-table.stack td.main::before{display:none}
  .v4-table.stack tbody tr:hover td{background:none}
}
.v4-seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px;gap:2px;overflow-x:auto;max-width:100%}
.v4-seg a,.v4-seg button{padding:6px 11px;border-radius:5px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;border:0;background:none;cursor:pointer;font-family:var(--ui)}
.v4-seg .on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.v4-empty{padding:36px 20px;text-align:center;color:var(--muted);font-size:14px}.v4-empty .v4-i{width:28px;height:28px;margin-bottom:8px;opacity:.6}
.v4-list>*{display:flex;gap:12px;align-items:flex-start;padding:12px 18px;border-bottom:1px solid var(--line)}.v4-list>*:last-child{border-bottom:0}
.v4-ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex:none;background:var(--surface-2);color:var(--text-2)}
.v4-ic.ok{background:var(--ok-soft);color:var(--ok)}.v4-ic.warn{background:var(--warn-soft);color:var(--warn)}.v4-ic.bad{background:var(--bad-soft);color:var(--bad)}.v4-ic.brand{background:var(--brand-soft);color:var(--brand)}.v4-ic.accent{background:var(--accent-soft);color:var(--accent)}
.v4-crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--muted)}.v4-crumbs a:hover{color:var(--text)}
.v4-hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.v4-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}


.bl-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.bl-top-in{max-width:1120px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:14px}
.bl-logo{display:flex;align-items:center;gap:9px;font-weight:600;font-size:17px}
.bl-nav{display:flex;gap:2px;margin-left:12px}.bl-nav a{padding:7px 10px;border-radius:6px;font-size:14px;color:var(--text-2)}.bl-nav a:hover,.bl-nav a.on{color:var(--text);background:var(--surface-2)}
.bl-top .sp{flex:1}
@media (max-width:760px){.bl-nav a:not(.on){display:none}.bl-nav{margin-left:4px}}
.bl-wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.bl-hero{padding:44px 0 22px}
.bl-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(34px,6vw,54px);letter-spacing:-.02em;line-height:1.05}
.bl-hero p{color:var(--text-2);font-size:17px;margin-top:10px;max-width:56ch}
.bl-cats{display:flex;gap:6px;overflow-x:auto;padding:4px 0 18px;scrollbar-width:none}.bl-cats::-webkit-scrollbar{display:none}
.bl-cats a{flex:none;padding:7px 12px;border:1px solid var(--line-2);border-radius:999px;font-size:13.5px;color:var(--text-2)}
.bl-cats a.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.bl-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.bl-cat{font-size:13px;font-weight:600;color:var(--brand)}
.bl-feat{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:center;padding:8px 0 34px;border-bottom:1px solid var(--line)}
.bl-feat .img{aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;background:var(--surface-2)}
.bl-feat img,.bl-card .img img{width:100%;height:100%;object-fit:cover;display:block}
.bl-feat h2{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.6vw,38px);line-height:1.12;letter-spacing:-.015em;margin:8px 0 10px}
.bl-feat p.ex{color:var(--text-2);font-size:16.5px;margin-bottom:12px}
@media (max-width:820px){.bl-feat{grid-template-columns:1fr;gap:16px}}
.bl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:28px 24px;padding:30px 0 10px}
.bl-card .img{aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--surface-2);margin-bottom:12px}
.bl-card h3{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.2;margin:6px 0 8px}
.bl-card p.ex{color:var(--text-2);font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:10px}
.bl-ph{width:100%;height:100%;display:grid;place-items:center;color:var(--muted);background:linear-gradient(135deg,var(--brand-soft),var(--surface-2))}
.bl-pager{display:flex;justify-content:space-between;padding:20px 0 40px}
.bl-art{max-width:720px;margin:0 auto;padding:30px 20px 10px}
.bl-art h1{font-family:var(--serif);font-weight:500;font-size:clamp(32px,5.4vw,48px);line-height:1.08;letter-spacing:-.02em;margin:10px 0 14px}
.bl-dek{font-family:var(--serif);font-size:21px;line-height:1.45;color:var(--text-2)}
.bl-by{display:flex;align-items:center;gap:12px;margin:22px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bl-by .who{flex:1;min-width:0}.bl-by b{font-weight:600;display:block}
.bl-share{display:flex;gap:6px}
.bl-coverimg{max-width:1000px;margin:0 auto 10px;padding:0 20px}.bl-coverimg img{width:100%;border-radius:var(--r);display:block}
.bl-toc{margin:22px 0;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.bl-toc summary{padding:12px 16px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
.bl-toc ol{margin:0;padding:0 16px 14px 34px;font-size:15px}.bl-toc li{margin:5px 0}.bl-toc li.l3{margin-left:16px;list-style:circle}.bl-toc a{color:var(--text-2)}.bl-toc a:hover{color:var(--brand)}
.bl-body{font-family:var(--serif);font-size:19px;line-height:1.75;color:var(--text)}
.bl-body>*+*{margin-top:1.1em}
.bl-body h2{font-family:var(--ui);font-size:25px;font-weight:600;line-height:1.25;margin-top:1.9em;scroll-margin-top:80px}
.bl-body h3{font-family:var(--ui);font-size:20px;font-weight:600;margin-top:1.6em;scroll-margin-top:80px}
.bl-body h4{font-family:var(--ui);font-size:17px;font-weight:600}
.bl-body a{color:var(--brand);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.bl-body ul,.bl-body ol{padding-left:1.3em}.bl-body li+li{margin-top:.35em}
.bl-body blockquote{margin-left:0;padding:2px 0 2px 20px;border-left:3px solid var(--brand);color:var(--text-2);font-style:italic}
.bl-body img{border-radius:var(--r);display:block;margin:0 auto}.bl-body figcaption{font-family:var(--ui);font-size:13.5px;color:var(--muted);text-align:center;margin-top:8px}
.bl-body hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.bl-body code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85em;background:var(--surface-2);padding:2px 5px;border-radius:4px}
.bl-body pre{overflow-x:auto;background:var(--surface-2);padding:14px;border-radius:var(--r-sm)}.bl-body pre code{background:none;padding:0}
.bl-body table{width:100%;border-collapse:collapse;font-family:var(--ui);font-size:15px;display:block;overflow-x:auto}.bl-body th,.bl-body td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left}
@media (max-width:600px){.bl-body{font-size:18px}.bl-dek{font-size:19px}}
.bl-tags{display:flex;gap:6px;flex-wrap:wrap;margin:30px 0 0}
.bl-cta{margin:34px 0;padding:22px;border-radius:var(--r-lg);background:var(--brand);color:var(--on-brand);display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.bl-cta h3{font-size:19px}.bl-cta p{opacity:.85;font-size:14.5px;margin-top:3px}.bl-cta .v4-btn{background:var(--on-brand);color:var(--brand);border-color:var(--on-brand)}
.bl-cta .v4-btn.ghost{background:transparent;color:var(--on-brand);border-color:color-mix(in srgb,var(--on-brand) 40%,transparent)}
.bl-author{display:flex;gap:14px;padding:18px;border:1px solid var(--line);border-radius:var(--r);margin-top:28px}
.bl-prog{position:fixed;top:0;left:0;height:3px;background:var(--brand);width:0;z-index:30}
.bl-preview{background:var(--warn-soft);color:var(--warn);text-align:center;padding:9px;font-size:14px;font-weight:600}
.bl-foot{border-top:1px solid var(--line);margin-top:40px;padding:26px 20px 40px;text-align:center;color:var(--muted);font-size:13.5px}
.bl-foot a{color:var(--text-2);margin:0 8px}

/* ── v5 polish: wordmark, cards, typographic covers, TOC, mobile byline ── */
.lg-wm{position:relative;display:inline-block;font-family:var(--font);font-weight:800;letter-spacing:-.035em;line-height:1;color:#155B40;padding-top:.5em}
[data-theme="dark"] .lg-wm{color:#E8ECE9}
.lg-wm .lg-laurel{position:absolute;left:-.085em;top:-.07em;width:.72em;height:.72em}
.lg-wm .lg-dot{position:absolute;right:.035em;top:.36em;width:.155em;height:.155em;border-radius:50%;background:#00B85C}
.bl-logo:empty,.bl-logo .logo-name:empty{display:none}
.bl-card .img,.bl-feat .img{display:block}
.bl-card .img{transition:transform .2s ease}.bl-card:hover .img{transform:translateY(-2px)}
.bl-card h3 a:hover,.bl-feat h2 a:hover{color:var(--brand)}
.bl-cv{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:18px 20px;color:#fff;overflow:hidden}
.bl-cv i{font-style:normal;font:700 11px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.bl-cv b{font:500 clamp(18px,2.4vw,24px)/1.15 var(--serif);letter-spacing:-.01em;max-width:18ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bl-feat .bl-cv b{font-size:clamp(22px,3vw,34px);max-width:16ch}
.bl-cv-brand{position:relative;align-self:flex-start;font:800 16px/1 var(--font);letter-spacing:-.035em;color:#fff;opacity:.92}
.bl-toc ol,.bl-toc ul{margin:0}.bl-toc>ol{padding:0 16px 14px 34px}.bl-toc ol ol{padding:2px 0 2px 18px;list-style:none;font-size:14px}
.v4 .bl-cat{color:var(--brand)}
.bl-art+.bl-art{padding-top:0}
.bl-toc summary::after{content:"▾";color:var(--muted)}.bl-toc:not([open]) summary::after{content:"▸"}
@media (max-width:640px){.bl-by{flex-wrap:wrap}.bl-share{width:100%;flex-wrap:wrap}.bl-share .v4-btn{flex:1}}
.bl-catintro{color:var(--text-2);font-size:17px;margin-top:10px;max-width:62ch}
.bl-menu{display:none;position:relative}
.bl-menu summary{list-style:none}.bl-menu summary::-webkit-details-marker{display:none}
.bl-menu nav{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;z-index:40}
.bl-menu nav a{padding:10px 12px;border-radius:6px;font-size:14.5px;font-weight:500}.bl-menu nav a:hover{background:var(--surface-2);color:var(--brand)}
@media (max-width:760px){.bl-menu{display:block}}

