/* ===== Blog, listings, portfolio, timeline ===== */
.ph-sm .ph-in{padding-bottom:64px}
.ph-sm h1{font-size:clamp(34px,4.2vw,60px);max-width:22ch}
.ph-sm .ph-sub{margin-bottom:0}
.post-meta{display:flex;flex-wrap:wrap;gap:8px 22px;color:#B8B8C0;font-size:15px;margin:26px 0 0}
.post-meta span+span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--red);margin-right:22px;vertical-align:middle}

.art-sec{padding:70px 0 100px}
.art-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:70px;align-items:start}
.art{max-width:760px}
.feat{margin:0 0 40px;border-radius:22px;overflow:hidden;border:1px solid #E7E7EA}
.feat img{display:block;width:100%;height:auto}
.art-body{font-size:18px;line-height:1.75;color:#27272A}
.art-body p{margin:0 0 22px}
.art-body h2{font-size:clamp(26px,2.4vw,34px);line-height:1.15;letter-spacing:-.03em;margin:46px 0 16px;color:#0A0A0B}
.art-body h3{font-size:22px;line-height:1.25;letter-spacing:-.02em;margin:36px 0 12px;color:#0A0A0B}
.art-body h4{font-size:18px;margin:28px 0 10px}
.art-body ul,.art-body ol{margin:0 0 24px;padding-left:24px}
.art-body li{margin-bottom:10px}
.art-body li::marker{color:var(--red);font-weight:700}
.art-body a{color:#C41424;text-decoration:underline;text-underline-offset:3px}
.art-body img{max-width:100%;height:auto;border-radius:14px;margin:10px 0 24px}
.art-body blockquote{margin:30px 0;padding:6px 0 6px 24px;border-left:4px solid var(--red);font-size:20px;color:#0A0A0B}
.art-body table{width:100%;border-collapse:collapse;margin:0 0 26px;font-size:16px}
.art-body td,.art-body th{border:1px solid #E4E4E7;padding:10px 12px;text-align:left}
.art-end{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:44px;padding-top:26px;border-top:1px solid #E4E4E7;font-size:14.5px}
.art-end span{color:#5F5F68;margin-right:6px}
.art-end a{border:1px solid #D4D4D8;border-radius:999px;padding:7px 14px;color:#0A0A0B;text-decoration:none;font-weight:600}
.art-end a:hover{border-color:#000}
.art-side{position:sticky;top:120px;display:flex;flex-direction:column;gap:18px}
.art-side .glance{position:relative;top:auto}
.side-links{border:1px solid #E7E7EA;border-radius:22px;padding:24px;background:#fff}
.side-links h4{margin:0 0 12px;font-size:15px}
.side-links a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #F0F0F2;color:#0A0A0B;text-decoration:none;font-weight:600;font-size:15px}
.side-links .sq,.pf-r .sq{flex:none;width:24px;height:24px;background:var(--red);display:grid;place-items:center}

.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pc{display:flex;flex-direction:column;background:#fff;border:1px solid #E7E7EA;border-radius:22px;overflow:hidden;color:#0A0A0B;text-decoration:none;transition:border-color .2s,box-shadow .2s}
.pc[hidden]{display:none}
.pc:hover{border-color:#C9C9CF;box-shadow:0 20px 40px -24px rgba(0,0,0,.25)}
.pc-img{display:block;aspect-ratio:16/9;background:#000;overflow:hidden}
.pc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.pc:hover .pc-img img{transform:scale(1.03)}
.noimg{display:grid;place-items:center;height:100%;background:radial-gradient(260px 160px at 100% 0,rgba(227,25,44,.35),transparent 70%),#000}
.noimg svg{width:70px;height:54px}
.pc-b{display:flex;flex-direction:column;gap:10px;padding:22px 24px 26px}
.pc-m{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:13px;color:#71717A}
.pc-m em{font-style:normal;font-weight:700;color:var(--red)}
.pc b{font-size:19px;line-height:1.3;letter-spacing:-.015em}
.pc-x{color:#52525B;font-size:15px;line-height:1.55}
.pfeat{display:grid;grid-template-columns:1.2fr 1fr;gap:0;border:1px solid #E7E7EA;border-radius:26px;overflow:hidden;margin-bottom:48px;color:#0A0A0B;text-decoration:none;background:#fff}
.pfeat .pc-img{aspect-ratio:auto;min-height:340px}
.pf-b{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:44px}
.pf-b b{font-size:clamp(24px,2.4vw,34px);line-height:1.15;letter-spacing:-.03em}
.pf-r{display:flex;align-items:center;gap:12px;font-weight:700;margin-top:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.chip{border:1px solid #D4D4D8;background:#fff;border-radius:999px;padding:9px 16px;font:600 14px var(--f);cursor:pointer;color:#3F3F46}
.chip.on{background:#000;border-color:#000;color:#fff}

.works{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.work{margin:0;border:1px solid #E7E7EA;border-radius:22px;overflow:hidden;background:#fff}
.work img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top}
.work figcaption{padding:18px 22px}
.work b{display:block;font-size:17px}.work span{color:#5F5F68;font-size:14px}

.tl2 li{grid-template-columns:150px 1fr}
.tl2 h3{font-size:22px;margin-bottom:8px}
.inline-list{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 30px}
.inline-list li{display:flex;gap:12px;font-size:16px;color:#27272A}
.inline-list li::before{content:"";flex:0 0 18px;height:18px;margin-top:2px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3L13 4.5' stroke='%23E3192C' stroke-width='2.2' fill='none'/%3E%3C/svg%3E") no-repeat center}
.prose ul{margin:0 0 20px;padding-left:22px;color:#3F3F46;font-size:17px;line-height:1.65}
.prose ul li{margin-bottom:8px}.prose ul li::marker{color:var(--red)}
.prose a,.card2 a,.check-list a,.lede a{color:#C41424;text-decoration:underline;text-underline-offset:3px}
.prose p strong{color:#0A0A0B}

@media (max-width:1100px){.art-grid{grid-template-columns:1fr}.art-side{position:static}.pgrid,.works{grid-template-columns:1fr 1fr}.pfeat{grid-template-columns:1fr}.pfeat .pc-img{min-height:220px}}
@media (max-width:640px){.pgrid,.works,.inline-list{grid-template-columns:1fr}.pf-b{padding:26px}.art-body{font-size:17px}.tl2 li{grid-template-columns:1fr}}
.art{min-width:0}.feat img,.art-body img{max-width:100%}
.glance h3{padding-right:46px}
.art-body table{display:block;overflow-x:auto}

/* ===================== v2: Insights hub ===================== */
.ph-hub .ph-in{padding-bottom:0}
.ph-hub h1{max-width:18ch}
.hub{display:flex;gap:4px;margin-top:8px;border-top:1px solid #222226}
.hub a{position:relative;display:flex;align-items:center;gap:10px;padding:22px 22px 24px 0;margin-right:22px;color:#8F8F98;font-weight:600;font-size:16px;text-decoration:none}
.hub a span{font-size:12.5px;font-weight:700;color:#B8B8C0;background:#1C1C1F;border-radius:999px;padding:3px 9px}
.hub a:hover{color:#fff}
.hub a[aria-current]{color:#fff}
.hub a[aria-current]::after{content:"";position:absolute;left:0;right:22px;top:-1px;height:3px;background:var(--red)}
.hub a[aria-current] span{background:var(--red);color:#fff}

.list-h{font-size:15px;font-weight:700;color:#0A0A0B;margin:0 0 18px;display:flex;align-items:center;gap:10px}
.list-h::before{content:"";width:18px;height:3px;background:var(--red)}
.top-sec{padding:64px 0 80px}
.top3{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:48px;align-items:start}
.lead{display:flex;flex-direction:column;color:#0A0A0B;text-decoration:none}
.lead .pc-img{border-radius:22px;aspect-ratio:16/9;background:#0A0A0B}
.lead-b{display:flex;flex-direction:column;gap:12px;padding:26px 0 0}
.lead-b b{font-size:clamp(26px,2.6vw,38px);line-height:1.1;letter-spacing:-.035em}
.lead:hover b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.lead .pc-x{font-size:17px;max-width:62ch}
.side3{display:flex;flex-direction:column}
.mc{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:start;padding:20px 0;border-top:1px solid #E7E7EA;color:#0A0A0B;text-decoration:none}
.mc:last-child{border-bottom:1px solid #E7E7EA}
.mc-img{display:block;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#0A0A0B}
.mc-img img,.mc-img .noimg{width:100%;height:100%;object-fit:cover;display:block}
.mc b{display:block;margin-top:8px;font-size:17px;line-height:1.3;letter-spacing:-.015em}
.mc:hover b{text-decoration:underline;text-underline-offset:3px}

.pc-img{display:block;aspect-ratio:16/9;overflow:hidden;background:#0A0A0B}
.pc-img img{width:100%;height:100%;object-fit:cover;display:block}
.pc-m time{color:#71717A}
.pc-m span{color:#71717A}
.pc{border-radius:18px}
.pc b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pc-x{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pc-b{flex:1}
.pc-r{margin-top:auto;padding-top:6px;font-size:13px;font-weight:600;color:#71717A}
.lbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.lbar .list-h{margin:0;font-size:clamp(26px,2.4vw,34px);letter-spacing:-.03em}
.lbar .list-h::before{width:24px;height:4px}
.srch{display:flex;align-items:center;gap:10px;height:48px;padding:0 18px;border:1px solid #D4D4D8;border-radius:999px;background:#fff;min-width:300px}
.srch svg{width:18px;height:18px;color:#71717A;flex:none}
.srch input{border:0;outline:0;font:500 15px var(--f);width:100%;background:transparent}
.srch:focus-within{border-color:#000;box-shadow:0 0 0 3px rgba(227,25,44,.15)}
.chip span{font-size:12px;color:#8F8F98;margin-left:2px}
.chip.on span{color:#B8B8C0}
.chip:focus-visible,.hub a:focus-visible,.srch input:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.lcount{font-size:14px;color:#5F5F68;margin:-10px 0 22px}
.lmore{text-align:center;margin:44px 0 0}
.hubs{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #E7E7EA}
.hubs a{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;padding:24px 4px;border-bottom:1px solid #E7E7EA;color:#0A0A0B;text-decoration:none}
.hubs a:nth-child(3n+2),.hubs a:nth-child(3n+3){padding-left:28px;border-left:1px solid #E7E7EA}
.hubs a span:first-child{grid-column:1;font-size:13px;color:#71717A;font-weight:600}
.hubs a b{grid-column:1;font-size:19px;letter-spacing:-.015em}
.hubs .sq{grid-row:1/3;grid-column:2;width:30px;height:30px;background:var(--red);display:grid;place-items:center;transition:transform .2s}
.hubs a:hover .sq{transform:translateX(4px)}

/* news list */
.nlist{display:flex;flex-direction:column;border-top:1px solid #E7E7EA}
.nr{display:grid;grid-template-columns:96px 220px minmax(0,1fr) 34px;gap:28px;align-items:center;padding:26px 0;border-bottom:1px solid #E7E7EA;color:#0A0A0B;text-decoration:none}
.nr time{display:flex;flex-direction:column;line-height:1}
.nr time b{font-size:44px;letter-spacing:-.05em;font-weight:800}
.nr time span{font-size:13px;color:#71717A;font-weight:600;margin-top:6px}
.nr-img{display:block;aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:#0A0A0B}
.nr-img img{width:100%;height:100%;object-fit:cover;display:block}
.nr-b{display:flex;flex-direction:column;gap:8px}
.nr-b b{font-size:21px;line-height:1.25;letter-spacing:-.02em}
.nr:hover .nr-b b{text-decoration:underline;text-underline-offset:4px}
.nr .sq{width:34px;height:34px;background:var(--red);display:grid;place-items:center}
.nlead .lead{margin-bottom:64px}

/* case studies */
.cs-list{display:flex;flex-direction:column;gap:28px}
.cs{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border:1px solid #E7E7EA;border-radius:26px;overflow:hidden;background:#fff}
.cs:nth-child(even) .cs-img{order:2}
.cs-img{display:block;min-height:340px;background:#0A0A0B}
.cs-img img{width:100%;height:100%;object-fit:cover;display:block}
.cs-b{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:48px}
.cs-b .pc-m{margin:0}
.cs h2{font-size:clamp(24px,2.3vw,34px);line-height:1.12;letter-spacing:-.03em;margin:0}
.cs h2 a{color:#0A0A0B;text-decoration:none}.cs h2 a:hover{text-decoration:underline;text-underline-offset:4px}
.cs-b>p:not(.pc-m):not(.cs-tags){color:#52525B;font-size:16.5px;line-height:1.6;margin:0}
.cs-tags{display:flex;gap:8px;margin:4px 0 8px}
.cs-tags span{font-size:13px;font-weight:600;border:1px solid #E4E4E7;border-radius:999px;padding:6px 12px;color:#3F3F46}

/* ===================== v2: article ===================== */
.rprog{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none}
.rprog i{display:block;height:100%;background:var(--red);transform:scaleX(0);transform-origin:0 50%}
.ph-post .ph-in{padding-bottom:150px}
.ph-post h1{font-size:clamp(32px,4vw,56px);line-height:1.06;max-width:24ch}
.feat-wrap{position:relative;z-index:2;margin-top:-110px}
.feat2{margin:0;max-width:1060px;border-radius:24px;overflow:hidden;background:#0A0A0B;box-shadow:0 30px 60px -30px rgba(0,0,0,.45);aspect-ratio:16/9}
.feat2 img{display:block;width:100%;height:100%;object-fit:cover}
.feat-wrap+.art-sec{padding-top:56px}
.art-grid{grid-template-columns:minmax(0,1fr) 320px;gap:72px}
.art{max-width:740px}
.art-body h2{scroll-margin-top:110px}
.art-body>p:first-child{font-size:20px;line-height:1.65;color:#0A0A0B}
.toc{border:1px solid #E7E7EA;border-radius:20px;background:#fff;padding:20px 22px}
.toc summary{font-weight:700;font-size:15px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:"";width:9px;height:9px;border-right:2px solid #0A0A0B;border-bottom:2px solid #0A0A0B;transform:rotate(45deg);margin-top:-4px}
.toc[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.toc ol{list-style:none;margin:14px 0 0;padding:0;counter-reset:t;max-height:46vh;overflow:auto}
.toc li{counter-increment:t}
.toc a{display:grid;grid-template-columns:24px 1fr;padding:8px 0;font-size:14.5px;line-height:1.4;color:#3F3F46;text-decoration:none;border-top:1px solid #F2F2F4}
.toc a::before{content:counter(t,decimal-leading-zero);color:var(--red);font-weight:700;font-size:12px;padding-top:2px}
.toc a:hover{color:#000}
.author{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:start;margin-top:48px;padding:26px;border-radius:20px;background:#0A0A0B;color:#fff}
.author-x{display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:#1C1C1F}
.author-x svg{width:30px;height:24px}
.author b{font-size:17px}
.author p{margin:6px 0 0;color:#B8B8C0;font-size:15px;line-height:1.55}
.art-end .copy{border:1px solid #D4D4D8;border-radius:999px;padding:7px 14px;background:#fff;font:600 14.5px var(--f);cursor:pointer}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}
.pn a{display:flex;flex-direction:column;gap:6px;padding:20px 22px;border:1px solid #E7E7EA;border-radius:18px;color:#0A0A0B;text-decoration:none}
.pn a:hover{border-color:#0A0A0B}
.pn span{font-size:13px;font-weight:700;color:var(--red)}
.pn b{font-size:16px;line-height:1.35}
.pn-next{text-align:right}
.kr-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}
.kr-head .h2m{margin:0}
.kr-head .pf-r{color:#0A0A0B;text-decoration:none;margin:0}

/* ===================== v2: timeline ===================== */
.tl-hero .ph-in{padding-bottom:56px}
.tl-hero h1{font-size:clamp(64px,11vw,170px);line-height:.9;letter-spacing:-.06em;max-width:none}
.tl-range{display:flex;align-items:center;gap:22px;margin:26px 0 0;font-weight:800;font-size:clamp(26px,3vw,44px);letter-spacing:-.04em;color:#fff;max-width:620px}
.tl-range span:first-child{color:transparent;-webkit-text-stroke:1.5px #8F8F98}
.tl-range i{flex:1;height:3px;background:linear-gradient(90deg,#3A3A40,var(--red))}
.tl-hero .ph-sub{margin-bottom:0}
.tl-stats{position:relative;z-index:1;list-style:none;display:grid;grid-template-columns:repeat(5,1fr);margin:0 auto;padding-top:0;padding-bottom:0}
.tl-stats li{padding:28px 24px 34px;border-top:1px solid #26262A;border-left:1px solid #26262A}
.tl-stats li:first-child{border-left:0;padding-left:0}
.tl-stats b{display:block;font-size:clamp(30px,3vw,44px);letter-spacing:-.04em;color:#fff;line-height:1}
.tl-stats span{display:block;margin-top:8px;color:#8F8F98;font-size:14.5px}
.yrail{position:sticky;top:72px;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #E7E7EA}
.yrail-in{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;padding:10px 0}
.yrail-in::-webkit-scrollbar{display:none}
.yrail a{flex:none;padding:9px 14px;border-radius:999px;font-weight:700;font-size:14.5px;color:#71717A;text-decoration:none;font-variant-numeric:tabular-nums}
.yrail a:hover{color:#000}
.yrail a.on{background:#000;color:#fff}
.tl-body{padding-top:40px;padding-bottom:40px}
.chap{display:grid;grid-template-columns:330px minmax(0,1fr);gap:64px;padding:70px 0;border-bottom:1px solid #E7E7EA}
.chap-h{position:sticky;top:160px;align-self:start}
.chap-n{display:inline-block;font-size:13px;font-weight:700;color:#fff;background:var(--red);padding:5px 11px;border-radius:999px}
.chap-h h2{font-size:clamp(30px,3vw,44px);line-height:1.04;letter-spacing:-.04em;margin:16px 0 8px}
.chap-r{font-weight:700;color:#0A0A0B;margin:0 0 12px;font-variant-numeric:tabular-nums}
.chap-h p:last-child{color:#5F5F68;font-size:16.5px;line-height:1.6;margin:0}
.mss{list-style:none;margin:0;padding:0 0 0 46px;position:relative}
.mss::before{content:"";position:absolute;left:13px;top:10px;bottom:10px;width:2px;background:linear-gradient(#E7E7EA,#E7E7EA)}
.ms{position:relative;padding:0 0 46px;scroll-margin-top:170px}
.ms:last-child{padding-bottom:0}
.ms-node{position:absolute;left:-46px;top:4px;width:28px;height:28px;border-radius:8px;background:#0A0A0B;display:grid;place-items:center;transition:transform .35s}
.ms-node svg{width:15px;height:12px}
.ms.in .ms-node{transform:scale(1.15)}
.ms-y{position:absolute;right:0;top:-18px;font-weight:800;font-size:clamp(70px,9vw,128px);letter-spacing:-.06em;line-height:1;color:transparent;-webkit-text-stroke:1.5px #EDEDF0;pointer-events:none;user-select:none}
.ms-c{position:relative;max-width:620px}
.ms-tag{display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:13px;font-weight:700;color:var(--red)}
.ms-tag time{font-size:15px;color:#0A0A0B;font-variant-numeric:tabular-nums}
.ms h3{font-size:clamp(22px,2vw,28px);line-height:1.15;letter-spacing:-.025em;margin:0 0 10px}
.ms-c>p:not(.ms-tag){color:#3F3F46;font-size:17px;line-height:1.65;margin:0}
.ms-img{margin:20px 0 0;border-radius:16px;overflow:hidden;max-width:520px;aspect-ratio:16/9;background:#0A0A0B}
.ms-img img{width:100%;height:100%;object-fit:cover;display:block}
.chap-next{border-bottom:0;display:block;margin:40px 0 60px;padding:56px;border-radius:28px;background:#0A0A0B;color:#fff;position:relative;overflow:hidden}
.chap-next::after{content:"";position:absolute;right:-60px;bottom:-80px;width:340px;height:264px;opacity:.14;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 138 107'%3E%3Cg fill='%23E3192C'%3E%3Cpath d='M0 107H30L138 0H108Z'/%3E%3Cpath d='M0 0H30L61.9 31.6L46.9 46.46Z'/%3E%3Cpath d='M91.1 60.54L138 107H108L76.1 75.4Z'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain}
.chap-next .chap-h{position:relative;top:auto;max-width:640px;z-index:1}
.chap-next h2{color:#fff}
.chap-next .chap-h p{color:#B8B8C0}
.chap-next .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

@media (max-width:1100px){
 .top3{grid-template-columns:1fr}.hubs{grid-template-columns:1fr 1fr}
 .hubs a:nth-child(3n+2),.hubs a:nth-child(3n+3){padding-left:4px;border-left:0}
 .hubs a:nth-child(even){padding-left:24px;border-left:1px solid #E7E7EA}
 .nr{grid-template-columns:80px 160px minmax(0,1fr)}.nr .sq{display:none}
 .cs{grid-template-columns:1fr}.cs:nth-child(even) .cs-img{order:0}.cs-img{min-height:0;aspect-ratio:16/9}
 .chap{grid-template-columns:1fr;gap:36px}.chap-h{position:static}
 .tl-stats{grid-template-columns:repeat(3,1fr)}.tl-stats li:nth-child(4){border-left:0;padding-left:0}
}
@media (max-width:760px){
 .hub{overflow-x:auto;scrollbar-width:none}.hub a{flex:none;padding-right:16px;margin-right:12px}
 .srch{min-width:0;width:100%}
 .hubs{grid-template-columns:1fr}.hubs a:nth-child(even){padding-left:4px;border-left:0}
 .mc{grid-template-columns:104px 1fr}
 .nr{grid-template-columns:64px minmax(0,1fr);gap:16px}.nr-img{display:none}.nr time b{font-size:34px}
 .cs-b{padding:28px}
 .ph-post .ph-in{padding-bottom:110px}.feat-wrap{margin-top:-80px}.feat2{border-radius:16px}
 .pn{grid-template-columns:1fr}.pn-next{text-align:left}
 .author{grid-template-columns:1fr}
 .kr-head{flex-direction:column;align-items:flex-start}
 .tl-stats{grid-template-columns:1fr 1fr}.tl-stats li{padding:20px 16px 22px}.tl-stats li:nth-child(odd){border-left:0;padding-left:0}.tl-stats li:nth-child(4){border-left:1px solid #26262A;padding-left:16px}
 .tl-stats li:last-child{grid-column:1/-1}
 .mss{padding-left:40px}.ms-node{left:-40px}.ms-y{font-size:64px;top:-6px}
 .chap{padding:48px 0}.chap-next{padding:32px 26px}
}
@media (prefers-reduced-motion:reduce){.ms-node,.hubs .sq{transition:none}.rprog{display:none}}
@media (max-width:1100px){.art-grid{grid-template-columns:minmax(0,1fr);gap:40px}.art-side{position:static}.art{max-width:none}}
.nlead .lead{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:center}
.nlead .lead-b{padding:0}
@media (max-width:900px){.nlead .lead{grid-template-columns:1fr;gap:0}.nlead .lead-b{padding-top:24px}}
@media (max-width:760px){.post-meta{gap:6px 16px;font-size:14px}.post-meta span+span::before{display:none}.art-body>p:first-child{font-size:18px}}
/* ===================== v3: timeline turn ===================== */
.tl-hero h1{margin-bottom:34px}
.turn{display:grid;grid-template-columns:1fr 90px 1.25fr;align-items:stretch;gap:0;max-width:980px}
.turn>div{border:1px solid #26262A;border-radius:22px;padding:26px 28px}
.turn span{display:block;font-weight:800;font-size:clamp(34px,3.6vw,52px);letter-spacing:-.05em;line-height:1}
.turn-a span{color:transparent;-webkit-text-stroke:1.5px #8F8F98}
.turn b{display:block;margin:14px 0 6px;font-size:19px;color:#fff}
.turn p{margin:0;color:#8F8F98;font-size:15px;line-height:1.55}
.turn-a b{color:#B8B8C0}
.turn-b{background:radial-gradient(420px 220px at 100% 0,rgba(227,25,44,.32),transparent 70%),#0E0E10;border-color:#3A1A1E!important}
.turn-b span{color:#fff}
.turn-arrow{align-self:center;height:3px;margin:0 14px;background:linear-gradient(90deg,#3A3A40,var(--red));position:relative}
.turn-arrow::after{content:"";position:absolute;right:-2px;top:-5px;border:6.5px solid transparent;border-left:9px solid var(--red);border-right:0}
.today .h2m{max-width:none}
.td-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.td-grid li{border:1px solid #E7E7EA;border-radius:22px;padding:28px 26px;background:#fff}
.td-x{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#0A0A0B;margin-bottom:22px}
.td-x svg{width:24px;height:19px}
.td-grid h3{font-size:20px;letter-spacing:-.02em;margin:0 0 8px}
.td-grid p{margin:0;color:#52525B;font-size:15.5px;line-height:1.6}
.lanes{--lw:290px}
.lanes ol{list-style:none;margin:0;padding:0}
.lanes li,.ln-ticks{display:grid;grid-template-columns:var(--lw) minmax(0,1fr);gap:24px;align-items:center}
.lanes li{padding:10px 0;border-top:1px solid #E7E7EA}
.ln-l{font-weight:700;font-size:16px;color:#0A0A0B}
.ln-l em{display:block;font-style:normal;font-weight:600;font-size:13px;color:#71717A;margin-top:2px}
.ln-t{display:grid;grid-template-columns:repeat(15,1fr);height:30px;align-items:center}
.ln-t i{display:block;height:14px;border-radius:999px;background:#0A0A0B;transform-origin:0 50%;transform:scaleX(0);transition:transform 1s cubic-bezier(.2,.7,.2,1) var(--d)}
.ln-t i.ln-new{background:var(--red);box-shadow:0 0 0 4px rgba(227,25,44,.18)}
.lanes.in .ln-t i{transform:scaleX(1)}
.ln-ticks{margin-bottom:6px}
.ln-ticks .ln-t{height:auto}
.ln-ticks .ln-t span{font-size:12.5px;font-weight:700;color:#71717A;font-variant-numeric:tabular-nums}
.chap-turn .chap-n{background:#0A0A0B}
.chap-turn .ms:last-child .ms-node{background:var(--red)}
.chap-turn .ms:last-child .ms-node svg g{fill:#fff}
@media (max-width:1100px){.td-grid{grid-template-columns:1fr 1fr}.lanes{--lw:200px}}
@media (max-width:760px){
 .turn{grid-template-columns:1fr;gap:0}.turn-arrow{width:3px;height:34px;margin:0 0 0 30px;background:linear-gradient(#3A3A40,var(--red))}
 .turn-arrow::after{right:auto;left:-5px;top:auto;bottom:-3px;border:6.5px solid transparent;border-top:9px solid var(--red);border-bottom:0}
 .td-grid{grid-template-columns:1fr}
 .lanes li,.ln-ticks{grid-template-columns:1fr;gap:8px}.ln-ticks .ln-l{display:none}.lanes li{padding:14px 0}
}
@media (prefers-reduced-motion:reduce){.ln-t i{transition:none;transform:none}}
/* ===== covers never crop: full 16:9 frame everywhere ===== */
img[src*="img/covers/"]{object-fit:contain!important;background:#F4F5F7;transform:none!important}
.pc-img,.lead .pc-img,.mc-img,.nr-img,.feat2,.ms-img,.cs-img{background:#F4F5F7}
.mc-img,.nr-img,.lead .pc-img,.pc-img{aspect-ratio:16/9}
.cs{align-items:center;background:#fff}
.cs-img{min-height:0;aspect-ratio:16/9;align-self:center;margin:24px;border-radius:16px;overflow:hidden}
.cs:nth-child(even) .cs-img{margin:24px}
.nlead .lead .pc-img{aspect-ratio:16/9}
@media (max-width:1100px){.cs-img{margin:16px 16px 0}.cs:nth-child(even) .cs-img{margin:16px 16px 0}}
.art-body{overflow-wrap:anywhere}
.art-body pre,.art-body code{white-space:pre-wrap;word-break:break-word;max-width:100%}
.art-body pre{background:#0A0A0B;color:#E4E4E7;padding:18px 20px;border-radius:14px;font-size:14.5px;overflow-x:auto}
.art-body table td,.art-body table th{overflow-wrap:normal}
/* tighter vertical rhythm site-wide */
.sec{padding-top:72px;padding-bottom:72px}
.art-sec{padding:48px 0 80px}.top-sec{padding:56px 0 72px}.feat-wrap+.art-sec{padding-top:48px}
.chap{padding:56px 0}
@media (max-width:760px){.sec{padding-top:52px;padding-bottom:52px}.chap{padding:44px 0}}
/* ===== service-page content layout: panels, statements, lists ===== */
.panels{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
.panels.p-odd>.panel:last-child{grid-column:1/-1}
.panel{background:#F7F7F8;border:1px solid #ECECEF;border-radius:22px;padding:34px 36px}
.sec.alt .panel{background:#fff;border-color:#E7E7EA}
.panel h2{font-size:clamp(22px,1.9vw,28px);line-height:1.15;letter-spacing:-.025em;margin:0 0 14px;color:#0A0A0B;max-width:30ch}
.panel .prose p{font-size:16px;line-height:1.65;color:#3F3F46;margin:0 0 12px}
.panel .prose p:last-child{margin-bottom:0}
.panels.p-odd>.panel:last-child .prose{max-width:860px}
.stmt{max-width:860px;text-align:left}
.stmt .h2m{margin-bottom:16px}
.stmt .prose p{font-size:18px;line-height:1.65;color:#3F3F46}
h3.sub{font-size:17px;font-weight:700;color:#0A0A0B;margin:18px 0 10px}
.prose h3.sub:first-child{margin-top:0}
.clist{list-style:none;padding:0!important;margin:0 0 16px!important;display:grid;gap:10px}
.clist li{display:flex;gap:12px;font-size:16px;line-height:1.55;color:#3F3F46;margin:0}
.clist li::before{content:"";flex:0 0 18px;height:18px;margin-top:3px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3L13 4.5' stroke='%23E3192C' stroke-width='2.2' fill='none'/%3E%3C/svg%3E") no-repeat center}
.clist li strong{color:#0A0A0B}
@media (max-width:900px){.panels{grid-template-columns:1fr}.panel{padding:26px 24px}}
.c-intro{max-width:880px;margin:-12px 0 34px}
.c-intro h3{font-size:20px;letter-spacing:-.015em;margin:0 0 10px;color:#0A0A0B}
.c-intro p{font-size:17px;line-height:1.7;color:#3F3F46;margin:0}
.c-outro{margin:34px 0 0}
.h2m.h2-long{font-size:clamp(24px,2.2vw,32px);line-height:1.2;letter-spacing:-.025em;max-width:40ch}
.cards.c4>.card2{flex:0 0 calc((100% - 54px)/4)}
@media (max-width:1100px){.cards.c4>.card2{flex-basis:calc((100% - 18px)/2)}}
@media (max-width:640px){.cards.c4>.card2{flex-basis:100%}}
.split .prose h3.sub{margin-top:26px}
/* compact vertical rhythm (6 Nov, Joseph): smaller gaps between sections */
.sec{padding-top:44px;padding-bottom:44px}
.sec-head{margin-bottom:28px}
.sec .h2m{margin-bottom:18px}
.kpis-sec{padding-top:30px;padding-bottom:30px}
.art-sec{padding:40px 0 56px}.top-sec{padding:44px 0 48px}.feat-wrap+.art-sec{padding-top:40px}
.chap{padding:40px 0}
.after-panel,.c-outro{margin-top:20px}
@media (max-width:760px){.sec{padding-top:32px;padding-bottom:32px}.sec-head{margin-bottom:20px}.chap{padding:32px 0}}
.sec{padding-top:36px;padding-bottom:36px}
@media (max-width:760px){.sec{padding-top:28px;padding-bottom:28px}}
.sec-head{margin-bottom:22px}.sec-head .h2m,.sec-head h2{margin-bottom:0}
.panels.p-odd>.panel.p-cols:last-child .prose{max-width:none;columns:2;column-gap:44px}
@media (max-width:900px){.panels.p-odd>.panel.p-cols:last-child .prose{columns:1}}
.panels{align-items:start}
.panels>.panel.p-wide{grid-column:1/-1}
.panels>.panel.p-wide.p-cols .prose{columns:2;column-gap:48px}
.panels>.panel.p-wide.p-cols .prose>h3,.panels>.panel.p-wide.p-cols .prose>ul{break-inside:avoid-column}
.panels>.panel.p-wide:not(.p-cols) .prose{max-width:900px}
.sec-head:has(>:only-child) .h2m,.sec-head>.h2m:only-child{max-width:none}
@media (max-width:900px){.panels>.panel.p-wide.p-cols .prose{columns:1}}
.clist.cl2{grid-template-columns:1fr 1fr;column-gap:36px}
@media (max-width:760px){.clist.cl2{grid-template-columns:1fr}}
.c-intro{max-width:none}
.c-intro p{max-width:900px}
