.skeleton-text{background:linear-gradient(90deg,#1c1c28 25%,#2a2a3a 50%,#1c1c28 75%) 0 0/200% 100%;animation:1.5s infinite article-shimmer;display:block}@keyframes article-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.article-page{max-width:768px;margin:0 auto;padding:0 20px 60px}.article-header{margin-bottom:32px}.article-header__meta{align-items:center;gap:var(--space-3);margin-bottom:16px;display:flex}.article-header__category{padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-normal);text-transform:uppercase;color:var(--accent-primary);background:#8b5cf626;border:1px solid #8b5cf64d;align-items:center;display:inline-flex}.article-header__reading-time{align-items:center;gap:var(--space-1);font-size:var(--fs-sm);color:var(--text-muted);display:inline-flex}.article-header__title{font-size:var(--fs-3xl);color:var(--text-primary);margin:0 0 16px;font-weight:800;line-height:1.2}.article-header__description{font-size:var(--fs-md);color:var(--text-secondary);margin:0;font-style:italic;line-height:1.6}.article-header__divider{background:linear-gradient(90deg, transparent, var(--border-glass) 20%, var(--border-glass) 80%, transparent);height:1px;margin:var(--space-7) 0;border:none}.article-toc{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:32px}.article-toc__toggle{width:100%;color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;text-transform:uppercase;letter-spacing:var(--tracking-wide);background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;display:flex}.article-toc__chevron{transition:transform .2s}.article-toc__chevron--open{transform:rotate(180deg)}.article-toc__list{max-height:0;margin:0;padding:0;list-style:none;transition:max-height .3s,margin .3s;overflow:hidden}.article-toc__list--open{max-height:600px;margin-top:12px}.article-toc__item{margin:0}.article-toc__item button{text-align:left;width:100%;padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--dur-fast) var(--ease-out-soft);background:0 0;border:none;border-left:2px solid #0000;line-height:1.4;display:block}.article-toc__item button:hover{color:var(--accent-primary);border-left-color:#8b5cf666}.article-toc__item--active button{color:var(--accent-primary);border-left-color:var(--accent-primary);font-weight:var(--fw-medium)}.article-toc__item--sub button{font-size:var(--fs-sm);padding-left:28px}.article-body{font-size:var(--fs-md);font-weight:var(--fw-regular);color:var(--text-secondary);line-height:1.75}.article-body p{margin:0 0 20px}.article-body h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);border-left:3px solid var(--accent-primary);margin:40px 0 16px;padding-left:16px;scroll-margin-top:80px;line-height:1.3}.article-body h3{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);margin:32px 0 12px;scroll-margin-top:80px;line-height:1.3}.article-body h4{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);margin:24px 0 8px}.article-body ul,.article-body ol{margin:0 0 20px;padding-left:24px}.article-body li{margin-bottom:8px;line-height:1.6}.article-body li::marker{color:var(--accent-primary)}.article-body blockquote{background:var(--bg-glass);-webkit-backdrop-filter:blur(8px);border-left:3px solid var(--accent-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:var(--space-4) var(--space-5);margin:var(--space-6) 0;color:var(--text-secondary);font-style:italic}.article-body a{color:var(--accent-primary);text-underline-offset:2px;transition:text-decoration-color var(--dur-fast) var(--ease-out-soft);-webkit-text-decoration:underline #8b5cf666;text-decoration:underline #8b5cf666}.article-body a:hover{-webkit-text-decoration-color:var(--accent-primary);text-decoration-color:var(--accent-primary)}.article-body strong,.article-body b{color:var(--text-primary);font-weight:var(--fw-semibold)}.article-body hr{background:var(--border-glass);height:1px;margin:var(--space-7) 0;border:none}.article-body table{border-collapse:collapse;width:100%;margin:var(--space-5) 0;font-size:var(--fs-base)}.article-body th,.article-body td{padding:var(--space-2) var(--space-3);border:1px solid var(--border-glass);text-align:left}.article-body th{background:var(--bg-glass);color:var(--text-primary);font-weight:var(--fw-semibold)}.article-body .article-author{color:var(--text-muted);border-top:1px solid #8b5cf633;flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:2rem;padding:1rem 1.5rem;font-size:.9rem;display:flex}.article-body .article-author a{color:var(--accent-primary);text-decoration:underline}.article-footer{border-top:1px solid var(--border-glass);margin-top:48px;padding-top:24px}.article-footer .btn__back{margin-top:0}@media (min-width:1100px){.article-page-wrapper{justify-content:center;gap:var(--space-7);max-width:1100px;margin:0 auto;padding:0 20px;display:flex}.article-page{flex:1;max-width:768px;padding:0 0 60px}.article-toc{align-self:flex-start;min-width:200px;max-width:240px;margin-bottom:0;position:sticky;top:80px}.article-toc__list{max-height:none;margin-top:12px;overflow:visible}.article-toc__toggle{pointer-events:none}.article-toc__chevron{display:none}}@media (max-width:600px){.article-header__title{font-size:var(--fs-xl)}.article-header__description,.article-body{font-size:var(--fs-base)}.article-body h2{font-size:var(--fs-lg);margin:32px 0 12px}.article-body h3{font-size:var(--fs-md)}}
