:root{--timeline-col-width:212px;--timeline-dot-size:9px;--nav-height:70px;--timeline-top:calc(var(--nav-height) + .9rem)}.ch-page{background:var(--color-bg);color:var(--color-dark);font-family:var(--font-body)}.ch-main{min-height:100vh;padding:calc(var(--nav-height) + clamp(1.2rem, 2vw, 1.8rem)) 1rem 4.5rem;position:relative;overflow:clip visible}.ch-ambient{pointer-events:none;background:radial-gradient(70rem 40rem at 7% -8%,#40b9bc1f,#0000 58%),radial-gradient(60rem 34rem at 100% 0,#ef7b1a0f,#0000 52%);position:absolute;inset:0}.ch-shell{z-index:1;max-width:1120px;margin:0 auto;position:relative}.timeline-layout{gap:0;display:grid;position:relative}.timeline-layout:before{content:"";left:calc(var(--timeline-col-width) - 1px);background:var(--color-border);width:1px;position:absolute;top:0;bottom:0}.release-group{grid-template-columns:var(--timeline-col-width) minmax(0, 1fr);align-items:stretch;display:grid}.release-group,.card{scroll-margin-top:calc(var(--nav-height) + .9rem)}.release-col{align-self:stretch;padding-right:0;position:relative}.release-sticky{top:var(--timeline-top);flex-direction:row-reverse;justify-content:flex-start;align-items:center;gap:.6rem;min-height:28px;padding-right:0;display:flex;position:sticky}.release-dot{width:var(--timeline-dot-size);height:var(--timeline-dot-size);transform:translateX(calc((var(--timeline-dot-size) / 2) - .5px));background:#35be6d;border-radius:999px;display:inline-block;position:relative;box-shadow:0 0 0 3px #35be6d38}.release-dot-upcoming{background:var(--color-yellow);animation:2.2s ease-in-out infinite upcoming-pulse}@keyframes upcoming-pulse{0%{transform:translateX(calc((var(--timeline-dot-size) / 2) - .5px)) scale(.86);opacity:.95;box-shadow:0 0 #fcc009b3,0 0 18px #fcc00957}70%{transform:translateX(calc((var(--timeline-dot-size) / 2) - .5px)) scale(1.16);opacity:1;box-shadow:0 0 0 13px #fcc00900,0 0 26px #fcc0099e}to{transform:translateX(calc((var(--timeline-dot-size) / 2) - .5px)) scale(.86);opacity:.92;box-shadow:0 0 #fcc00900,0 0 14px #fcc00938}}.release-label{font-family:var(--font-heading);color:var(--color-dark);letter-spacing:.01em;font-size:1.02rem;font-weight:600;line-height:1}.release-meta{text-align:right;flex-direction:column;align-items:flex-end;gap:.18rem;display:inline-flex}.release-anchor-link{color:inherit;text-decoration:none}.release-anchor-link:hover .release-label{color:var(--color-teal)}.release-date{color:var(--color-dark-alt);opacity:.6;font-family:var(--font-heading);letter-spacing:.02em;text-transform:uppercase;font-size:.74rem;font-weight:500;line-height:1.1}.release-date-inline{margin-left:.1rem;display:inline-block}.group-content{min-width:0;padding-left:clamp(1rem,2vw,2rem)}.card{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-card);min-width:0;margin-bottom:.85rem;padding:.96rem 1rem 1rem}.card-cloud{background:linear-gradient(#f5f9fffa 0%,#edf5fff0 100%);border-color:#3d66ff4d;box-shadow:inset 0 0 0 1px #3d66ff1f}.card-upcoming{background:linear-gradient(#fffae7f2 0%,#fff6d6e0 100%),repeating-linear-gradient(135deg,#fcc00924 0 10px,#fcc0090f 10px 20px);border:1.5px dashed #fcc009bf;box-shadow:inset 0 0 0 1px #fcc00959,0 6px 18px #cc940014}.card-next{background:linear-gradient(#fffcf3fa 0%,#fffaedf0 100%);border:1.5px dashed #fcc009bf}.card:last-child{margin-bottom:1.8rem}.card-top{align-items:center;margin-bottom:.36rem;display:flex}.badge-cloud{color:var(--color-dark);font-family:var(--font-heading);letter-spacing:.02em;text-transform:none;background:#40b9bc1a;border:1px solid #40b9bc66;border-radius:999px;align-items:center;padding:.14rem .44rem;font-size:.68rem;font-weight:600;display:inline-flex}.entry-title{font-family:var(--font-heading);margin:0;font-size:clamp(1.08rem,1.35vw,1.25rem);font-weight:600;line-height:1.2}.entry-title-link{color:inherit;overflow-wrap:anywhere;align-items:baseline;text-decoration:none;display:inline-flex}.entry-copy{color:var(--color-dark);opacity:.75;overflow-wrap:anywhere;margin:.46rem 0 0;font-size:.95rem;line-height:1.5}.inline-cmd{border:1px solid var(--color-border);border-radius:var(--radius-xs);color:var(--color-dark);font-family:var(--font-mono);background:#e7e6ef80;margin:0 .08rem;padding:.04rem .34rem;font-size:.84em;line-height:1.32;display:inline-block}.snippet{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-card);margin-top:.64rem;overflow:hidden}.snippet pre{margin:0;padding:.8rem .92rem;overflow-x:auto}.snippet code{font-family:var(--font-mono);color:var(--color-dark);font-size:.86rem;line-height:1.45}.links{flex-wrap:wrap;gap:.4rem;margin-top:.7rem;display:flex}.link-chip{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-dark);font-family:var(--font-heading);border-radius:999px;align-items:center;padding:.22rem .54rem;font-size:.78rem;font-weight:500;text-decoration:none;transition:border-color .2s,transform .2s;display:inline-flex}.link-chip:hover{border-color:var(--color-teal);text-decoration:none;transform:translateY(-1px)}@media (width<=900px){:root{--timeline-col-width:1fr;--nav-height:56px;--timeline-top:calc(var(--nav-height) + .5rem)}.ch-main{padding-inline:.8rem;padding-top:calc(var(--nav-height) + 1rem)}.timeline-layout:before{display:none}.release-group{grid-template-columns:1fr}.release-col{padding-right:0}.release-sticky{flex-direction:row;justify-content:flex-start;margin:0 0 .45rem;padding-right:0;position:static}.release-dot{flex-shrink:0;transform:none}.release-meta{text-align:left;align-items:flex-start}.group-content{padding-left:0}}@media (prefers-reduced-motion:reduce){.release-dot-upcoming{animation:none}}.entry-details{margin-top:.3rem;position:relative}.entry-details-content{display:none}.card.is-open .entry-details-content{margin-top:.7rem;display:block}.card.has-details{cursor:pointer}.card.has-details .entry-details-ellipsis{color:var(--color-dark-alt);opacity:.5;letter-spacing:.25em;margin:.15rem 0 0;font-size:1.4rem}.card.has-details.is-open{cursor:pointer}.card.has-details.is-open .entry-details-ellipsis{display:none}.entry-details-content .entry-copy{margin-top:0}
