/* GM Gazette */
.blog-hero h1 { max-width: 16ch; }
.post-card { background: linear-gradient(180deg, var(--panel2), var(--panel)); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; }
.post-card:hover { border-color: #5d3a86; }
.post-card .post-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; background: var(--panel2); }
.post-card-body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.post-card h2, .post-card h3 { margin: 4px 0 8px; }
.post-card h2 a, .post-card h3 a { color: var(--cream); text-decoration: none; }
.post-card h2 a:hover, .post-card h3 a:hover { color: var(--gold); }
.post-card p { margin: 0 0 14px; color: var(--muted); }
.post-card .tags { margin-top: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.post-card.featured { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); margin-bottom: 20px; }
.post-card.featured:not(:has(.post-img)) { grid-template-columns: 1fr; }
.post-card.featured .post-card-body { padding: clamp(22px, 4vw, 40px); justify-content: center; }
.post-card.featured h2 { font-size: clamp(1.6rem, 3.4vw, 2.4rem); }
.post-card.featured p { font-size: 1.1rem; }
@media (max-width: 760px) { .post-card.featured { grid-template-columns: 1fr; } }
.post-meta { font-size: 13px; color: var(--soft); font-weight: 600; margin: 0; }

.post { max-width: var(--read); margin: 30px auto 0; }
.post-head { margin-bottom: 28px; }
.post-head .eyebrow a { color: var(--orange); text-decoration: none; }
.post-head h1 { font-size: clamp(2rem, 5vw, 3rem); }
.post-hero { width: 100%; border-radius: 16px; border: 1px solid var(--line); margin-bottom: 30px; aspect-ratio: 16 / 9; object-fit: cover; }
.prose { font-size: 1.08rem; }
.prose h2 { margin-top: 1.8em; font-size: 1.55rem; }
.prose h3 { margin-top: 1.5em; }
.prose p, .prose ul, .prose ol { margin: 0 0 1.1em; }
.prose li { margin-bottom: .45em; }
.prose li::marker { color: var(--orange); }
.prose strong { color: #fff; }
.prose code { background: #ffffff10; border: 1px solid var(--line); padding: 1px 6px; border-radius: 6px; font-size: .9em; }
.prose blockquote { margin: 1.4em 0; padding: 12px 20px; border-left: 4px solid var(--orange); background: #ffffff06; border-radius: 0 12px 12px 0; }
.pager { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 50px; padding-top: 26px; border-top: 1px solid var(--line); }
.pager a { display: block; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; color: var(--cream); text-decoration: none; font-weight: 700; background: #ffffff05; }
.pager a:hover { border-color: var(--orange); }
.pager small { display: block; color: var(--muted); font-weight: 600; margin-bottom: 4px; }
.pager .next { text-align: right; }
@media (max-width: 560px) { .pager { grid-template-columns: 1fr; } .pager .next { text-align: left; } }

/* Timeline */
.tl-intro { padding: 40px 0 10px; max-width: 760px; }
.tl-jump { font-size: 14px; color: var(--muted); }
.tl-jump a { margin-right: 10px; font-weight: 800; }
.tl-year { font: clamp(20px, 3vw, 28px) var(--pixel); color: var(--gold); margin: 50px 0 20px; }
.tl { list-style: none; margin: 0; padding: 0 0 0 30px; position: relative; }
.tl::before { content: ""; position: absolute; left: 9px; top: 6px; bottom: 6px; width: 3px; background: repeating-linear-gradient(var(--line) 0 10px, transparent 10px 16px); }
.tl-item { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 18px; margin-bottom: 22px; align-items: center; }
.tl-item:not(:has(.tl-media)) { grid-template-columns: minmax(0, 1fr); }
.tl-dot { position: absolute; left: -28px; top: 26px; width: 17px; height: 17px; background: var(--orange); box-shadow: 3px 3px 0 #673b64; }
.kind-games .tl-dot { background: var(--green); } .kind-event .tl-dot { background: var(--pink); }
.kind-community .tl-dot { background: var(--sky); } .kind-milestone .tl-dot { background: var(--gold); } .kind-apps .tl-dot { background: var(--purple); }
.tl-card { padding: 20px 22px; max-width: 720px; }
.tl-card h3 { margin: 6px 0 6px; font-size: 1.25rem; }
.tl-card p { margin: 0; color: var(--muted); }
.tl-date { font-size: 13px; font-weight: 800; color: var(--cream) !important; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tl-link { display: inline-block; margin-top: 12px; font-weight: 700; font-size: 15px; }
.tl-media img { border-radius: 14px; border: 1px solid var(--line); aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.tl-media img.tl-cat { aspect-ratio: auto; object-fit: contain; border: 0; background: radial-gradient(circle, #e9e4f2 0 55%, transparent 56%); padding: 18px; max-height: 200px; }
.tl-end { text-align: center; margin-top: 40px; }
@media (max-width: 760px) { .tl-item { grid-template-columns: 1fr; } .tl-media { max-width: 320px; } }

.post-art { aspect-ratio: 16 / 9; display: grid; place-items: center; background: radial-gradient(closest-side, #5a3790, #2c1a48 70%, #22143a); border-bottom: 1px solid var(--line); }
.post-art img { height: 72%; width: auto; image-rendering: pixelated; filter: drop-shadow(0 10px 16px #0008); }
.post-art.a1 { background: radial-gradient(closest-side, #8a4f3a, #3a1f2c 70%, #2a1424); }
.post-art.a2 { background: radial-gradient(closest-side, #3c5a8a, #1f2a48 70%, #17203a); }
