.reading-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg,var(--color-gold),var(--color-accent));z-index:100;transition:width .1s linear}.article-page{padding:var(--space-xl) 0;animation:fadeUp .8s cubic-bezier(.16,1,.3,1) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.article-container{max-width:1200px;padding-left:0;padding-right:0}@media(max-width:1200px){.article-container{padding-left:var(--space-lg);padding-right:var(--space-lg)}}.article-header{text-align:center;margin-bottom:var(--space-2xl)}.article-category{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-subtle);font-weight:600}.article-title{font-family:var(--font-serif);font-size:clamp(2rem,5vw,3rem);font-weight:600;line-height:1.25;letter-spacing:-.02em}.article-summary{font-size:1.1rem;color:var(--color-text-muted);line-height:1.7;margin-top:var(--space-lg);max-width:560px;margin-left:auto;margin-right:auto}.article-divider{width:60px;height:2px;background:var(--color-gold);margin:0 auto var(--space-2xl);opacity:.5}.article-body{font-size:1.05rem;line-height:1.85;color:var(--color-text)}.article-body p{margin-bottom:var(--space-lg)}.article-body ul,.article-body ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl)}.article-body ul{list-style-type:disc}.article-body ol{list-style-type:decimal}.article-body h2{font-family:var(--font-serif);font-size:1.6rem;font-weight:600;margin-top:var(--space-3xl);margin-bottom:var(--space-md)}.article-body h3{font-size:1.25rem;font-weight:600;margin-top:var(--space-2xl);margin-bottom:var(--space-sm)}.article-body li{margin-left:var(--space-lg);margin-bottom:var(--space-sm)}.article-body strong{font-weight:600}.article-body table{width:100%;border-collapse:separate;border-spacing:0;margin:var(--space-xl) 0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border-subtle);font-size:.92rem;line-height:1.6}.article-body thead{background:color-mix(in srgb,var(--color-gold) 10%,var(--color-bg-surface))}.article-body th{padding:14px 18px;text-align:left;font-weight:600;font-size:.85rem;letter-spacing:.03em;color:var(--color-text);border-bottom:2px solid color-mix(in srgb,var(--color-gold) 30%,transparent)}.article-body td{padding:12px 18px;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-muted);vertical-align:top}.article-body tbody tr:last-child td{border-bottom:none}.article-body tbody tr:nth-child(2n){background:color-mix(in srgb,var(--color-bg-surface) 60%,transparent)}.article-body tbody tr{transition:background .2s ease}.article-body tbody tr:hover{background:color-mix(in srgb,var(--color-gold) 6%,var(--color-bg))}.article-body td strong{color:var(--color-text)}@media(max-width:768px){.article-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.article-body th,.article-body td{padding:10px 14px;white-space:nowrap}}.back-link{display:inline-flex;align-items:center;white-space:nowrap;gap:8px;margin-top:var(--space-3xl);font-weight:500;font-size:.9rem;color:var(--color-text-muted);transition:transform .3s ease}.back-link:hover{transform:translate(-4px)}.fallback-banner{display:flex;align-items:center;gap:var(--space-sm);background:color-mix(in srgb,var(--color-gold) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-gold) 30%,transparent);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl);font-size:.9rem;color:var(--color-gold)}.article-footer{margin-top:var(--space-3xl);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-xl)}.not-found{text-align:center;padding:var(--space-4xl) 0}.not-found h1{font-family:var(--font-serif);font-size:2.5rem;font-weight:600}.not-found p{color:var(--color-text-muted);margin-top:var(--space-md);font-size:1.05rem}.article-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);color:var(--color-text-subtle);padding:var(--space-4xl)}.loading-pulse{width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--color-gold) 20%,transparent);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.3);opacity:1}}
