.timeline-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px 40px;
  flex: 1;
}
.timeline-layout > .main-content { min-width: 0; padding: 24px 0 0; }
.timeline-ad-slot { text-align: center; }
.timeline-ad-label { display: block; margin-bottom: 8px; color: var(--color-text-secondary); font-size: 11px; line-height: 1.5; letter-spacing: 0.08em; }
.timeline-ad-slot a { display: inline-block; max-width: 100%; vertical-align: top; }
.timeline-ad-slot a:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 4px; }
.timeline-ad-slot img { max-width: 100%; vertical-align: top; }
.timeline-ad-slot [data-ad-slot] { line-height: 0; }
.timeline-ad-slot img:not([width="1"]) { height: auto; }
.timeline-ad-top { margin: 0 0 32px; padding: 20px 0; background: var(--color-bg); }
.timeline-ad-rail { display: none; min-width: 0; align-self: start; }
.timeline-ad-anchor {
  position: fixed;
  z-index: 90;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 8px 48px max(8px, env(safe-area-inset-bottom));
  border-top: 1px solid var(--color-border);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 -3px 16px rgba(0, 0, 0, 0.08);
}
.timeline-ad-anchor[hidden] { display: none; }
.timeline-ad-anchor .timeline-ad-label { height: 32px; margin-bottom: 4px; }
.timeline-ad-close { position: absolute; right: 0; top: 0; width: 44px; height: 44px; border: 0; background: transparent; color: var(--color-text-secondary); font-size: 26px; cursor: pointer; }
.timeline-ad-close:focus-visible { outline: 3px solid var(--color-primary); outline-offset: -4px; }
.has-anchor-ad { padding-bottom: var(--anchor-ad-height, 130px); }
@media (min-width: 1180px) {
  .timeline-layout { max-width: 1488px; grid-template-columns: 300px minmax(0, 800px) 300px; }
  .timeline-layout > .main-content { grid-column: 2; grid-row: 1; }
  .timeline-ad-rail { display: block; position: sticky; top: 88px; grid-row: 1; margin-top: 24px; }
  .timeline-ad-rail-left { grid-column: 1; }
  .timeline-ad-rail-right { grid-column: 3; }
}
@media (max-width: 599px) {
.timeline-ad-anchor { padding-right: 0; padding-left: 0; }
  .timeline-ad-top { margin-bottom: 20px; padding: 12px 0; }
}
