<section id="tl" class="tl-wrap"> <aside class="tl-index"></aside> <ol class="tl-list"></ol> </section> #tl { display: grid; grid-template-columns: 220px 1fr; gap: 1.25rem; max-width: 1100px; margin: 0 auto; padding: 3rem 1rem; } .tl-index { position: sticky; top: 80px; align-self: start; max-height: calc(100vh - 120px); overflow: auto; padding-right: 0.5rem; } .tl-index button { display: block; width: 100%; text-align: left; background: transparent; border: 0; padding: 0.4rem 0.25rem; cursor: pointer; opacity: 0.9; } .tl-index button.is-active { font-weight: 600; opacity: 1; } .tl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; } .tl-item { display: grid; grid-template-columns: 320px 1fr; gap: 1rem; align-items: start; scroll-margin-top: 90px; } .tl-date { font-weight: 600; } .tl-img { width: 100%; border-radius: 12px; aspect-ratio: 4 / 3; object-fit: cover; } .tl-card { padding: 1rem; border: 1px solid rgba(0,0,0,0.12); border-radius: 14px; background: rgba(255,255,255,0.7); backdrop-filter: saturate(140%) blur(6px); } @media (max-width: 900px) { #tl { grid-template-columns: 1fr; } .tl-item { grid-template-columns: 1fr; } .tl-index { position: static; display: flex; flex-wrap: wrap; gap: 0.5rem; max-height: none; } .tl-index button { width: auto; border: 1px solid rgba(0,0,0,0.12); border-radius: 999px; padding: 0.35rem 0.7rem; } } @media (prefers-color-scheme: dark) { .tl-card { background: rgba(20,20,20,0.6); color: #f5f5f5; border-color: rgba(255,255,255,0.12); } }