.blog-hero{
    padding:76px 0 48px;
    border-bottom:1px solid var(--line);
}
.blog-hero-inner{
    max-width:900px;
}
.blog-hero h1{
    max-width:900px;
    margin:0 0 18px;
    font-size:clamp(2.5rem,5.4vw,4.7rem);
    line-height:1.04;
    letter-spacing:-.045em;
}
.blog-hero .search-bar{
    margin-top:28px;
}
.blog-list{
    padding:58px 0 72px;
}
.blog-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px;
}
.blog-card{
    min-width:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:22px;
    background:var(--surface);
    color:var(--text);
    text-decoration:none;
    transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.blog-card:hover{
    color:var(--text);
    transform:translateY(-4px);
    border-color:color-mix(in srgb,var(--accent) 38%,var(--line));
    box-shadow:0 20px 55px rgba(5,15,35,.09);
}
.blog-card-media{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--surface-2);
    border-bottom:1px solid var(--line);
}
.blog-card-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    transition:transform .35s ease;
}
.blog-card:hover .blog-card-media img{
    transform:scale(1.025);
}
.blog-card-body{
    min-height:0;
    flex:1;
    display:flex;
    flex-direction:column;
    padding:22px;
}
.blog-card-date{
    display:flex;
    align-items:center;
    gap:7px;
    margin-bottom:12px;
    color:var(--muted);
    font-size:.82rem;
    font-weight:680;
}
.blog-card-title{
    margin:0 0 12px;
    font-size:1.28rem;
    line-height:1.18;
    letter-spacing:-.025em;
}
.blog-card-excerpt{
    display:-webkit-box;
    overflow:hidden;
    margin:0 0 22px;
    color:var(--muted);
    line-height:1.65;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
}
.blog-card-action{
    margin-top:auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:max-content;
    min-height:42px;
    padding:9px 14px;
    border-radius:11px;
    background:var(--text);
    color:var(--bg);
    font-size:.9rem;
    font-weight:780;
}
.blog-card:hover .blog-card-action{
    color:var(--bg);
}
.article-hero{
    padding:58px 0 34px;
}
.article-breadcrumb{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:30px;
    color:var(--muted);
    font-size:.88rem;
}
.article-breadcrumb a{
    color:var(--muted);
}
.article-breadcrumb a:hover{
    color:var(--text);
}
.article-heading{
    max-width:980px;
    margin:0 auto;
    text-align:center;
}
.article-category{
    display:inline-flex;
    align-items:center;
    padding:7px 11px;
    margin-bottom:20px;
    border:1px solid var(--line);
    border-radius:999px;
    color:var(--accent);
    background:var(--surface);
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.article-heading h1{
    max-width:980px;
    margin:0 auto 22px;
    font-size:clamp(2.45rem,5.7vw,5rem);
    line-height:1.02;
    letter-spacing:-.05em;
}
.article-deck{
    max-width:780px;
    margin:0 auto;
    color:var(--muted);
    font-size:clamp(1.08rem,2vw,1.28rem);
    line-height:1.65;
}
.article-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:10px 18px;
    margin-top:24px;
    color:var(--muted);
    font-size:.9rem;
}
.article-meta span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.article-cover-wrap{
    width:min(calc(100% - 24px),1120px);
    margin:18px auto 0;
}
.article-cover-premium{
    display:block;
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    object-position:center;
    border:1px solid var(--line);
    border-radius:24px;
    background:var(--surface-2);
    box-shadow:0 28px 80px rgba(5,15,35,.10);
}
.article-main{
    padding:54px 0 72px;
}
.article-layout{
    display:grid;
    grid-template-columns:minmax(0,820px) 220px;
    justify-content:center;
    align-items:start;
    gap:58px;
}
.article-content{
    min-width:0;
    font-size:1.06rem;
    line-height:1.82;
    color:var(--text);
}
.article-content > :first-child{
    margin-top:0;
}
.article-content p{
    margin:0 0 1.35em;
    color:color-mix(in srgb,var(--text) 78%,var(--muted));
}
.article-content h2{
    margin:2.15em 0 .75em;
    font-size:clamp(1.75rem,3vw,2.45rem);
    line-height:1.15;
    letter-spacing:-.035em;
}
.article-content h3{
    margin:1.8em 0 .7em;
    font-size:1.4rem;
    line-height:1.22;
}
.article-content ul,
.article-content ol{
    margin:0 0 1.45em;
    padding-left:1.4em;
}
.article-content li{
    margin:.48em 0;
    color:color-mix(in srgb,var(--text) 78%,var(--muted));
}
.article-content strong{
    color:var(--text);
}
.article-content a{
    color:var(--accent);
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
}
.article-content blockquote{
    margin:1.8em 0;
    padding:18px 22px;
    border-left:3px solid var(--accent);
    border-radius:0 14px 14px 0;
    background:var(--surface-2);
    color:var(--text);
}
.article-content img{
    display:block;
    width:auto;
    max-width:100%;
    height:auto;
    margin:30px auto;
    border:1px solid var(--line);
    border-radius:18px;
}
.article-content table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    margin:28px 0;
    border-collapse:collapse;
}
.article-content th,
.article-content td{
    padding:12px 14px;
    border:1px solid var(--line);
    text-align:left;
    vertical-align:top;
}
.article-content th{
    background:var(--surface-2);
}
.article-side{
    position:sticky;
    top:96px;
    display:grid;
    gap:14px;
}
.article-side-card{
    padding:18px;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--surface);
}
.article-side-card strong{
    display:block;
    margin-bottom:7px;
}
.article-side-card p{
    margin:0;
    color:var(--muted);
    font-size:.9rem;
    line-height:1.55;
}
.article-side-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    min-height:44px;
    padding:10px 0;
    border-top:1px solid var(--line);
    color:var(--text);
    font-size:.9rem;
    font-weight:720;
}
.article-side-link:first-of-type{
    margin-top:10px;
}
.related-section{
    padding:64px 0;
    border-top:1px solid var(--line);
}
.related-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    margin-top:26px;
}
.related-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--surface);
    color:var(--text);
}
.related-card:hover{
    color:var(--text);
}
.related-card-media{
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--surface-2);
}
.related-card-media img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.related-card-body{
    padding:18px;
}
.related-card-body strong{
    display:block;
    font-size:1.05rem;
    line-height:1.3;
}
.related-card-body p{
    display:-webkit-box;
    overflow:hidden;
    margin:8px 0 0;
    color:var(--muted);
    font-size:.92rem;
    line-height:1.55;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}
@media(max-width:980px){
    .blog-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .article-layout{
        grid-template-columns:minmax(0,820px);
    }
    .article-side{
        position:static;
        grid-template-columns:repeat(2,minmax(0,1fr));
        max-width:820px;
        width:100%;
    }
}
@media(max-width:640px){
    .blog-hero{
        padding:50px 0 38px;
    }
    .blog-list{
        padding:42px 0 54px;
    }
    .blog-grid,
    .related-grid{
        grid-template-columns:1fr;
    }
    .blog-card-body{
        padding:18px;
    }
    .blog-card-media{
        aspect-ratio:16/9;
    }
    .article-hero{
        padding:38px 0 24px;
    }
    .article-breadcrumb{
        margin-bottom:22px;
    }
    .article-heading{
        text-align:left;
    }
    .article-heading h1{
        font-size:clamp(2.2rem,11vw,3.3rem);
    }
    .article-deck{
        font-size:1.04rem;
    }
    .article-meta{
        justify-content:flex-start;
    }
    .article-cover-wrap{
        margin-top:8px;
    }
    .article-cover-premium{
        border-radius:16px;
    }
    .article-main{
        padding:38px 0 54px;
    }
    .article-layout{
        gap:34px;
    }
    .article-content{
        font-size:1rem;
        line-height:1.75;
    }
    .article-content h2{
        margin-top:1.8em;
    }
    .article-side{
        grid-template-columns:1fr;
    }
}
