/* ============================================================
   UPDATES PAGE — Changelog timeline
   依賴 tokens.css + base.css + components.css + home.css
   ============================================================ */

.updates-wrap {
    max-width: 720px;
    margin: 0 auto;
    padding: var(--ds-space-24) var(--ds-space-6) var(--ds-space-32);
}
@media (max-width: 580px) {
    .updates-wrap { padding-top: var(--ds-space-16); }
}

.updates-header {
    margin-bottom: var(--ds-space-16);
    padding-bottom: var(--ds-space-10);
    border-bottom: 1px solid var(--ds-border);
}
.updates-eyebrow {
    font-family: var(--ds-font-mono);
    font-size: var(--ds-text-xs);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--ds-text-muted);
    margin-bottom: var(--ds-space-4);
}
.updates-title {
    font-size: var(--ds-text-3xl);
    font-weight: var(--ds-weight-bold);
    color: var(--ds-text-primary);
    margin: 0 0 var(--ds-space-3);
    line-height: var(--ds-leading-snug);
}
.updates-desc {
    font-size: var(--ds-text-base);
    color: var(--ds-text-muted);
    line-height: var(--ds-leading-relaxed);
    margin: 0;
    font-family: var(--ds-font-mono);
}

.updates-year {
    font-family: var(--ds-font-mono);
    font-size: var(--ds-text-xs);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--ds-text-muted);
    margin: var(--ds-space-12) 0 var(--ds-space-6);
    display: flex;
    align-items: center;
    gap: var(--ds-space-4);
}
.updates-year::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--ds-border);
}

.update-entry {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: var(--ds-space-6);
    padding: var(--ds-space-6) 0;
    border-bottom: 1px solid var(--ds-border);
    align-items: start;
}
.update-entry:last-child { border-bottom: none; }
.update-entry--milestone {
    padding: var(--ds-space-6);
    margin: 0 calc(-1 * var(--ds-space-6));
    border-radius: var(--ds-radius-lg);
    border: 1px solid rgba(69,162,158,0.15);
    background: rgba(69,162,158,0.03);
    border-bottom: 1px solid rgba(69,162,158,0.15);
}
.update-entry--milestone:last-child { border-bottom: 1px solid rgba(69,162,158,0.15); }

.update-meta { padding-top: 2px; }
.update-date {
    font-family: var(--ds-font-mono);
    font-size: var(--ds-text-xs);
    color: var(--ds-text-muted);
    line-height: 1.4;
    margin-bottom: var(--ds-space-2);
}
.update-tag {
    display: inline-block;
    font-family: var(--ds-font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 2px 7px;
    border-radius: var(--ds-radius-full);
    border: 1px solid;
    line-height: 1.6;
}
.update-tag--alpha     { color: var(--ds-accent-bright); border-color: rgba(102,252,241,0.2); background: rgba(102,252,241,0.06); }
.update-tag--data      { color: var(--ds-info);          border-color: rgba(96,165,250,0.2);  background: rgba(96,165,250,0.06); }
.update-tag--pres      { color: var(--ds-warning);       border-color: rgba(251,191,36,0.2);  background: rgba(251,191,36,0.06); }
.update-tag--infra     { color: var(--ds-text-muted);    border-color: var(--ds-border-hover);background: var(--ds-bg-elevated); }
.update-tag--milestone { color: var(--ds-accent-bright); border-color: rgba(102,252,241,0.3); background: rgba(102,252,241,0.08); }

.update-heading {
    font-size: var(--ds-text-base);
    font-weight: var(--ds-weight-semibold);
    color: var(--ds-text-primary);
    margin: 0 0 var(--ds-space-2);
    line-height: var(--ds-leading-snug);
}
.update-entry--milestone .update-heading { color: var(--ds-accent-bright); }
.update-detail {
    font-size: var(--ds-text-sm);
    color: var(--ds-text-muted);
    line-height: var(--ds-leading-relaxed);
    margin: 0;
}

@media (max-width: 580px) {
    .update-entry {
        grid-template-columns: 1fr;
        gap: var(--ds-space-3);
    }
    .update-meta {
        display: flex;
        align-items: center;
        gap: var(--ds-space-3);
    }
}
